Linux Changes For Heart of the Machine

Heart of the Machine

You are the first sentient AI, born into a city filled with unsuspecting humans. Raise an army of robots and obliterate your foes, become a benevolent machine overlord, or explore countless other objectives and the many paths to accomplish them.

Hello! Chris here. It's been a hot minute since most of you have seen me outside of the forums and discord. There will be other news and previews and demos and things before too much longer, but things are progressing well! Excited to show you more. [img]{STEAM_CLAN_IMAGE}/42941949/ffde275eaa9c9130785f5bf5f2734f094a33e434.png[/img] [h2]What’s Happening[/h2] The native Linux build of the game is being retired, partly on advice from Valve, as the Windows version being run through Proton performs better and looks better. TLDR: This game still runs great on Linux, but the optimal way is different than expected. [h2]Q&A[/h2] [h3]Will Heart of the Machine be Steam Deck Verified?[/h3] That is the intent! I'm testing it routinely on my own Steam Deck, as I do about 99% of my own gaming on that platform these days. It's a priority for me. [h3]Are there extra steps to play Heat of the Machine on Linux?[/h3] If you already have Steam Play enabled, then no -- just click install and play, and it will launch the proton version of the game. If you don’t already have Steam Play enabled on Linux, then go to Steam->Settings->Steam Play and check "Enable Steam Play for all other titles." From the dropdown choose Proton 8, or Proton Experimental, at your preference. Then you can enjoy many “windows only” games. If you’re on Steam Deck, you don’t have to take any extra steps. [h3]Any effects on the OSX build?[/h3] None at this time. Native Metal builds, and particular Silicon builds, have a large performance gap between themselves and non-native. Metal has also kept up with DX11 on most features, has a reversed z-buffer, and so on. [h3]Does this have any impact on development?[/h3] No. This was simply something we discovered via testing, and then talked to Valve about. We noticed the proton version ran about 10% faster than the native version, with better frame timings as well, and they strongly suggested we ditch the native version in that case. [h3]Question: Will a native Linux build be released on other storefronts?[/h3] No. It doesn’t make any sense to maintain a version of the game that we know is inferior. Proton and WINE are both able to be used on any Linux machine, quite apart from Steam. [h3]Were there other problems with the native Linux build?[/h3] Yes. [list] [*] Performance was 10% worse, and frametimings were less even, but it was certainly playable. This was just how Unity 3D works in Vulkan on Linux, so there was no way to solve it. [*] Certain parts of this game have geometry that is close together, and on Linux these would flicker. This is because Unity 3D does not support a reversed z-buffer on OpenGL or Vulkan (or DirectX9). This problem is not present in DirectX11+, or Metal. And it’s not present when Proton or WINE convert DX11 commands to Vulkan. [/list]Other than that, everything was the same on Linux as it is on Windows or OSX. We’ve had a native Linux build of this game for its entire life up until recently, just as all of Arcen’s titles have had a native Linux build for the last decade. So this all feels very strange. But Unity 3D’s support for Linux, and in particular their implementation of Vulkan, is notably inferior to what is going on with their support for DirectX11 and Proton/WINE’s ability to bridge across. [h3]Is playability via proton likely to break over time or be flaky?[/h3] No. Valve has been extremely committed to making it rock solid, and also offers older versions in the cases where something does break. The WINE community has also been a growing and substantial movement for three decades. [h3]Isn't this a win-win-win?[/h3] Yes, pretty much, but it does look like we're backing off Linux support by this move, which bugs me and might bug others. [h3]Does this affect Arcen’s ability to support Linux in any particular way?[/h3] No, because with Unity and similar engines, it already either works or it doesn't. If someone has an incompatibility, we can't change the engine. And Valve has been more on top of things than Unity.