- SteamRuntime: A runtime environment for Steam applications. The next generation is/will use Flatpak related technologies like Bubblewrap. It's what you target.
- Flatpak: there's close to no overhead, you can try the Steam Flatpak and see for yourself. It's aimed at desktop applications and the sandbox gets better and better. There's a FUD website called flatkill that has already been torn to pieces so don't even bother linking that. You can't instantly make all closed source or old software work in a sandbox without compromises. Flatpak-override and Flatseal exists.
- Snap: nobody cares about Snap not even Canonical. Recently a former employer said he gave up after trying for years to solve issues with Snaps in the desktop. https://s1.desu-usergeneratedcontent.xyz/g/image/1600/72/160...
- AppImage: nobody cares about AppImages they had almost two decades to try and prove it can work. It doesn't. The main developer is now trying to integrate Flatpak runtimes with AppImages and that's all you need to know to ignore this project. One of the most popular video players tried to use it and it kept crashing or having issues, and they know what they are doing.
tl;dr only Flatpak matters, SteamRuntime uses Flatpak concepts and tools, "huge overhead" is FUD
https://docs.flatpak.org/en/latest/single-file-bundles.html
Also, you can install multiple versions of an application, but you can only run one version at a time:
Note that flatpak allows to have multiple branches of an application and runtimes installed and used at the same time. However, only one version of an application can be current, meaning its exported files (for instance desktop files and icons) are visible to the host. The last installed version is made current by default, but this can manually changed with flatpak make-current.
https://manpages.debian.org/testing/flatpak/flatpak-install.... https://manpages.debian.org/testing/flatpak/flatpak-make-cur...
Still, what I like about AppImage is that it is just a file that I download, put it wherever I want, and run. then delete it when I don't want it anymore.