News for hackers. Stuff that matters.
Re:Newest Linux Gaming Predictions for 2023 by smoldesu on Saturday April 01, 2023 @07:07PM (#35405082)
> the "proton devs" (probably a money sink hole for valve)

It's probably a ridiculous figure. However, compared to the amount Sony/Nintendo/Microsoft spends engineering their console runtimes, I bet it makes a lot more sense. It also helps that Valve doesn't have to maintain Wine by themselves, with various cross-platform stakeholders funding and making contributions. It's obvious that Proton/DXVK/Wine is a passion project for Valve, but much harder to tell if they're seriously threatening the idea of a "Windows runtime".

> Elephant is the room: c++ is not mean for binary-only games

I think I agree with you. Steam's runtime provides a lot of stuff (probably standardized libstdc++), so it's hard to truly evaluate how true this is. That being said... both Steam and Wine do a really good job juggling it. Steam works roughly the same on NixOS, Arch, Flatpak and Snap - that's a better starting point than most software clients get.

Re:Newest Linux Gaming Predictions for 2023 by fbdab103 on Saturday April 01, 2023 @07:18PM (#35405203)
>if they're seriously threatening the idea of a "Windows runtime".

From my vantage point, it certainly seems successful. I finally ditched my Windows gaming-only PC last year. Granted, people like me are likely less than a single digit percentage of gamers, but we exist, and as Proton compatibility improves, the percentage could rise.

Re:Newest Linux Gaming Predictions for 2023 by smoldesu on Saturday April 01, 2023 @07:37PM (#35405363)
Yep, I'm in the same boat. I reserve my judgement though, since a lot of people are still Windows-first and Microsoft has yet to make a Hail-Mary powergrab for DirectX.
Re:Newest Linux Gaming Predictions for 2023 by pjmlp on Sunday April 02, 2023 @03:21AM (#35408058)
I advise a visit to OS/2 museum.
Re:Newest Linux Gaming Predictions for 2023 by 7speter on Saturday April 01, 2023 @09:20PM (#35406101)
I guess it's a sinkhole, but its more of an investment for Valve's future. If Microsoft comes down hard with pushing the Microsoft Store, especially since they now own how many different game studios, Valve (and the other Launcher/Gaming storefronts) will be pushed out of existence. Now, while Valve continues to hold influence in how games are distributed online, they are finding a way to exist without Windows and Microsoft. Steam is the easiest way to get games to play on Linux, and people can (and will) jump the Windows ship and still be able to buy games from Steam, allowing Steam to weather any attempts by Microsoft to put it out of business.
Re:Newest Linux Gaming Predictions for 2023 by sylware on Sunday April 02, 2023 @12:05PM (#35412014)
It happens all the time: some c++ games are compiled for a shared libstdc++... which is not ABI compatible with the one from the steam runtime (this is well know issue:c++ ABI is HORRIBLE). Namely it breaks with the steam runtime shared libstdc++. I repeat: it has been happening ALL THE TIME IN THE LAST DECADE.

I usually ask their devs to use the '-static-libstdc++' gcc/clang option (and at the same time -static-libgcc), and this issue is gone... actually partially, because the static libstdc++ is not libdl-ing its system (module/version)s & (symbol/version)s (well, did not check if c++ gcc/clang devs did fix that) and this is a big problem too: the linker with use the most recent version of modules and symbols (and you cannot overide than unless properly using libdl with dlopen/dlsym/dlclose).

What is the problem with that: well, the game binaries will then refuse to load on system with glibc modules/symbols with "too old" versions... and I was hit hard with this: no more than 1.5 years... yep, this is filthy nasty. And yes, this is not limited to the static libstdc++, it encompasses the glibc modules too. Godot devs mitigate this by explicitely warning devs about this issue and provide some containers with a really old glibc in order to avoid too recent versions.

When you really look at this, I mean with a "final" perspective: the "right" way would be to eat the bullet, and I mean seriously: deprecate ELF DT_NEEDED (and static TLS). It means that if you want to get some services from the system shared objects, you must use dlopen/dlsym/dlclose (and deal with the versions). It would be those symbols will become hard defined in the ELF loader, like __get_tls_addr() for TLS.

We could manage to keep DT_NEEDED, but it means binutils ld MUST allow fine-grained version specification of modules(shared objects) and symbols... which it does not (or it was fixed very recently and I missed it, or I sucked and did miss it from the doc for years).

Re:Newest Linux Gaming Predictions for 2023 by sylware on Monday April 03, 2023 @12:32PM (#35426778)
Ok, I did double check. It is even worse.

You cannot "officially" remove any symbol versions, but it does not matter: games must become pure ELF binaries, namely MUST NOT USE main() for the following reason:

A genius at IBM(redhat/sourceware) did break for good the glibc: From glibc 2.34 __libc_start_main symbol has 2 versions, GLIBC_2.2.5 and GLIBC_2.34, it means that any game exe linked against glibc 2.34 won't load on system with glibc below 2.34, if using main().

wow... those guys are msft "grade" in planned obsolescence.