Years and years ago I had a blog here, since been wiped but you can go to wayback machine if you are interested but I remember my late night rants about the lack of games on Linux so what did I get wrong or right? Where are we now? I just saw a load of comments on it on the Games subreddit so I felt like venting. I talk a little bit about software development in general but this is fairly games focused.
Back when I started using Linux in late 2007 there were no games on Linux really, I think I remember not being able to count more than 100 just from the various sources we had back then. The issue I saw back then was we didn't have any platform to build on but we had a load of tools available, we had Pidgin for chat and Empathy as well was still being maintained and Ubuntu had a store. There was WINE too so some games just worked without much effort but I saw the need to link those things together. There were other issues like drivers but Nvidia was considered fairly decent. It wasn't issues with the platform mostly it was just a lack of a home for the games to me at least.
I had other gripes like the lack of target for developers using the plaform, there was no one place to service any developer looking to port stuff to the platform or develop specifically for the platform. SDKs and/or an IDE was what I suggested. Ubuntu eventually made their own SDK and Snappy is a great evolution of that as well but gaming was addressed differently.
Well low and behold about a year ish after my post Steam was released on Linux. That brought a load of things.
- Steam runtime and Steam SDK
- Investment into drivers
- Integration with multiple engines like Unity, Unreal and CryEngine
- Steam OS
- Steam machines
- Steam VR
- Steam controllers
- Steam link
- Thousands of natively supported games
It has been a wild ride but they answered quite a few questisons which developers have always complained about.
- Fragmentation was answered by the steam runtime
- Driver makers had games targeting the platform so they could actually optimise based on real world usage of games instead of just WINE, a smattering of games and just rendering wobbly windows
- Proton caught us up on titles that never would get a Linux release otherwise
- Vulkan allowed for simpler drivers and also conversion from other APIs to Vulkan allowing for WINE to catch up and sometimes do it better than the original API. It at least is more predictable because you are converting and that allows for some removal of complexity or broken stuff
Steam has been a massive godsend for Linux and answered everything I wished within 2 years. We have gotten more games than we ever thought possible and without having to give extra intensive to the developers. It was the quintessential if you build it, they will come.
If I were to sum it up I'd say interesting but mixed results. Steam machines I'd say were cool for hype purposes, it was their own Linux distro but targeted just at machine manufacturers. Sadly it didn't really take off, not going to give a retrospective on that but it did show at least some thought about the potential for Linux beyond just what you use as your daily gaming driver.
Like one thing I really think should be a thing is PC Cafe OS, having visited Korea and seeing how many PC Bangs there are I understood the need for a really strong well supported OS. Also for competitive gaming, having locked down boxes of Linux would be a really good use case.
Where are we now?
Well we are in an interesting time now for Linux. We have the drivers, AMD has been the big flip in fortunes with their open source driver, from having awful performance to giving a much better out of the box experience. We have fixed most of the basic hiccups for the platform itself other than getting rid of X11, that still is something we really need to happen.
What we are missing?
Support from really silly stuff. Anti-cheat software, we have Easy Anti Cheat and Valve's VAC but EAC might be removing support for Linux which would be a massive blow. We would need EAC and BattleEye for multiplayer games and we would need it for native games and for Proton/WINE supported games in order to be super free and clear for that specific feature needed. Game launchers are another really weird sticking point, Uplay, Epic and Battlenet are the biggest examples aside from Steam. Uplay can be put into offline mode and disabled which is interesting. Battlenet works in WINE for most things but is buggy (fun fact it's written in Qt so it not being well supported is fairly ironic). The big question mark is Epic, they don't have any support for WINE at the moment and given they are paying for exclusive games they will be a big win to get any support on board and given they have some Linux native games it really would be sad to see them never porting their launcher.
Other weird middleware and tools for developing games also aren't supported but you can avoid some of those just by avoiding them in the dev process. Also if you are using DRM at launch it rarely works and sometimes is cracked within a week of release so it's not really worth it but that is a hangup on Linux as well.
Good news though
The above problems aren't actually big and given Valve are throwing their weight behind the platform it really has been slowly encouraging adoption at least from developers. You can still have a dual boot but you can also have a decent selection of games available.
Also amazing news is launchers like Lutris (there are a few others but Lutris is the shit) are actually more useful than anything on Windows and centralize a lot of really cool things. I use it for instance for turning up my keyboard responsiveness (with a script) for SC2 before starting the game and turn it back when I finish it. It's simple things that make the platform work well and given my WINE games and my Steam games are all in the one place it is really handy to use. Lutris is a massive step forward for us.
I'm just super chuffed for the platform as a whole. We may not have a billion users but the progress we have made in the short space of time has been staggering. Out of all of the top 20 steam games today, a few natively support Linux but most of them at least support it with Proton. Sekiro was working day 1, a AAA game. If you told me that when I started banging on about making our own gaming platform on Linux years ago I would be delighted.