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.

  • pdp10B
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Before flatpak container systems, it was almost impossible to ship proprietary code to Linux.

    I don’t see how you mean. Adobe FrameMaker and WordPerfect word processor shipped proprietary binary code for Linux, twenty-some years ago.

    You’d ship the dependencies in a bundled lib/ directory, then usually have a script to set LD_LIBRARY_PATH in addition to any other setup. If, in the future, updated libraries became available, the user could easily choose to use the updated ABI-compatible versions instead. C++ ABI compatibility isn’t as good or simple as C, but it’s still possible.

    • kspesOPB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      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.

      • pdp10B
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        We have to depend on more than just libc and X11 from a given distro.

        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.

        • kspesOPB
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          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.