-
Notifications
You must be signed in to change notification settings - Fork 175
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AppImage to distribute games #4837
Comments
It's better to see Steam Runtime as Appimage, but not games. |
Can whoever votes this down give a reason please? And yes, it should entirely be doable to distribute the Steam runtime as an AppImage. In fact I have tried but the runtime is so convoluted that I'd need someone from Steam to collaborate on this to get it done. |
Because Steam games depends on Steam as DRM-service. It's not DRM-free games, like in GOG. And Appimage has make no sense.
It's already works on any distro which running Steam
Not needed.
Steam games simply download and ready to work
Steam not needs root, all Steam games as well.
Not needed, because Steam updates also work |
Yes, but only on those. And the Steam client needs to be installed first.
...for you. I just like the convenience of being able to copy one single file to a different machine and have it run, without needing to download or install or unpack anything again.
Last time I checked, Steam did invoke
Bummer. |
Then use GOG :) Steam client as Appimage is good idea, but Steam games as Appimages.... |
So I run Steam on openSUSE Tumbleweed. Trying to open Magicka 2 nothing happens. No error window nothing. So I do:
So it needs a different version of openssl that openSUSE ships. Having the games as AppImages would make much more sense.
Exactly the games are the ones not working because of being built against different paths/library versions |
I agree. Exactly the same is happening with Zero-K in OpenSUSE 15 and Steam Play (beta). I can play Zero-K with Lutris (needing previously to install mono-base, that's the truth) but I supposed that Steam will play Zero-K without any user intervention after installing it from Steam platform, but it's doesn't work. After installing it in Steam, I launch Zero-K and ... nothing happens (it seems to begin to launch and nothing happens finally). So, yes, I think AppImages could solve these problems. |
@jubalh You've probably already moved on at this point, but my report in #6014 discusses how to successfully run Magicka 2. Steam already includes most of the essential libraries needed to run a lot of the i386 and x86-64 Linux games. But if you're going to try to run them directly yourself from the command line, you need to run them via a wrapper script which sets up the environment in which the games run for the dynamic linker to be able to find the libraries installed with the Steam client itself. Something like this (the fix and how to run it with the Steam versions of these libraries):
Adjust your own Steam installation path as necessary in the above obviously. |
I love this idea. |
Check out NotepadPlusPlus-7.7.1-x86_64.AppImage which bundles a 32-bit Windows application and a custom subset of Wine to run it into a single-file 64-bit Linux AppImage: https://github.com/probonopd/libhookexecv/releases/continuous Multiarch or 32-bit libraries are not needed on the target systems to run this. |
I think you already answered yourself. Valve doesn't want Steam games to work without the Steam client. |
What a pity. |
Maybe you could suggest that idea to GOG. They believe in no-DRM. |
I had once tried it but then given up because it looked like as soon as I modify Steam, it reinstalls itself. https://github.com/AppImage/AppImageKit/wiki/Bundling-Steam |
Aeon_of_Sands_-_The_Trail-x86_64.AppImage Presented in Steam lib. |
An AppImage version of the steam launcher/client would really be great. |
Please don't. It would be impossible to launch Appimage-packed games in flatpak .
|
There would be no need for Flatpak in this case at all. Users could just download and run the AppImage. Valve would be in full control of software distribution without having to rely on a third party such as the organization behind Flatpak. In fact, this is a key design goal of AppImage - to put application/game authors and end users in full control without any middlemen/gatekeepers in between. |
While there is no need in AppImages already. Flatpak is strictly superior in features:
You may use whatever you prefer for your system, but this change would break Steam in Flatpak that just works for a lot of users. So, if you are a game developer and read this thread - please do not pack your native steam game as AppImage. Use Steam runtime and pack it in a standard way. |
No. it serves a totally different purpose. With AppImage, one game = one file. Simple!
With AppImage, the author of an AppImage can decide what to put inside it. If the author wants to, the author can put glibc and everything else into the AppImage.
No. Wrong. Please don't spread FUD.
Again. Wrong. Please don't spread false information. Next time you want to discredit something, you need to try harder. Because each of your claims can easily be disputed by a quick web search. |
Not very informative. I see that you are somehow related to AppImage development, so I'm obviously not going to convince you. Thankfully, developer mentioned in the issue above is migrating from AppImage to standard Steam runtime. I just left a warning for any other game developer passing by. One more thing to be considered: Valve also uses bubblewrap for Steam runtime to some degree and as mentioned AppImage doesn't work with it out of the box. |
Let me be informative for you @alandiwix
The best thing about Appimage is the simplicity. |
Thanks, @Goddard however all these arguments are actually not relevant for me:
And yes, AppImages doesn't work at all for my distribution, and while glibc-based apps can be executed in flatpak/bubblewrap (and "just work" btw), AppImages doesn't even work with that (and extracting them basically negates all few advantages of AppImage). It seems you are not going to convince me either, let's just end this. |
This is due to the design principle that an AppImage must have no dependencies other than the base system (distribution). However, space is cheap these days. So the actual overhead for bundling everything is in many cases way less than people think. Because unlike with Flatpak runtimes, an AppImage needs to bundle only the parts that the particular game/application actually needs. And if all distributions would finally agree (maybe nudged by the Linux Foundation) on a common base system (Linux Standards Base), then not everything would have to be bundled. Proof? On a blank system, install LibreOffice via Flatpak. Measure all network traffix with
Not if the resulting AppImage is tested on a well-known mainstream distribution, like the oldest still-supported Ubuntu LTS. Then as long as all distributions are binary compatible to that (as they should) things will work properly. The AppImage format encourages all distributions to be binary compatible to the oldest still-supported Ubuntu LTS in order for things to work properly, whereas Flatpak just works around the issue by shipping private copies of everything. Talk about wasteful!
No. You would have to bundle only the parts that the application actually uses, which is actually way less than "a complete underlying distribution (aside from the kernel)". I am stating this from experience, not from speculation. Not every file in a distribution is actually used by a particular application. Flatpak totally negates this fact. For example, it requires you to download a full Qt even if a particular Qt applciation uses only 10% of it.
Me neither, because I am neither an expert in nor believer in sandboxes. But nothing prevents the Bubblewrap developers to add AppImage support, like the Firejail developers did.
AppImages are designed to be "one app/one game = one file". But the main point is that with AppImage, there is no gatekeeper in between the software author and the end user. No Red Hat, no Flathub, no nothing. It allows software authors and end users to be in full control and not to have to worry about random policies of middlemen. |
Or we could just use Flatpak that works right now even on distributions not supported by AppImage. But whatever, just don't suggest breaking Steam games for everyone who uses flatpaked Steam by pushing your product. We want Steam and games to just work (on even most "exotic" distributions) like it does right now with Flatpak. Few care for ideological stuff like "one app/one game = one file" and imaginable "simplicity" of your solution ("make all distributions agree on Linux Standards Base so my stuff will work"), sorry. I bet that the stuff you would include in LSB is way more "overengineered" than Flatpak will ever be. |
Here is the entire source size uncompiled of glibc. This is the deb package size by the way. Here is glibc's ftp http://ftp.gnu.org/gnu/glibc/ |
Except that it doesn't
This thread is about AppImage. Please don't abuse it to advertise alternative ways of distributing software. |
Yes, glibc is under 20 MB. Which is not that bad imho. Actually, not all files in the glibc package are actually required by all games/applications. Most require only about half of it. I have tested this. So, roughly 10 MB overhead. Not bad at all. The payload game/application could even be built with something like musl libc, further shrinking the footprint. |
Live ISOs use overlay tmpfs these days, and I use flatpak on readonly root (except for some dirs in /var) - problem doesn't exist
Ideological thing, solution for a problem that doesn't exist
You can spawn your own flatpak remote or push your software to flathub quite easily - problem doesn't exist
Why would I? I can checkout any ostree commit in flatpak. You could also just archive /var/lib/flatpak. |
Not possible if you are using, e.g., a lab machine where you are not the administrator. With AppImage, you just download one file, set the executable bit, and run it. No administrator permissions needed! |
You want to run steam games on your lab machine? |
I want to run anything on any machine without system administrators being involved. And this idea is very popular, even on Windows: |
Well, you could do that even without AppImage or by building AppImage for your stuff yourself. But even if you can't do that for some reason, as I said, this usecase is not worth breaking Steam games for Flatpak users. |
AppImage does not break Flatpak and I hope the reverse is also true. |
I linked the issue above that is the opposite of what you are saying. |
if Flatpak breaks FUSE, that's Flatpak's fault then, not AppImage's. |
Ok, now we can conclude: your product provides no advantage over Flatpak aside from "make Steam games work on my Ubuntu lab pc" and "one app = one file" ideology (that is not an advantage actually). While Flatpak provides plenty of advantages (sandbox, deduplication, more distributions supported, etc.) with no real disadvantages aside from "it's not installed on Ubuntu by default". At first, I thought you were just unaware of problems your suggestion here would bring to so many people. But you seem to be aware and totally okay with that, pushing job of fixing stuff to other people instead. Your "proper solution" doesn't work in real world, sorry. And I hope people will take into account this kind of AppImage developers' mentality: "I suggest to break working setups for people for no real advantage and make other developers fix their software to be compatible with my crap". There's a better solution: never use AppImages in Steam (maybe even do not use them at all) because they provide no real advantage over standard Steam runtime and other existing software. |
We should get the mess that "Desktop Linux" is as a platform fixed (by subtly forcing distributions to get their act together and be compatible to each other, at least on a certain minimal common denominator) rather than working around their incompatibilities (by not using the distribution at all, like Flatpak does). I guess this is the difference in our philosophies, which we can agree to disagree on. |
From the point of view of a Linux desktop user with years of experience, I must say that I personally prefer AppImage files, for several reasons:
For me, these are enough reasons to prefer AppImage to Flatpak |
@alandiwix I have a working project that sandboxes AppImages using bubble wrap (aisap) which packages itself, along with bubble wrap into it's own AppImage -- SUID free, so I'm not really sure what you mean by impossible. AppImages can also be sandboxed through Firejail. |
Flatpak itself refuses to comply with the xdg-base-dirs specs by hardcoding ~/.var, something they actually said wont fix and steam is also another program that hasn't fix that issue and at this point I don't think they will either. appimages have the option to create a portable home for them, if steam came as an appimage I could move all the crap they place in my homedir easily. |
Having it as AppImage only let you to locate where is that file. You must create symbolic links to another folder outside your home partition. That's how I do at least. Then, when you install Steam games, it will placed in another partition. |
That's not issue, the issue is that I want my homedir to be clear of unsorted dotfiles, and just having the symlink doesnt get rid of them. I do have a hack working, which is using the native package of steam with a fakehomdir using a wrapper script that setups a fakehome for it inside .local. |
We ended up making an AppImage of Steam here Also includes fixes like the patched EAC Glibc, Zenity-gtk3 (because gtk4 version just flashbangs you lol), recent version of mesa and a patched bubblewrap that allows launching appimages from Steam. I can finally get rid of the useless top level dotfiles that Steam makes by making the |
Could games through steam be distributed as AppImages?
This would have, among others, these advantages:
appimaged
The text was updated successfully, but these errors were encountered: