Theme editor

  • RequestStream Movies, TV shows and anime streaming • 1 week trial

Why aren't more Linux versions available?

  • Thread starter Thread starter ghost_one
  • Start date Start date
  • Replies Replies 42
  • Views Views 2K
Thread owner
The ease of porting in the "Indie"/VN space is exactly why I brought this up. I don't have any obvious way to actually count it, but my guess is that >95% of Games on this site alone are made with one of the 6 engines I noted, which means platform specific bugs will mostly be "don't assume a case-insensitive file system" and "don't assume font x to be installed".

I did check the documentations a bit:
  • Unity: Linux toolchain to build from Windows is in the Unity Hub, maybe install WSL2
  • Unreal: cross-compiler toolchain is in a download from the documentation
  • Twine: creates HTML/JS anyways, only thing to check is file name cases
  • Ren'py & Godot: just add the build configuration
  • RPG Maker: create a Web version

That's it. None of them require anything like a separate build host or additional licensing. The engine developers already support Linux with as little friction as possible.

But what I'm missing in this discussion would be more input from actual, active developers. So far, only @misterfluffums and @Rebel 357 do have published games I could find, and both are in favour of Linux builds.
 
Aren't about all RenPy games available for Win, Mac and Linux? Since they are Python based, the Win and Linux download are usually the same.
 
I'm pretty sure GDevelop also has an easy Linux export. I was learning this but took a break from it to work on other stuff.
RPGMaker since MV does Linux build exports, but many Game Devs choose not to make a Linux Build. Which is a shame since the Linux deserves to be supported.
 
But what I'm missing in this discussion would be more input from actual, active developers. So far, only @misterfluffums and @Rebel 357 do have published games I could find, and both are in favour of Linux builds.
Aren't about all RenPy games available for Win, Mac and Linux? Since they are Python based, the Win and Linux download are usually the same.
I'm a game engine developer. (Not a published game developer, but next best thing I guess?) I want to be part of the solution here, which is one reason the engine I maintain fully supports Linux (even has official binaries for unusual Linux architectures like ARM and POWER and s390x, which beats RenPy).

However, I notice an interesting correlation regarding RenPy. Most RenPy games are available as a single release that covers both Windows and Linux, which makes it even easier to support Linux, since you don't even need to upload a separate game release. This seems to be fairly unique to RenPy. It's not because RenPy is Python-based; RenPy uses its own bundled OS-specific Python interpreter, not the one supplied with the OS. Any other engine that keeps its native runtime segregated from its data, which includes RPG Maker MV/MZ, Godot, and Unity, can do this in principle, they just... don't. I suspect this is a major reason why real-world RenPy games usually support Linux out of the box.

So here's a question. Would it be helpful if my engine shifted from separate downloads for each OS and architecture, to a single "universal" download that includes all the Windows and Linux binaries? It seems like it'd improve cross-platform usage, since that way game developers would have to actively intervene to remove Linux support (by deleting some files from the resulting release). Sure, it'd make the resulting game releases a little bigger. But not a lot bigger. And definitely still a lot smaller than the total sum if you released for each OS and architecture separately.
 
Thread owner
Ren'py gets away with it because the included run-time isn't a lot in relation. Just to get a feeling I went through my 69 nice currently installed Ren'py games and tallied them. On average, the Ren'py runtime + 2 Python installs take up ~16.59% of the total size, more if it's a short alpha build or a Kinetic Novel. So the actually added download size, especially with modern line speeds, is negligible, the added 40MB for the Linux interpreter would be ~20s added time max on a mobile network. As a result, the opted to by default build for Windows & Linux instead of just one, and a developer has to make a conscious decision to deselect one.

So, regarding you question: if the expected increase in download size won't affect the overall size too much, then Yes, I think you should switch to supporting both Windows & Linux by default.
 
Thread owner
In case anyone got this far & is wondering why I'm not advocating for more macOS builds: blame Apple. They've made it almost impossible to compile applications for macOS without using a machine running macOS.
 
Ren'py gets away with it because the included run-time isn't a lot in relation. Just to get a feeling I went through my 69 nice currently installed Ren'py games and tallied them. On average, the Ren'py runtime + 2 Python installs take up ~16.59% of the total size, more if it's a short alpha build or a Kinetic Novel. So the actually added download size, especially with modern line speeds, is negligible, the added 40MB for the Linux interpreter would be ~20s added time max on a mobile network. As a result, the opted to by default build for Windows & Linux instead of just one, and a developer has to make a conscious decision to deselect one.

So, regarding you question: if the expected increase in download size won't affect the overall size too much, then Yes, I think you should switch to supporting both Windows & Linux by default.
For my engine, we're looking at around 15 MB per platform for the runtime (according to CI stats). However, that figure includes a nontrivial amount of library files that are identical across all platforms, so I'm guessing there'd be some savings on the library files if the platforms were combined. Combining the platforms sounds like a win then, I guess?
 
OK, I can now confirm that porting Godot games to Linux at the same time as Windows is indeed as trivial as I suspected. Porting Godot games to android was slightly more involved, but still worth it I think to get access to the additional playerbase.

I haven't done anything with Godot before and within two hours I decompiled the stalker x stalker game, figured out how to configure exports for Android / Windows / Linux and actually exported them.

I really, really recommend aspiring devs that use an engine to look into porting. It's hilariously easy.
 
Thread owner
I haven't done anything with Godot before and within two hours I decompiled the stalker x stalker game, figured out how to configure exports for Android / Windows / Linux and actually exported them.
Congrats! I tried that myself and managed to get an export "working", but for some reason it didn't react to any input once in the actual game.
 
Congrats! I tried that myself and managed to get an export "working", but for some reason it didn't react to any input once in the actual game.
I think if you look at the top of the window when you open the game you'll see "debug". There's a debug option while exporting that you have to disable, otherwise it won't react to input.

And there's an option you have to enable to embed the game in the executable, otherwise you need both the wrapper executable and the pck file.

Kid you not, disabling that debug option (or rather finding out you needed to disable it) was the most challenging part of the de/recompile process. So I'm reasonably certain that now I'm slightly familiar with the process, I can now port any godot game to windows / Linux/android within 30 minutes instead of the 2 hours this took me.

If any linux user wants to play a Godot game that hasn't been ported just let me know! If it's a free game I can port it for you, if it's paid I can show you how it's done.

To get back on topic: So unless I'm an actual genius (and humble too!), any actual Godot dev will have to spend 30 minutes max setting up linux / android exports once (as I imagine they're aware of this debug option you need to disable), and after that literally 5 minutes exporting them any time they make a release.

Even if Linux doesn't have a huge market share, it's hard to see any scenario in which half an hour of effort isn't worth it to tap into the player base.
 
I'm a game engine developer. (Not a published game developer, but next best thing I guess?) I want to be part of the solution here, which is one reason the engine I maintain fully supports Linux (even has official binaries for unusual Linux architectures like ARM and POWER and s390x, which beats RenPy).

However, I notice an interesting correlation regarding RenPy. Most RenPy games are available as a single release that covers both Windows and Linux, which makes it even easier to support Linux, since you don't even need to upload a separate game release. This seems to be fairly unique to RenPy. It's not because RenPy is Python-based; RenPy uses its own bundled OS-specific Python interpreter, not the one supplied with the OS. Any other engine that keeps its native runtime segregated from its data, which includes RPG Maker MV/MZ, Godot, and Unity, can do this in principle, they just... don't. I suspect this is a major reason why real-world RenPy games usually support Linux out of the box.

So here's a question. Would it be helpful if my engine shifted from separate downloads for each OS and architecture, to a single "universal" download that includes all the Windows and Linux binaries? It seems like it'd improve cross-platform usage, since that way game developers would have to actively intervene to remove Linux support (by deleting some files from the resulting release). Sure, it'd make the resulting game releases a little bigger. But not a lot bigger. And definitely still a lot smaller than the total sum if you released for each OS and architecture separately.
Yes, I'm sure if you bundle in the Linux support, the Linux community would be happy and compared to the graphics size, the extra few MB are negligible.
 
In case anyone got this far & is wondering why I'm not advocating for more macOS builds: blame Apple. They've made it almost impossible to compile applications for macOS without using a machine running macOS.
Fuck apple and their anti Right to Repair. They are another reason why we need open-source hardware to flourish as well.
 
Yes, I'm sure if you bundle in the Linux support, the Linux community would be happy and compared to the graphics size, the extra few MB are negligible.
Thanks for the feedback. I've just filed for this so that I don't forget about it. I'm not sure quite how quickly I'll get to this, but pull requests would certainly be welcome too.
Fuck apple and their anti Right to Repair. They are another reason why we need open-source hardware to flourish as well.
My engine (mkxp-z) is the only major engine I'm aware of that puts ARM and POWER (both of which are better on this metric) on essentially equal footing with x86. Ren'Py does have ARM binaries available, but they're very much a second-class citizen. It'd be nice if other engines followed my lead on this.
 
I guess in my opinion as a consumer of adult video game, it's because that Linux have smaller consumer base and often that they saw it's not profitable to do it on Linux.
Even in my living complex, I have not seen anyone using Linux as their preferred pc choice. All of them always using either windows, mac, or their mobiles.
 
So I know I've been harping on how easy it is to port games with engines, but apparently this is not always the case. I was secretly looking into whether it had any point to ask SythmanG of Lisland to port to Linux too, as he releases Lisland only for Windows, but then I happened to stumble upon this thread:

You must be registered to see media

Apparently compiling UE games for Linux doesn't work well (at least two years ago). De/recompiling an UE game to test whether this is still the case is also not practical, as UE games get actually compiled to bytecode which destroys a ton of information you'd need to turn it back to a UE project.

Booh. At least UE devs have a good excuse not to port to Linux :P

Thanks for the feedback. I've just filed for this so that I don't forget about it. I'm not sure quite how quickly I'll get to this, but pull requests would certainly be welcome too.

My engine (mkxp-z) is the only major engine I'm aware of that puts ARM and POWER (both of which are better on this metric) on essentially equal footing with x86. Ren'Py does have ARM binaries available, but they're very much a second-class citizen. It'd be nice if other engines followed my lead on this.
As far as I understand the github, your engine can be used by existing RPG Maker projects to become more performant? Neat!
 
As far as I understand the github, your engine can be used by existing RPG Maker projects to become more performant? Neat!
Yeah, it's an open-source re-implementation of the runtimes for RPG Maker XP / VX / VX Ace, with some extra features, graphical enhancements, and much better performance due to OpenGL acceleration. (I'm the current maintainer, a lot of the work was done by developers who predate my involvement.) In theory existing RPG Maker games can run in it out of the box. (In practice, sometiimes small code tweaks will be needed since a lot of RPG Maker games from that era tried to do weird things with Windows API functionality that mkxp-z has to simulate on a fairly ad-hoc basis.) As an example of its performance, I'm remastering a couple of VX Ace games to run at 4320p resolution, and mkxp-z manages to run at that resolution at around 120 fps (if your GPU is good enough).
 
Thread owner
Apparently compiling UE games for Linux doesn't work well (at least two years ago). De/recompiling an UE game to test whether this is still the case is also not practical, as UE games get actually compiled to bytecode which destroys a ton of information you'd need to turn it back to a UE project.

Booh. At least UE devs have a good excuse not to port to Linux :p
Reading through that thread I see mostly these points:
  • Extra QA workload: we already established this is less of an issue if people don't expect a polished AAA title and are ready to provide feedback
  • DX12 vs Vulcan / custom shaders: less of an issue since most games here don't use highly-optimized custom graphics
  • Plugin compatibility: valid concern, at least with the games really using it.
What many are complaining about is an invalid issue, claiming to needing to reboot in order to natively build in Linux when there's .

Meanwhile, I tried to sum up the current inventory as best as possible. The below table counts all games tagged with the engine used (with Godot & GameMaker not having their own tag), but I couldn't easily exclude those tagged as "Abandoned". In short, only about 14.65% of all games (assuming UE really has issues) shouldn't be able to run on Linux, with more than half already having to make a conscious decision to not support it.
GamesGames+Total
Games Total​
7330​
377​
7707​
Ren’py​
3766​
51.38 %​
194​
51.46 %​
3960​
51.38 %​
RPG Maker​
1131​
15.43 %​
77​
20.42 %​
1208​
15.67 %​
Unity​
1127​
15.38 %​
50​
13.26 %​
1177​
15.27 %​
HTML​
230​
3.14 %​
3​
0.80 %​
233​
3.02 %​
Unreal Engine​
201​
2.74 %​
5​
1.33 %​
206​
2.67 %​
Other​
875​
11.94 %​
48​
12.73 %​
923​
11.98 %​
 
There are other game engines I want to get around to. One of my criteria is if Linux is supported.
  • Redot ( )
  • GDevelop ( )
  • RPG Paper Maker (
As for RPG Paper Maker, they are working on a huge version 3.00 update that looks like it may be released before the end of this year.
edit: I don't know why Godot does not have it's own bracket, they shot up largely in use and user adoption since the Unity controversy.
Although, Godot did end up with the woke controversy less than a year later.


You must be registered to see attachments
You must be registered to see attachments
 

Attachments

You must be registered for see attachments list
The ease of porting in the "Indie"/VN space is exactly why I brought this up. I don't have any obvious way to actually count it, but my guess is that >95% of Games on this site alone are made with one of the 6 engines I noted, which means platform specific bugs will mostly be "don't assume a case-insensitive file system" and "don't assume font x to be installed".

I did check the documentations a bit:
  • Unity: Linux toolchain to build from Windows is in the Unity Hub, maybe install WSL2
  • Unreal: cross-compiler toolchain is in a download from the documentation
  • Twine: creates HTML/JS anyways, only thing to check is file name cases
  • Ren'py & Godot: just add the build configuration
  • RPG Maker: create a Web version

That's it. None of them require anything like a separate build host or additional licensing. The engine developers already support Linux with as little friction as possible.

But what I'm missing in this discussion would be more input from actual, active developers. So far, only @misterfluffums and @Rebel 357 do have published games I could find, and both are in favour of Linux builds.
a mix of "built that" and "reverse engineered that to port it" here:

Unity and Unreal require a hell of a lot more than that, and often the unity linux version has stupid bugs they don't bother fixing. Linux audio was broken for years because they just shat the sound out to the first output they found rather than the default so if that's not what your speakers are hooked up to, you get to learn all about linux audio routing to fix it. Whee!

videos in those are a disaster since you have to re-encode every video for each platform as none of them play nice with each other's codecs. VP8 helps some there... Unity and Unreal require you to also compress all textures (or images, for VN) with the right codec per platform. So you have to upload 3x as much. Not a big deal if you have fiber, a hours-long wait if you're stuck with shitty internet.

Unreal is native C++ so you have to build your source, and all libraries, for each platform. Unity covers most of the platform differences with the runtime but with unreal you're rawdogging hardware compat for anything you're adding to the engine. Any third party libraries or whatever, you have to make sure they build as well. Those two aren't just "make sure your filenames are right".

Renpy just works, even if the dev doesn't make a linux build. Just drop in the binaries for that version of renpy or run the game from the renpy editor directly. Still have to check case sensitivity since that one idiot fucked it up 40 years ago when cloning CPM and we've been stuck with it ever since. You can make a triple-release with win/linux/mac all in one download but since the engine doesn't export that way you almost never see devs doing that.

RPGMaker is mostly just javascript and malicious abuse of json to represent bytecode, so you can run node or electrum or whatever it is from the game root and it just plays normally. May have to decrypt it first, but that's easy enough. I assume it's not released multiplatform because they RPGMaker itself doesn't export that way, but it does just work.

Twine probably just works already even if the dev doesn't make it for other platforms.

I've had no problems rebuilding godot games for linux without the source. Even if they're "encrypted" that takes less than a second to bypass.

I've got tools to manage most of the above automatically. Renpy is the most "one-button" since that's the majority of the VNs I play, but aside from U & U I've ported the rest of those to linux without the source with varying amounts of effort.
 
Back
Top Bottom