Earlier quoted context omitted.
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…
> 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 prog…
Despite having just 5.8% sales, over 38% of bug reports come from Linux
261–267 of 267 posts
Re: Despite having just 5.8% sales, over 38% of bug reports come from Linux
#262Earlier quoted context omitted.
> 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 prog…
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.
Yes, the only difference (between backported bugfixes) really is which glibc version is included.
This does not apply to other libc implementations like musl which only tend to be used in lightweight focused distros intended for embedded systems or containers like Alpine Linux. With these even the steam runtime won't help you since it (and Steam) also requires glibc and it's needed to use e.g. flatpak to provide a glibc userland - that's on the user/distro though: https://wiki.alpinelinux.org/wiki/Steam
> or libraries in general
Libraries generally fall into two categories: system libraries required to interface with hardware or other OS components and general user libraries. System libraries (e.g. libasound, libpulse*, libGL, libvulkan, libX11, libwayland) do provide a stable ABI with strong backwards compatibility and you can and should rely on the system verisions (again, decide on a minimum version, e.g. by compiling on Ubuntu LTS or something or use SDL to abstract this for your). Don't include copies of these unless you know what you are doing.
Other libraries (for example zlib, libpng, ...) do not generally provide any ABI guarantees (at least not long enough ones to matter for binary distribution) so you should ship your own copies or use the steam runtime to do that for your. If you can, statically link them into your binary and hide the symbols so that they don't clash with any system libraries that may be loaded - this provides the best future compatiblity with current and future distros.
There are some interface/abstraction libraries like SDL and OpenAl soft that both provide a stable ABI and themselves build on other stable ABIs. Here the best path is to distribute your own copies but do not statically link them.
A pain point is the C++ standard library libstdc++. Like glibc it currently provides a stable ABI with backwards compatibility. Unlike glibc it tends to be much closer linked to the compiler version so it will be harder to avoid requiring a newer version than what your oldest target distro comes with, unless you are fine with restricting yourself to an older compiler and C++ version. It might be tempting to include your own copy but this will cause problems because graphics Mesa (the open-source Vulkan and OpenGL implementation) also uses libstdc++ and requires a copy at least as new as the one it was built with - which any copy you bundle won't be for long. If you can statically link libstdc++ and libgcc (and all your C++ dependencies) and hide all C++ symbols then you are fine. Otherwise, rely on the steam runtime to get your a new enough version.*
Re: Despite having just 5.8% sales, over 38% of bug reports come from Linux
#263It's worth noting that this game uses Godot engine, which is open source and built with Linux in mind, and most platform compatibility complexity was shifted to engine. Experience is quite different for big game developers that have their own engines and can't offload complexity to another layer of abstraction, supporting a lot of hardware/software combinations on Linux for them is quite hard. I presume that's why th…
> Experience is quite different for big game developers that have their own engines and can't offload complexity to another layer of abstraction, supporting a lot of hardware/software combinations on Linux for them is quite hard. Oh but they can offload that complexity to e.g. SDL [0] As for why games like Cyberpunk 2077 are not on Linux, we can only speculate. Remember however that for a profit-focused publisher/dev…
Re: Despite having just 5.8% sales, over 38% of bug reports come from Linux
#264Earlier quoted context omitted.
> It's just a static shared library [...] No. First, "static shared library" is self-contradicting: libraries are either shared or static, not both. The longer answer is that plugins have to be compiled with the `-fPIC` flag to be loadable. The `-fPIC` flag basically says that it has relocatable symbols. You can't link against system-provided static libraries because they're never (by design) compiled with `-fPIC`. I…
> It might be possible for us to configure our build system to recompile every library we depend on as static and relocatable, but that'd be quite a bit of effort to set up. Sounds like you already know the solution to your problems. Link all your dependencies into your plugin, hide all symbols except the plugin interface and base system ones and you can make your plugin distro-agnostic. If you depend on external sha…
Re: Despite having just 5.8% sales, over 38% of bug reports come from Linux
#265Earlier quoted context omitted.
If you support distro packaging of your software (which you should, since it should ideally reduce the load on you when it comes to triaging bugs) and users are coming to you with distro specific bugs then you should: - Immediately close issues where the user has indicated that they did not test against the latest version or where the user has not answered the question "did you reproduce this issue with the current v…
I strongly disagree - I'd rather all my users filed their bugs directly on the upstream issue tracker for my projects so that I can get a proper view of what bugs are being encountered. If there are steps to reproduce then most of the time it will be a lot easier for you as the developer to just check if the bug still happens with the latest version than having the user or packager build it themselves. Don't expect u…
In the case when a user is not technically skilled enough to test for the bug in the latest version themselves they should go to the maintainer whose job it is to be able to do that.
> but doing that for all reports of problemsx with distro builds, especially when using automation, is disrespectful of the time the user has spent on reporting the bug.
What? How is it disrespectful? They're helping their distribution and their distribution should be forwarding the bug onto you if it's not their fault.
In fact, if the distribution is aware of it then the user is more likely to get a hotfix sooner than if they go straight to you.
> So sure, you can do that (you don't owe users anything after all) but I think its rude and will only turn potental future contributors away. I'm definitely glad that that is not how most projects handle user reports.
It is actually how most old style open source projects operate. If you're happy to accept direct bug reports which are either already fixed in the latest version or which may be distro specific issues then go ahead. Please don't burden every other project with this kind of noise by making it clear that this is a project specific policy.
Re: Despite having just 5.8% sales, over 38% of bug reports come from Linux
#266Earlier quoted context omitted.
Yeah, that was basically most of the bug template we were filling when I used to work QA at Warner Bros. Games. Summary : Steps to reproduce : Expected result : Actual result : Build/Version : And a few more fields about platform, severity, etc. on Jira.
Lucky you to have that standard enforced within the org! We don't so I pretty much invariably have to respond to "bug reports" ("foo doesn't work pls help") with "can you please format your bug report like this?" haha Out of curiosity, what does deving for Warner Bros mean? Like working on their internal systems and stuff? Netflix integrations or something? Sounds cool, bet you get to see movies before they come out…
I was working at their Montreal Studio. It's exclusively a video game studio. I was mostly working in QA on Middle-earth: Shadow of War.
Even if the game is technically developed by Monolith Productions, Warner Bros. Interactive Entertainment (WBIE) helps with their ressources (Artists, QA, Devs).
There's also alot of internal tooling for Builds automation, Automated testing / QA Aids tools, etc that is handled by WBIE as the game editor.
We didn't see movies before they got out but we had access to a 30-50 persons theater room that I was able to "rent" for free outside of business hours to watch movies with friends and show them the non-secure areas of the office. (Cafeteria (Free drinks!), gaming room, etc.))
I'm not really into commics but we had a room with thousands of comic books that we could take and read anytime we wanted (WB owns DC Entertainment).
I worked there 6-8 months when I was out of school before getting my first dev job.
Re: Despite having just 5.8% sales, over 38% of bug reports come from Linux
#267Earlier quoted context omitted.
Lucky you to have that standard enforced within the org! We don't so I pretty much invariably have to respond to "bug reports" ("foo doesn't work pls help") with "can you please format your bug report like this?" haha Out of curiosity, what does deving for Warner Bros mean? Like working on their internal systems and stuff? Netflix integrations or something? Sounds cool, bet you get to see movies before they come out…
Sorry for the delay! I was working at their Montreal Studio. It's exclusively a video game studio. I was mostly working in QA on Middle-earth: Shadow of War. Even if the game is technically developed by Monolith Productions, Warner Bros. Interactive Entertainment (WBIE) helps with their ressources (Artists, QA, Devs). There's also alot of internal tooling for Builds automation, Automated testing / QA Aids tools, etc…