Locally, you could use vagrant to startup multiple linux distros then build and startup the game for a visual test. It would then be easier to output a list of "tested on platform/distro X,Y,Z" as well as the deps for each of them.
Locally, you could use vagrant to startup multiple linux distros then build and startup the game for a visual test. It would then be easier to output a list of "tested on platform/distro X,Y,Z" as well as the deps for each of them.
You can't use their dependencies or you'd need to provide builds for different versions of the same distro (because many many many libraries aren't that stable, and distros typically only provide one version of each).
And you probably don't want to run your own repository (and I'm not even sure apt can do repositories with a login, so you'd be making your game available to everyone with the link), so you can't use their update functionality either.
So then all you have left is a bad archive format - essentially a distro-specific .zip that's more annoying to build.
The other tools ship dependencies with the program, so they don't have this particular issue. AppImage and Flatpak are also cross-distro, while snap is tied to Canonical and awkward on other distros.
But this isn't an open source game, as far as I can see, and most games aren't.
Also I often find the fixed releases of most distros to be a bad fit for games because the stability argument matters less and less - there's little in the way of backward compatibility to keep, and hence no real reason not to upgrade.
(not that I'm much of a believer in fixed releases to begin with)
Also, you have to keep them up to date as new distro versions are released, whereas many games work on a principle of "release, and done".
Making a release where you link as much as you can statically increases the chances it will work in the future.
AppImage is a great option: it's the equivalent of statically linking everything. Users only need to have the binary and they can run it. Developers bundle everything into that binary.
Snap uses a compressed image format that makes startup horrid. And snaps don't seem to work well with hidpi resolutions when scaling is enabled (snap doesnt know about the scaling so it draws everything super small).
I haven't used AppImage but between apt, snap, and flatpak, I really see flatpak as the winner for how games should be installed.
It was a nice learning experience, but far from the "Easy to make, runs everywhere" marketing Appimages have.
Does using muls libc and statically linking everything actually work out in practice? I read somewhere (HN comment, don't have reference) that it still might not be enough and your programs still need to the OS libc.
it's not like it is esoteric knowledge though: https://docs.appimage.org/reference/best-practices.html#bina...
Distros are usually tied to specific versions of libraries. Your package can't require a library that is too old or too new, because the distro won't have that version, or won't install it, because it'd conflict with other packages. The way around it is to prefer static linking, but then you're reducing the whole dependency and packaging system to just being a zip file with extra steps.
There are many package formats, and many distros with different versions. It's a PITA to set up a build farm for everything and keep it from bitrotting.
And even if you build a two dozen packages, you need to help users download the right version, and tell them how to install it (my pet peeve in many distros is that when you double-click a deb/rpm, they won't offer to install it, but browse it like a folder or treat as an unknown file).
All of this is so much more fuss than "Here's your Windows.exe, or Mac Universal.app".