Nidhogg 2 [Steam, Official Site], the sequel to the indie hit of 2014 may not come to Linux and the developer has listed reasons why. Hopefully people can help get this going.
It's not the usual type of thing we hear, in fact the developer actually gave out some interesting details.
Here's what they said:
As for the actual Linux build, basically, things are so far not very good with Linux runtime in software used (GameMaker: Studio),
- Gamepads may or may not work because there's a limited (embedded) database for them instead of having an editable config file like SDL does.
- Mice can be detected as gamepads (I think because some distros register a generic device + mouse# device for them?).
- Depending on undetermined factors (library combinations?), audio may cease to play.
- Depending on desktop environment, different interesting things happen with graphics - ranging from garbage data outside the game area (i.e. on empty "letterbox" areas) to actual texture corruption or literally having half of game screen missing for no good reason.
- Depending on more factors (GPU drivers?), other interesting things happen with graphics - e.g. delays can be required when changing between window and fullscreen or display buffer ceases to change size or becomes garbled.
- Unless running via a .sh (LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH DISPLAY=:0 stdbuf -i0 -o0 -e0 ./MainBinary), native extensions (.so) cease to load correctly.
- Compiled Steam builds are broken by default and will not hook up with Steam API unless moving files around and adding a steam_appid.txt (which is not supposed to be shipped with release builds).
- Related or not related to above two, sometimes Steam and/or Steam P2P native extensions cease to load for some users.
- When working with Steam Workshop, some users have GMS games unable to access downloaded items (permission issues?).
Overall it's a pretty tough decision to start making Linux builds if you know that they won't work for many people and you won't be able to do anything about that yourself (aside of waiting).
Hopefully things improve on this front by the time when current tasks on the game are finished.
That's quite a list of issues, although the one about running it via an .sh file isn't what I would say is an actual issue. Lots of Linux games use this method, including most Linux games available from GOG. I'm pretty sure all Feral games use that method too.
The other reasons are all likely quite valid and depend on GameMaker.
A shame, but I really hope they manage to pull it off. It certainly looks like a game I would enjoy, especially as it looks completely nuts.
Perhaps one of our lovely porters like Icculus, Ethan Lee, Knockout Games or someone else could arrange a port.
Thanks for letting me know, Luke!
I have seen touchpad as gamepad issues with some games, I think they were mono based. With those the issue was that the game only expected one gamepad and that was the touchpad, because it was registered first.
With that list of issues and the low probablility of getting them fixed I'd rather port it to some sensible engine. That would equal a rewrite, save for the assets.
Quote- Unless running via a .sh (LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH DISPLAY=:0 stdbuf -i0 -o0 -e0 ./MainBinary), native extensions (.so) cease to load correctly.Isn't this standard when you ship games that require specific versions of libraries? I've even seen many steam games do this even with the steam runtime avaliable.
Honestly, it should just be like on Windows - look in the executable folder first, done. Would solve all problems, at least for closed source distributions.
Instead you gotta do some tricks like this script or my preferred method - changing rpath of the executable (and recursively the other dependencies).
Both is hacky, though.
But at least there are solutions to this, hacky or not.
The main problem here is Game Maker... really, I'm surprised anyone uses this for actual games and more than just fooling around. There are so many better alternatives.
Last edited by TheSHEEEP on 31 August 2017 at 8:14 pm UTC
"Perhaps one of our lovely porters like Icculus, Ethan Lee, Knockout Games or someone else could arrange a port."
the issue is, the thing that should be "arranged" is game maker in order to fix this, so he will need the source code of both.
that is a quite strange game, i dont see my self buying it, but their transparency makes me want to support then if the game runs on wine.
Quoting: kfQuote- Unless running via a .sh (LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH DISPLAY=:0 stdbuf -i0 -o0 -e0 ./MainBinary), native extensions (.so) cease to load correctly.Isn't this standard when you ship games that require specific versions of libraries? I've even seen many steam games do this even with the steam runtime avaliable.
Yes, it's basically the equivalent of how they on Windows have to bundle all their external dependencies and install them in the same folder as the game (and thus users have millions of the same DLL:s on their hard drives).
If only writers of shared libraries would think more about backwards compatibility...
Quoting: TheSHEEEPThe main problem here is Game Maker... really, I'm surprised anyone uses this for actual games and more than just fooling around. There are so many better alternatives.
It's surprising, but even some relatively well known developers have done so. For example Vlambeer. But from what I've seen, game maker is horrible. Even simple things are incredibly difficult in the "click-click"-mode. However, they have integrated ruby or somesuch. But when you're programming you can just use any of the many free 2D game engines.
See more from me