Hi Everyone,
I’ve been doing game development since 1998 and own a small company that made dozens of games since then. Mostly adventure and casual strategy games.
I’m also a big Linux fan, been using various distros since Fedora 3!
A few months ago I finally managed to convince my team to invest time and effort into porting our games to Linux and we have ported 22 so far, with more on the way. Most of them use my trusty old C++ engine, while a few are made in Unity.
The’re all available on Steam, to which I have to give a very big thanks, Steam and Flatpak have finally given Linux gaming a chance to go mainstream. Before flatpak container systems, it was almost impossible to ship proprietary code to Linux. It’s not easy even now but at least it’s possible, and so far, all players report succesfully running our games.
I’ve also made a lot of build automation so when we made updates to our games, builds for all platforms will be shipped at the same time. (Of course most of our bulid machines are Linux based ;)
All of our Linux games are available on Steam. And they have 1/1 parity with features on Windows and Mac, meaning Cloud saves and Achievements work as on other platforms.
My personal favorite among our games is an old school point and click adventure: Kaptain Brawe.
Hope you like some of the games and give them a try.
You have a good point, I’ve edited the original post. I’m speaking from a game development perspective. We have to depend on more than just libc and X11 from a given distro.
btw steam scout runtime was originally based on LD_LIBRARY_PATH but that approach has it’s exceptions and limitations, that’s why containers are a better approach overall.
And yeah, when you get the hang of it, it’s not that tough, but to be fair, we already ported our engine to many platforms so the engine was already prepared for porting. If you have a DirectX-only game, porting is much more difficult.
We’re not a games developer, and use a lot more C than C++, but I’ve rarely if ever seen a case of diamond dependencies in the field.
I had a few instances of diamond dependencies myself. Never turned out to be a great experience :) In most cases it means I was doing something hacky to begin with.