Why I'm no longer releasing Linux builds of my games
I develop games on Linux. I test them on Linux and Steam Deck most of the time. I also play games from other developers on Linux, some on my Debian desktop PC, others on Steam Deck in handheld mode.
But, I'm not going to release Linux builds anymore.
I released 10 games so far on Steam. In the beginning I used to do Linux builds and now I only have headaches because of that. Games that worked just fine are now broken. Steam updates the runtime and then weird stuff starts to happen. One of my games (Son of a Witch) that was Steam Deck verified years ago is now broken with default native build. It still works on Proton the same as it ever did.
Some recent examples that come to mind:
- Audio - Some Linux audio system change made the SDL_mixer audio make cracking sounds. Apparently fixed by changing the buffer from 2k to 4k. Good thing I made that configurable in the game settings, but I doubt any player will actually go in there and know to tweak that setting themselves. However, the Proton build just works as it did before.
- Controllers - Linux libraries started to report different Controller GUIDs for some reason. The Linux build of one of my Steam Deck verified games no longer accepts input by default. You have to go into settings and configure everything. Good thing I made a setting for that as well inside the game itself, but still, the Proton build works just fine as it did before without any configuration needed.
- Text rendering - SDL_TTF font rendering changed for character outlines because some update was made to FreeType library. All text with outlines now looks weird, as if they've got a drop shadow instead of an outline. Proton build just works like it did before.
- Rotations off by one - Changes in some graphics libraries (around time when Vulcan was introduced) made the rotation points used by SDL_RenderCopy compute with floats instead of integers. So now rotated objects get offset by 1 pixel sometimes. Minor but still annoying. This one doesn't really break the old games, as the SDL library ships with the game, but it breaks when I try to rebuild my games with newer libraries to fix the other issues mentioned above. So, I go to fix one bug and rebuild produces a new one.
All of these issues are solveable. But when you have 10 games it creates two problems. First, you often don't notice a problem until some player tells you. Not everyone does that. Some players just declare it a 'broken game' and move on to something else. Your game could be broken for years before you notice unless you still play it actively yourself.
Second, going back and fixing all the games means wasting time on debugging, programming, testing and shipping new versions of games that worked just fine before. Instead of using that time to add new features, fix real bugs or make new games.
None of these problems exist with Proton.
I don't like some Microsoft's moves lately, but the Windows ecosystem just has better track record with backward compatibility. I still have some programs I made in 2006. where you just launch the .exe on Windows 11 and it works out of the box. On Linux, the same program first requires a bunch of compatibility libraries to get installed and then crashes on launch. Apparently I should upgrade the wxWidgets library to a newer version to make it work, but that makes 50% of my code incompatible, so I would have to rewrite it.
Yeah, I removed the Linux version of that program from sale as well.
read more... Tweet to @bigosaur Tweet Bigosaur, 2026-03-04