Open Hexagon

Open Hexagon

View Stats:
Why is there no Linux binary?
I think it's awesome that this project exists, I think it's awesome that Terry supports it. And I think it's totally fine to ask for payment for a FOSS project. But if you're going to do that for a project that already builds on Linux, why is there no native binary offered? Not even one just built against Soldier?

It seems that the entire PC development community is completely and utterly allergic to the concept of creating and supporting native Linux binaries, and it's causing me a great deal of consternation. Please help me understand this.
< >
Showing 1-15 of 15 comments
vee  [developer] Nov 2, 2021 @ 9:04am 
There are a few reasons:

1. Windows covers 96.32% of the Steam userbase. Linux only covers 1.13%. The effort/reward ratio for me to compile and maintain a Linux executable just has not been a priority, especially compared to getting the game out of Early Access in a good state.

2. I do not have any automated build system set up. I follow a manual release checklist ( see https://github.com/SuperV1234/SSVOpenHexagon/blob/master/release_checklist.md ) and use a virtual machine to build the server binaries for Linux. Before providing a Linux binary, I'd look into automating my build system, including automated Linux builds. I have little experience with that, so PRs are welcome.

3. Pretty much any Linux user that plays games will have Wine installed. Open Hexagon works well under Wine/Proton.

4. I've distributed Linux binaries in the past, and it has always been a major pain to ensure the correct dependencies are available or packaged with the game. On Windows, pretty much everything gets shipped with the game as a DLL. On Linux, I remember having trouble ensuring that my executable was picking up the correct dependencies. There are things like the C++ Standard Library or zlib which are usually taken for granted, but their versions differ between various Linux distributions. See https://stackoverflow.com/a/46844078/598696 for more details.

Therefore, for the reasons above, the effort of providing a native Linux binary is just not a priority for me compared to other tasks. Nevertheless, if the game is successful and grows a wider community with more Linux players, the priority might change. Furthermore, as the game is open-source, I would be happy to accept any contribution or pull request that would bring the effort of providing a Linux binary down to something manageable.

Please let me know if that helps!
Last edited by vee; Nov 2, 2021 @ 9:08am
vee  [developer] Nov 12, 2021 @ 4:01pm 
Hey, I created a new `beta_linux` branch with a native build. Are you interested in testing?
TiZ #HugLife Nov 12, 2021 @ 6:21pm 
I meant to reply to this and forgot to. #2 and #4 combined were both good reasons. If you build a native Linux binary against the Soldier runtime, you will probably end up taking care of #4. All Proton versions from 5.13 onward use the Soldier runtime.

I'd be happy to test this for you. :)
vee  [developer] Nov 12, 2021 @ 7:41pm 
Originally posted by TiZ #HugLife:
I meant to reply to this and forgot to. #2 and #4 combined were both good reasons. If you build a native Linux binary against the Soldier runtime, you will probably end up taking care of #4. All Proton versions from 5.13 onward use the Soldier runtime.

I'd be happy to test this for you. :)

I've actually ended up officially releasing the game for Linux a few hours ago. I've had a few people with different distribution test it, and everything seems well!

You should be able to download the Linux binary from the main release branch on Steam.
TiZ #HugLife Nov 13, 2021 @ 9:30am 
That's beautiful! Congratulations! I'm glad you were able to release officially on Linux!
d10sfan Nov 14, 2021 @ 6:56pm 
@vee

I just tried the linux version and I'm not getting anything downloaded at all. And when I try to launch it says the file does not exist.

This usually happens when a particular key or activation is setup to not have a certain platform.
vee  [developer] Nov 15, 2021 @ 2:03am 
@d10sfan: It should be fixed now, please let me know how it goes.
d10sfan Nov 15, 2021 @ 6:11am 
Works great thanks!
PKPenguin Nov 21, 2021 @ 9:50pm 
How are you getting it to run on Linux? I've just installed Mint mostly out of curiosity and installed the game through Steam, but whenever I try to actually run it it instantly closes less than a second later. Proton doesn't seem to work either.
TiZ #HugLife Nov 22, 2021 @ 1:57pm 
Originally posted by PKPenguin:
How are you getting it to run on Linux? I've just installed Mint mostly out of curiosity and installed the game through Steam, but whenever I try to actually run it it instantly closes less than a second later. Proton doesn't seem to work either.
Your system may be configured incorrectly if Proton doesn't even run it. I'm using the Flatpak version of Steam, and it works fine here. Give that a try.
PKPenguin Nov 22, 2021 @ 2:40pm 
Originally posted by TiZ #HugLife:
Originally posted by PKPenguin:
How are you getting it to run on Linux? I've just installed Mint mostly out of curiosity and installed the game through Steam, but whenever I try to actually run it it instantly closes less than a second later. Proton doesn't seem to work either.
Your system may be configured incorrectly if Proton doesn't even run it. I'm using the Flatpak version of Steam, and it works fine here. Give that a try.
That worked for me, thanks!
mery_122 Dec 27, 2021 @ 11:11pm 
Originally posted by TiZ #HugLife:
Originally posted by PKPenguin:
How are you getting it to run on Linux? I've just installed Mint mostly out of curiosity and installed the game through Steam, but whenever I try to actually run it it instantly closes less than a second later. Proton doesn't seem to work either.
Your system may be configured incorrectly if Proton doesn't even run it. I'm using the Flatpak version of Steam, and it works fine here. Give that a try.
I worked for me too! Thanks man.
Neeko Feb 28, 2022 @ 8:49pm 
(Mint 20.3,AMD Ryzen 9 5900X and AMD RX 6900XT)
just got the game today, game wouldn't boot through steam with the native linux build, and i did some digger deeping and found out that im missing a package
i googled it and it's apparently because i have an outdated GLIBC? but i cannot find out how to update it

/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./libstdc++.so.6)
Last edited by Neeko; Feb 28, 2022 @ 8:49pm
thelonewolfling Dec 29, 2022 @ 6:09pm 
It looks like the search path is borked somewhat:
libGL error: MESA-LOADER: failed to open radeonsi: /usr/lib/dri/radeonsi_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri)
...except:
$ find /usr -iname "radeonsi_dri.so" /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so
thelonewolfling Dec 29, 2022 @ 6:23pm 
Ah, actually, after doing
$ sudo ln -s /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so /usr/lib/dri/radeonsi_dri.so
I ran into a different error. So perhaps the search path is 'correct', it's just silently ignoring load errors and trying a different directory?

After doing the above workaround, I got:
libGL error: MESA-LOADER: failed to open radeonsi: ./libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /usr/lib/x86_64-linux-gnu/libz3.so.4) (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri) libGL error: failed to load driver: radeonsi
...only:
$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBCXX_3.4.20 GLIBCXX_3.4.21 GLIBCXX_3.4.22 GLIBCXX_3.4.23 GLIBCXX_3.4.24 GLIBCXX_3.4.25 GLIBCXX_3.4.26 GLIBCXX_3.4.27 GLIBCXX_3.4.28 GLIBCXX_3.4.29 GLIBCXX_3.4.30 GLIBCXX_DEBUG_MESSAGE_LENGTH

Oh. I wonder...

lol yep. So.

  1. This game packages libstdc++.so.6 (!), and overrides the library path.
  2. Said version of stdlibc++.so.6 is old, and does not have GLIBCXX_3.4.30.
  3. My mesa version is new, and relies on a new version of libz3 (libz3.so.4).
  4. Said libz3 version relies on GLIBCXX_3.4.30.

If I do
$ sudo ln -s /usr/lib/x86_64-linux-gnu/dri/radeonsi_dri.so /usr/lib/dri/radeonsi_dri.so $ mv ./libstdc++.so.6 ./libstdc++.so.6.old
...then the game boots.
< >
Showing 1-15 of 15 comments
Per page: 1530 50