It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
As a GNU/Linux user, I feel that GOG would do well to release all native Linux titles as Appimages. Appimages are an amazing format, and extremely portable. They are compatible across all distributions, you could copy and paste them, place them in any directory of your choosing, even install them as regular applications through "Appimage Launcher". A great third party program.

They are self-contained, so they are not dependent on any libraries and whatnot that you would have to install yourself, and they are much more secure because they are sandboxed away from any root directories. Everything the game needs is packaged within the Appimage, ready to be played without issue. This means less maintenance in the long-run.

A lot of open source titles are already released as Appimages, notably Xonotic which is an amazing alternative to Unreal Tournament, and it plays just as well as you'd expect. I feel a lot can be done with this format, and would be a great way for GOG to expand support while making things easier and stress-free. More can be learned through the following links, although the last one isn't really relevant I found it very interesting and useful nonetheless.

https://docs.appimage.org/

https://appimage.github.io/appimagetool/

https://github.com/ruanformigoni/gameimage
Post edited July 21, 2023 by Pax-Christi
Albeit I am unsure if there are any drawbacks to using Appimages (or Flatpaks or Snap images; but I guess Appimages in general are favored as they are supposed to be the most distro-independent for their development etc.?), but in general I agree. At least I had pretty good experience with Flatpaks in Rocky Linux 9, it seemed the most foolproof way to install an use Linux software that wasn't fully supported in RHEL (9), like Steam, Skype and such.

I guess the main problem at this point though is that GOG isn't that actively supporting Linux, so they are not probably actively going to develop the way they offer Linux builds, for now.
Post edited July 21, 2023 by timppu
I agree with more software developers using AppImage. It is amazing!
But there is a huge drawback with that which might consume much time and resources from GOG:

File size.

You see, AppImages are so amazing and so compatible because they are a compact file with the software and all its minor dependencies coupled together to be ran in any system.

I do not know to which extent this would affect games for certain, but I do think it would be a lot of space with so many games. In fact, GOG does not really support Linux as much, indeed, but, still, they have many Linux games and some are even wrapped using Wine, like Flatout 2, for example, and to make all of them as AppImages would probably require a lot of resources which I personally don't think GOG have right now.

Still, its all just theories based on observations on the state of things around here right now.
That'd be nice. But give that GOG's version of MojoInstaller is from 20-freakin-10, I don't think much can be done to push their Linux support forward into the modern age.

They're platform agnostic, don't require double libraries, can be sandboxed, and aren't the true hell that is Snap.
Like .Keys mentioned above, size bloat is a major issue for AppImages, with some dependency sets potentially being massive.

Still, specially for older games, where dependencies have been dropped in newer iterations of the supported distro(s), having them bundled with the game without having to install to the whole system is, imo, pretty good.

Besides, AppImages work as portable EXE files in Windows, at most requiring to allow running the file as a program, all that being possible to do entirely on the GUI on most distros I've tested.
Anyone here who knows what those *.sh files are that GOG currently uses for Linux? I mean, I know that they are bash shell scripts with a binary appendage.
But what archive format is this? Can I somehow preview the data contents in Windows? 7-zip and WinRar don't seem to know how to handle this.
avatar
_Auster_: Like .Keys mentioned above, size bloat is a major issue for AppImages, with some dependency sets potentially being massive.

Still, specially for older games, where dependencies have been dropped in newer iterations of the supported distro(s), having them bundled with the game without having to install to the whole system is, imo, pretty good.

Besides, AppImages work as portable EXE files in Windows, at most requiring to allow running the file as a program, all that being possible to do entirely on the GUI on most distros I've tested.
I don't think the bloat issue would amount to much more than the fully-installed version of the game being kept on GOG servers, in terms of size. Maybe a little bit extra to account for any dependencies the game would need?. It really isn't a big problem, storage is cheap nowadays and if I can afford a 2TB SSD to keep all my Linux games on I'm sure GOG can too.
I will answer the first part of my question (see above) myself.
These sh-archives are created using makeself https://makeself.io/
Still need to find a way to preview contents.

makeself - Make self-extractable archives on Unix

makeself.sh is a small shell script that generates a self-extractable compressed tar archive from a directory. The resulting file appears as a shell script (many of those have a .run suffix), and can be launched as is. The archive will then uncompress itself to a temporary directory and an optional arbitrary command will be executed (for example an installation script). This is pretty similar to archives generated with WinZip Self-Extractor in the Windows world. Makeself archives also include checksums for integrity self-validation (CRC and/or MD5/SHA256 checksums).

The makeself.sh script itself is used only to create the archives from a directory of files. The resultant archive is actually a compressed (using gzip, bzip2, or compress) TAR archive, with a small shell script stub at the beginning. This small stub performs all the steps of extracting the files, running the embedded command, and removing the temporary files when done.
avatar
g2222: Anyone here who knows what those *.sh files are that GOG currently uses for Linux? I mean, I know that they are bash shell scripts with a binary appendage.
But what archive format is this? Can I somehow preview the data contents in Windows? 7-zip and WinRar don't seem to know how to handle this.
7-Zip can handle it to some degree if you use the right method with the Test option. If I recall, it is the asterisk * option.

I use that in a couple of my programs for testing SH integrity and a limited view of content.
Post edited July 21, 2023 by Timboli
avatar
g2222: Anyone here who knows what those *.sh files are that GOG currently uses for Linux? I mean, I know that they are bash shell scripts with a binary appendage.
But what archive format is this?
Just a gzipped tar appended to a shell script.
Post edited July 21, 2023 by clarry
avatar
.Keys: I agree with more software developers using AppImage. It is amazing!
But there is a huge drawback with that which might consume much time and resources from GOG:

File size.

You see, AppImages are so amazing and so compatible because they are a compact file with the software and all its minor dependencies coupled together to be ran in any system.
Hmmm i haven't heard of this before, but sounds promising. Were i to do something like this i'd probably do SquashFS with zlib compression for speed purposes and some compression, as SquashFS is pretty much universal at this point (unlike 2000 when it was coming out and an experiment)

As for dependencies. I'd hope there would be a separate dependencies image which all of them would refer to, mount two images and away you go! (No installation needed) or extract dependencies locally. That would handle the file size part regarding shared data. Though if people burned them as ISO's on a disc and wanted to just put a disc in to play it, that would be a little harder with separate dependencies disc.

Maybe i'm being too optimistic on how i would like to see it all work.
I think the current sh files are fine.
avatar
g2222: I will answer the first part of my question (see above) myself.
These sh-archives are created using makeself https://makeself.io/
Still need to find a way to preview contents.
These are actually MojoSetup installers, you can list their content (and extract it) with tools like the BSD implementation of tar (based on libarchive) or unzip.
avatar
Pax-Christi: (...)
avatar
_Auster_: (...)
avatar
g2222: (...)
avatar
Pax-Christi: (...)
avatar
Timboli: (...)
avatar
clarry: (...)
avatar
rtcvb32: (...)
avatar
vv221: (...)
I do not know for certain how they do their .sh setup installers, only that they use MojoSetup and that the compression is not that good. But I've come across a Python script (Therefore, easily usable on Windows too) a while ago on GitHub that allows us to extract them and see its contents without "installing/extracting" the game as intended:

https://github.com/Yepoleb/gogextract

And an explanation on how GOG Linux setups work, by the script creator:

https://yepoleb.github.io/blog/2016/10/09/how-the-gog-linux-installers-work/

It worked with everything I tested it in. (Practically all the Linux ports on GOG of games I own.)

If you can bash script, to write a little script that extracts and then compress your Linux GOG ports using 7z, PeaZip, or anything really, is easy and can save you a lot of space. :)
Post edited July 21, 2023 by .Keys
You should all consider reading these articles. Our choices matter.

http://techrights.org/2023/06/14/fatpack-or-flatpak/
http://techrights.org/2023/07/09/corporate-distros/
Post edited July 21, 2023 by VstreetKid