← Back to context

Comment by 5e92cb50239222b

5 years ago

TBH this runtime can be replaced, and Arch ships a package which makes it very easy to do

https://wiki.archlinux.org/title/Steam/Troubleshooting#Steam...

Sometimes it works better than what Valve ships. It saved me a couple of times.

The value of the steam runtime is not in how well it runs for users, but that it provides a singular target for game developers. I'm not sure if you witnessed any discussions around why most game developers are not willing to port their games to linux. From what I've seen the main complaint is that linux is too fragmented and nobody wants to package a binary for X versions of glibc, Y versions of sound libraries, and Z versions of graphic APIs. Having the steam runtime to target solves all of these issues, even if it doesn't represent the best that a user can run on their individual configuration.

  • > nobody wants to package a binary for X versions of glibc

    You only need to build against the oldest glibc version you want to support - and the runtime does nothing to change that since you can't bunle your own libc (if you want any dynamic linking at all, which you need fro e.g. OpenGL/Vulkan).

    > Y versions of sound libraries

    The steam runtime makes sure that there is a libasount/libpulse* present so that your program can start if it links against those, but it does not provide anything for compatibility between them - that can be achieved by e.g. SDL or OpenAL Soft (which load them dynamically which means there is no problem if the libraries are missing and you won't even need the runtime). It's also ok to only support one audio system then then have users figure out the compatibility on their system (e.g. PipeWire supports the ALSA and Pulse ABIs).

    > Z versions of graphic APIs

    Same, the runtime ensures that a vulkan loader is present but does not actually do anything for compatibility. Both OpenGL and Vulkan also provide backwards compatiblity so you again just need to decide on a minimum version.

    What the steam runtime mainly does is provide a bunch of libraries that are present on Ubuntu that games might link against so that everyone has them. Nothing stopping the games from shipping those libraries themselves though.

    • Are you sure glibc versions (or libraries in general) are compatible between distributions? That's what I meant by "different versions", sorry for not making it clearer.

      1 reply →