This is just a vent post / unpopular opinion (? unsure if unpopular). Specifically on Steam. Linux native builds are so buggy and glitchy and never work right. Always some combination of:

  • No sound
  • Old outdated version missing content and incompatible online
  • Controllers don’t work
  • Crashes, doesn’t launch at all
  • Horrific FPS
  • Cutscenes don’t play
  • Weird game breaking softlocks and logic errors, like critical items not spawning and dialogue not triggering
  • Zero support and low priority from the developer

I have none of these issues with Proton. Proton works perfectly fine, I love it. This only happens when a game doesn’t use Proton. As soon as I change to Proton all issues are resolved. This problem has followed me across distros with fresh installs, so it’s not a config issue. Yes I have the correct drivers and such, NVIDIA proprietary unfortunately. It’s so strange, you’d imagine the native build would run better not worse.

The worst part is, it’s not easy to tell when a game will launch using Linux native as it’s the default priority. Games can even silently update and stop working when they gain Linux native “support”. You have to manually go in to properties and override compatibility to proton. Normally I do this when I notice a suspiciously large amount of bugs and I’m like hmm… oh look it’s Steam Linux Runtime 1.0 again.

I wish there was a way to just force Proton globally. Either that or people actually test and maintain their Linux builds. I’d rather there be no Linux build at all if they’re going to be so terrible.

Edit to add commented example list of games:

I couldn’t get a full list because I was relying on having set a flag forcing a specific version of Proton to identify which games were problematic to jog my memory… Unfortunately this data is local only and was not synced between computers, so it was lost when I changed distro. Just from my limited memory though, I can list some that I distinctly remembered when writing up my post, though it’s many more in reality. It’s also surprisingly hard to see whether a game even has a Linux native version, you usually have to wait for the store page to load and scroll down to compatibility, which is just annoying.

Games that worked well:

  • Factorio
  • Stardew Valley
  • Baba Is You
  • All Valve games (TF2, DotA2, etc)

Games that had issues:

  • 1001 Spikes
  • The Case of the Golden Idol
  • Broforce
  • Spiritfarer: Farewell Edition
  • The Stanley Parable: Ultra Deluxe
  • Cook, Serve, Delicious
  • Valheim
  • A Game About Feeding A Black Hole
  • Audiosurf 2
  • Keep Talking and Nobody Explodes
  • Slay the Princess
  • TIS-100
  • Cassette Beasts
  • Brotato
  • Bit.Trip runner
  • Don’t starve together
  • Unpacking
  • While True: Learn
  • Fez
  • Magicka 2 (controllers not working)
  • One Shot (critical gameplay bug right at the end. Had to watch a let’s play to finish it. I messaged the dev who left me on Read)
  • Just Shapes & Beats (no sound)
  • Tiny Bookshop (no sound)
  • HiveSwap (critical gameplay bug right at the end, and savefile bricked, had to watch a let’s play and the dev ignored me) (I’m not a “fan” I swear, please don’t lynch me)

I’m getting tired and I’m sure you get the point. Almost every game in my experience has been unplayable on Linux runtime. I’m glad it’s working well for you though.

  • sp3ctr4l@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    15
    ·
    edit-2
    2 days ago

    Here, in a nutshell, is my theory for why what you are describing is so common:

    Almost nobody develops a game on Linux, with an engine you can build from source, and use to make the game, on Linux.

    If you do… do that… your Linux native game will probably run fine.

    But! Almost every major game engine you’ve ever heard of, that says it supports Linux, in the sense of you can build/run the game engine itself on Linux?

    They’re full of shit.

    Their engines do not actually work on Linux, half the time you can’t even compile them, they don’t even know half the dependencies they actually have. They throw insane errors all the time, because you’re just alpha testing their attempt at porting their engine to Linux.

    They just say ‘we added Linux support!’ and nobody ever actually tries to verify this, because Linux based game devs are using one of the fairly small number of engines that… actually work on Linux.

    (Hah, or they’re basically just building their own engine, or layering together actually platform agnostic rendering/physics/networking/whatever libraries into basically a custom engine)

    Valve, for example, has figured it out.

    HL2? Linux native build, running on SteamOS?

    Works great.

    Godot? Use GDScript, not C#, build the game on Linux?

    Also works great.

    Most games devs are actually just full of shit when they pretend they understand anything about Linux.

    Maybe check out Road To Vostok if you want to see what one guy can do with Godot and a few years.

    Its not impossible… most games devs just have God Complexes, its just how it is, very rare to find some that are both humble and competent.

    • Zarobi@aussie.zoneOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 days ago

      This makes sense to me. I tried to run Unity and UE5 once on Linux. Fuck it’s annoying to even get the SDK running. Valve’s games are perfect on Linux and run like a dream, I wish more games were like that, but it has to start at the tooling level.

      • sp3ctr4l@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        Ok, double post, but I may have just answered my own question at the end there:

        https://github.com/Zylann/godot_voxel

        Pro: Seems to actually do what I was trying to do, and then some, holy shit.

        Con: Apparently, the main version of this is basically a rolling fork of Godot, because it needs so much to be done in c++… and… well, that might mean it runs into the exact problem that spawned this whole conversation: reliably reproduceable builds in different OS contexts.

        • Zarobi@aussie.zoneOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 days ago

          Sorry the only 3d game I ever made was a Doom clone, and it was pretty bad lol. I don’t really know what a voxel even is, I kind of just do things by feel haha.

          I I’ll definitely try out Godot, I kind of just gave up on making any games when I switched to Linux about 7 years ago. It’ll be cool if it works

          • sp3ctr4l@lemmy.dbzer0.com
            link
            fedilink
            English
            arrow-up
            1
            ·
            2 days ago

            Godot actually has uh…

            https://github.com/func-godot/func_godot_plugin

            Basically… works to both rip and also create Quake, Quake 2, Half Life 1 maps.

            Its also a pretty extensive framework.

            If you wanna step up a bit from a Doom clone, to a Quake clone… you could do it with this.

            There’s also Godot VMF…

            https://github.com/H2xDev/GodotVMF

            Can actually rip and convert HL2, TF2, L4D… basically Source up to roughly 2013 maps.

            I don’t think its much of a map creator/editor though? I think the idea is you just actually make your map in Hammer, and then basically import it into Godot.

            I managed to … mostly correctly … decompile.or convert or whatever, some maps.from NeoTokyo, an old HL2 mod, so… will probably at least mostly work for HL2 mods?

            It does rely on the actual SourceSDK though, so… probably not ok for commercial use?

      • sp3ctr4l@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        As far as I can tell, if you want a decent level of tooling…

        I dunno, so far I haven’t been able to find anything more … straightforward but also powerful if you know what you’re doing… combo… than Godot + GECS.

        GECS is a … honestly shockingly well developed entity component system framework for Godot.

        If you wanna do a 2D game, Godot basically already has everything you need, but yeah… 3D isn’t quite there yet, though it is making strides. The recent IK rework does help bridge a major … feature parity gap with more ‘big boy’ engines.

        GECS helps a good deal too, but yeah, its not Source(2) lol.

        I dunno shit why not: Any chance you know of something like a Godot 3d level mapping system based around bsps or octrees or something?

        I know there are voxel frameworks, but… lot of people are looking to make something other than minecraft.

        I’ve been futzing about trying to figure out how to cajole some system of nested 3d gridmaps into a kind of octree system, but with vertices inside of the grid space, and then you’d have the equivalent of a 3d clipmap deciding which chunks of the grid space to render verticies at what level of precision… but i feel like im trying to weave together hyperspace half the time, which hurts my overdeveloped ape brain.

  • thezeesystem
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    After a couple of YEARS trying to find work around for native rimworld problems. I found a couple interesting things that it’s not the developer that was the problem it was the game engine unity that broke certain things and the unity game engine people wouldn’t fix.

    I now play it on proton with its own set if weird problems.

    But just know that maybe these Indy games that run specific engines can’t tos shit about things because the fucking people who make the engine won’t fix it.

    Just my experience from rimworld is all.

  • WormFood@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    2 days ago

    I had to discontinue Linux builds of my game on Steam because the game engine I’m using has a very buggy and unfinished Linux runtime. I’m not happy about it because I wanted native support, but ironically proton is a better user expertise

  • daniskarma@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    7
    ·
    3 days ago

    Linux has a fundamental problem with native builds of closed source applications.

    This is lack of true retro compatibility.

    On windows you can still run software made for windows XP with more or less issues. But windows api are more stable and it does have retro compatibility tools built in.

    Linux does not, once in a while the OS APIs change, and any software not patched for those changes might stop working completely.

    I have been thinking for a while. That it would be great if some sort of “linux retro compatibility” tool existed.

    Similar to launching a program in windows with “window 7 compatibility” to be able to launch linux apps woth “Kernel 4 compatibility” or something like that.

    • Flipper@feddit.org
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 days ago

      One thing Torvalds enforces is not breaking userland. So it shouldn’t be kernel problems. More likely its some other lib that breaks compatibility.

    • forestbeasts@pawb.social
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 days ago

      The Steam Linux Runtime is basically this! It’s a bunch of fixed versions of OS libraries that games can use.

      The kernel itself actually needs nothing special, because the kernel devs are VERY serious about backwards compatibility. One of their core rules is “you do NOT break userspace”. Library devs… not so much.

      – Frost

  • Quazatron@lemmy.world
    link
    fedilink
    English
    arrow-up
    69
    ·
    4 days ago

    I expressed this view before. Wine and Proton are now the Linux Gaming Layer.

    Windows has relatively stable APIs or ABI to serve the third party software and games.

    Linux does not. It is however so incredibly flexible that it can assimilate entire operating systems as interface layers. I think it’s absolutely awesome we are using Microsoft’s DirectX tech combined with Vulkan to run Windows games faster than Windows does.

    It’s been years since I bothered to check if a game I’m buying is Linux compatible or not, because of it isn’t, it will be soon.

  • Pirate2377@lemmy.zip
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 days ago

    Usually its the developers neglecting their Linux port rather than it being Linux itself that is at fault unfortunately. So, unless its a Paradox game or Valve game, I would suggest running it through Proton anyway

  • brucethemoose@lemmy.world
    link
    fedilink
    English
    arrow-up
    11
    ·
    3 days ago

    Let’s say most devs abandon native Linux and basically everything moves to Proton. Game devs start testing on it, then targeting it. Windows as a gaming platform withers away.

    A Windows API, on Linux, is now the stable gaming API. It sets the standard.


    …I’m content with that future.

    I mean, the irony would be delicious. What better way to dance on MS’s grave than rob their API?

    • sp3ctr4l@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 days ago

      Step one of ‘what engine am I going to develop on?’

      Does it natively support Vulkan?

      Step two:

      Can I build the engine from source, on my debian/fedora based distro, in under 30 minutes, without having to discover that the documentation for how to do this is wrong?

      If the answers to either of those are ‘No’, gtfo here.

  • Err(()).unwrap()@lemmy.world
    link
    fedilink
    English
    arrow-up
    41
    ·
    edit-2
    4 days ago

    People who downvote because “hurr durr linux best” but have never had to support a cross-platform application should read Raiguard’s experience of maintaining Factorio’s Linux-native build: https://factorio.com/blog/post/fff-408

    “Why don’t most games support macOS and Linux?” is a sentiment I often see echoed across the internet. Supporting a new platform is a lot more than just changing some flags and hitting compile. Windows, macOS, Linux, and the Nintendo Switch all use different compilers, different implementations of the C++ standard library, and have different implementation quirks, bugs, and features. You need to set up CI for the new platform, expand your build system to support the new compiler(s) and architecture(s), and have at least one person on the team that cares enough about the platform to actively maintain it. If you are a video game, you will likely need to add support for another graphics backend (Vulkan or OpenGL) as well, since DirectX is Windows-exclusive.

    I support every solo and small-team developer who prioritizes making the game over maintaining a completely different platform build.

    • MurrayL@lemmy.world
      link
      fedilink
      English
      arrow-up
      29
      ·
      4 days ago

      Supporting a new platform is a lot more than just changing some flags and hitting compile.

      Sadly, based on many comments I’ve seen (across the net at large but also here on Lemmy), a lot of gamers really do think it’s that easy.

      See also: ‘why don’t the devs just add multiplayer?’

      • 4am@lemmy.zip
        link
        fedilink
        English
        arrow-up
        3
        ·
        4 days ago

        Still get into arguments with Mario Maker 2 players on why multiplayer had to be lockstep sync without “the rollback like fighting games use”

        • Zarobi@aussie.zoneOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          4 days ago

          I kind of feel like MM2 is designed around playing multiplayer with people next to you rather than on the other side of the planet

    • Zarobi@aussie.zoneOP
      link
      fedilink
      English
      arrow-up
      10
      ·
      4 days ago

      I don’t mind people downvoting. To me that means the games they play don’t have that issues. Maybe I’m just unlucky but I’m also a “variety gamer” so my exposure surface is very high as well

      • Bilb!@lemmy.ml
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 days ago

        Well I downvoted you because I don’t like Australians. They keep bullying me on 4chan!

      • thingsiplay@lemmy.ml
        link
        fedilink
        English
        arrow-up
        6
        ·
        4 days ago

        I wouldn’t say just because people downvoted you means they don’t have issues. I for myself don’t have much issues (as far as I know) that can be attributed to Linux builds, and still upvoted you. They might not agree with you fully and that’s why downvote you. In example your statement it didn’t work ever and you always have to use Proton version, but also there are examples of games that worked well. It might be that some games work well and some don’t, I wouldn’t argue against that. But many games work well without Proton.

        Also Proton doesn’t work perfectly fine either, depending on the games. In some cases games might even stop working using newer version of Proton. And for some DRMs like Denuvo, Proton is deadly, because every time the Proton version updates, it counts as a new machine (which counts as a new installation for no reason!) and will get you a cooldown of 24 hours before able to play game again; even for single player games.

        • Zarobi@aussie.zoneOP
          link
          fedilink
          English
          arrow-up
          5
          ·
          edit-2
          4 days ago

          Yeah that’s true as well. Nothing is perfect, I was just sharing my experience because even today I ran into this issue multiple times and got annoyed.

          I noticed people here seem to attribute a lot more meaning to downvotes than other websites, and it’s even a bit taboo to downvote too often. Personally I don’t really think about it that deeply, there’s always people who will disagree with you. Also I noticed hyperbole isn’t appreciated either. Like to me if I read “Linux native is buggy and never works right” that doesn’t mean literally never, it’s more like the emotional never.

          • thingsiplay@lemmy.ml
            link
            fedilink
            English
            arrow-up
            4
            ·
            4 days ago

            There are also people who hate on Proton, because it uses the Windows build and advocate for Linux builds only. They say its bad for Linux, because developers don’t need to understand and care about Linux in the long run anymore. This is not my opinion and I disagree with those statements. So when you say you hate native Linux games, they will downvote you because they disagree with you on that point. As always, there is a truth in all those statements, so I don’t want to discourage anyone for being against Proton.

            One thing I want to mention is, that these games on Steam are for the most part proprietary. So having native builds isn’t as effective as having native Open Source builds. The reason we usually want native is, because we can change and adapt issues with Open Source tools and games. But that is not possible with proprietary games. Therefore having them on Proton isn’t losing much on that front.

            • Zarobi@aussie.zoneOP
              link
              fedilink
              English
              arrow-up
              1
              ·
              4 days ago

              Yeah that’s a good point. There’s a huge difference between Cities: Skylines and OpenTTD. I feel like those kinds of older style PC games are especially suited to native Linux builds.

    • Zarobi@aussie.zoneOP
      link
      fedilink
      English
      arrow-up
      6
      ·
      3 days ago

      I shouldn’t have to do that to play a game. You can’t say “gaming on Linux is accessible and easy now”, and then tell people to static link their dependencies into an executable. That’s a hack job patch, not a solution.

      • chunes@lemmy.world
        link
        fedilink
        English
        arrow-up
        23
        ·
        3 days ago

        That wasn’t blame levied at the user. It was just an observation from the perspective of the developer. For a variety of reasons, distributing software in linux can be very difficult.

          • chunes@lemmy.world
            link
            fedilink
            English
            arrow-up
            8
            ·
            3 days ago

            No worries. I wasn’t the most clear. I do that a lot, where I say “you” when I’m talking about a category of people that I didn’t explicitly specify. Something to work on.

  • WagnasT@piefed.world
    link
    fedilink
    English
    arrow-up
    19
    ·
    4 days ago

    Kerbal Space Program on proton literally uses half the amount of ram compared to the Linux version. I assume the way unity exports for Linux is just not optimized at all but it works. Maybe with Linux gaining popularity these engines will put more effort into making them work well.

      • sp3ctr4l@lemmy.dbzer0.com
        link
        fedilink
        English
        arrow-up
        4
        ·
        2 days ago

        This is the actual explanation.

        Turns out, Unity on Linux… kinda sucks!

        Just, literally at the engine level, outside of all the other shenanigans.

        Because Linux is an after thought for them.

        • Mwa@thelemmy.club
          link
          fedilink
          English
          arrow-up
          3
          ·
          2 days ago

          ofc and btw the same engine who tried to charge devs for every download they got (but fired the CEO who tried to do that) and owns a company who put malware installer on people’s phone.

  • anamethatisnt@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    21
    ·
    4 days ago

    I can agree that an old and buggy version of a game is no fun. But that is as true of Windows versions as Linux versions.

    You seem to have much worse luck when starting linux native games than I though. I have no problem with Factorio, Oxygen Not Included or Kingdoms and Castles which I think are the only linux native games I got installed at the moment.
    The thing I find much more frequently is that a game released on GOG doesn’t receive the patches and dlc that the developer release on Steam. I always have to verify that a developer actually support their GOG release as well as Steam before buying.

  • x00z@lemmy.world
    link
    fedilink
    English
    arrow-up
    15
    ·
    4 days ago

    Many game developers make it for Windows and do the bare minimum to get a native Linux build.

  • marxismtomorrow@lemmy.today
    link
    fedilink
    English
    arrow-up
    13
    ·
    4 days ago

    So anyone having these issues:

    It’s libraries and steam (and GOG, jesus christ GOG is the worst at this) being lazy at actually implementing permanent fixes.

    For example, BG II Enhanced edition works wonderfully under linux. Every game with Beamdogs improved infinity engine does. Except for the fact it was built against specific library versions which are a decade behind what is shipped in 90% of distros today. Except most versions of the game you download have the libraries you need so no problem right?

    Except the launcher script included is rarely if ever set up to actually use them. So it fails to launch, and the error message you get sends you on a wild goose chase and since its an old game you just skip the work and instead use the windows version and take the 10-20% FPS hit and weird graphical issues that happen with proton.

    The actual solution? Take those specific library versions, putting them in a folder, and then symlinking said libraries into the game’s folder and setting up a venv so that it only uses those libraries and doesn’t try to use system libraries.

    And unfortunately you have to do this for every game with developers too stupid or too lazy to actually do any amount of work on their linux builds.

    Between Steam’s linux runtime (1 2 and 3) and gog linux native games you can build up a decent “library” of libraries and easy symlinks to copy, which will make all native linux clients behave. This solves 99% of the things wrong.

    The other 1% is genuinely the developer doing something fucky with the windows version of your display driver that the manufacturer of your video card didn’t parity with their linux drivers and is too obscure for the open source community to know about.

    • Zarobi@aussie.zoneOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      4 days ago

      I don’t get noticeable FPS hits or graphical issues with Proton. In fact, in many cases Proton actually outperforms Windows in FPS.

      I don’t think many people are willing to mess with that symlink stuff to be honest, I know I’d only do it if I had a really good reason to. But I’m not a Linux expert, I don’t really understand that kind of stuff and would probably fuck up my game or system if I tried. I know enough to read and mostly comprehend commands that I’m copy pasting into terminal

      • marxismtomorrow@lemmy.today
        link
        fedilink
        English
        arrow-up
        9
        ·
        4 days ago

        I don’t get noticeable FPS hits or graphical issues with Proton. In fact, in many cases Proton actually outperforms Windows in FPS.

        This will depend entirely on your hardware and drivers, but I was referring to Proton v native. Properly set up and ‘supported’ native should generally always end up faster, but Nvidia’s stupidity and developer’s stupidity tend to mess that up.

        I don’t think many people are willing to mess with that symlink stuff to be honest, I know I’d only do it if I had a really good reason to. But I’m not a Linux expert, I don’t really understand that kind of stuff and would probably fuck up my game or system if I tried. I know enough to read and mostly comprehend commands that I’m copy pasting into terminal

        That’s understandable and why I direct my complaints very precisely at the problem so that more people can yell at developers and stores to actually do this work themselves. Steam tries, but their solution only works on the flatpak version, which makes modding said games outside of the workshop difficult (and introduces all sorts of other problems for power users that do not keep their games in their home folder) and GOG tried for a while but whoever is overseeing the gog linux distributions seems to not understand anything about linux at a fundamental level. Hell even the independent GOG installer is broken on on some systems without GTK2 installed because the underlying application was built 15 years ago and essentially never updated.

        • ampersandrew@lemmy.world
          link
          fedilink
          English
          arrow-up
          6
          ·
          4 days ago

          I’ve been daily driving Linux for 9 years, and I didn’t know any of this either. I wouldn’t recommend yelling at developers to update old games, because basically none of them ever have it in their development budget to go back and do so, if the studio even survived to this day. If this is something that routinely happens with old Linux native games, then we need a better solution. I’ve run into misbehaving old Linux native games and also just defaulted to using Proton instead. That’s way easier than diagnosing which libraries I need, which I never thought to do and still don’t know how.

          • marxismtomorrow@lemmy.today
            link
            fedilink
            English
            arrow-up
            8
            ·
            4 days ago

            So, short tutorial:

            • Install steam. (seriously it just has the most libraries)
            • Install any steam native linux game (if you have any valve product, install that.)
            • Navigate to ~/.steam/steam/steamapps/common
            • Navigate into each of the SteamLinuxRuntime* folders
            • Find every ‘lib’ folder within i386 and x86_64 (or amd64) for each steam library folder
            • Open a new tab/window and pick a path somewhere that you can remember and create two folders there, something like ~/Games/LinuxFix/i386 and ~/Games/LinuxFix/x86_64
            • Copy every single library you find in every single linux runtime into these folders, respecting the i386 and x86_64.
            • Create a new file (I normally name it run.sh) in the game folder of the game you want to play with the following (at minimum, if you need/want any other ‘command line’ arguments, this would be the script to dump them in:
            #!/bin/bash
            export LD_LIBRARY_PATH=/<Path you picked>/i386:/<Path you picked>/x86_64
            ./<game_executable>
            
            • And run it.

            Congrats, you now solved nearly every launch problem with native linux games better than a multi-billion dollar company. The most you will have to do if you’re still having problems is run that ‘run.sh’ in a terminal, see what exact name for a library the game is expecting, find a library in one of those folders that is close to that name (usually this is something like “libkeyutils.so.1.4”) and symlink (in dolphin this is ctrl click and drag to an empty space) it with the name requested (which is usually just something like “libkeyutils.so.1”)

            Congrats, you now troubleshot more than the entirety of GOG’s forum staff and successfully did something that multi billion dollar company couldn’t do.

            • ampersandrew@lemmy.world
              link
              fedilink
              English
              arrow-up
              2
              ·
              4 days ago

              We can actually put a number on the value of GOG since its recent acquisition, and it’s about $25 million, not billion, which is a pretty stark difference. I get where you’re coming from, but this is something I would have had no idea how to do, and how frequently should those libraries be checked? They probably don’t become outdated all at once. Even with you spelling it out for me, I’m still more likely to just use Proton.

              • marxismtomorrow@lemmy.today
                link
                fedilink
                English
                arrow-up
                4
                ·
                4 days ago

                Generally once you set it up once per game you should be good to go. But every update to your distro may invalidate games you haven’t done this to. To explain why:

                On linux your system maintains your packages, including all linked libraries, not individual programs. On windows it’s mostly down to the program (though for things like direct x that’s now handled by windows update… for the most part).

                Now when compiling a game, you can only compile for version numbers you know, since newer versions of a library might make drastic changes that break things, so you can’t future proof your application on linux. This is also why packages on linux have ‘maintainers’ even when they don’t add new features or make any real improvements for years at a time, you have to compile to whatever’s current.

                So as linux keeps updating, the system version of the library keeps increasing, but for video games especially the original developers don’t, won’t, or simply can’t recompile each time their dependencies update because their entire profit model around software release was designed for windows, where each application is shipped with the exact library version it needs and never has to change anything.

                So. What’s the real solution? Each game should just ship with the library version it needs. The reason game devs are hesitant is because it’s not best practice on linux, as it theoretically introduces a security risk and they don’t want to be held liable. (Say there’s a Privilege Escalation exploit found in libssh 0.2.1 and your game shipped with that version, you can’t update the version your game uses without updating the game, and if you’re several years out you’re not spending money updating the game.) But honestly the risk of that is so low it’s practically pointless to worry about, but still that has meant that the distributor defaults to being the one responsible… the problem with that is the distributors rarely have Subject Matter Experts in high enough numbers to decipher what every single game needs.

                So what’s this solution? So what this does is piggy back off of Steam’s implementation. Steam installs several “run time environments” for linux to handle this problem… but that doesn’t always mean steam includes everything you need in any single one, and valve probably has like, one guy doing it. So by combining all of steam’s work into a single source folder and then linking setting up that venv to point to it, you shotgun blast library versions at a program until it accepts one, solving the problem for that game forever. Much like any problem solved by a shotgun.

                Sidenote

                The app image distribution format completely and totally solves this problem, but kills mods without explicit handling by the developer. Flatpak also completely and totally solves this problem but introduces permission problems and kills modding in a new exciting way thanks to the sanboxing feature of Flatpak. Snap also completely solves this problem, but like flatpak kills modification and non-standard installs thanks to its sandboxing feature.

                Because of linux’s architecture itself it is harder to distribute static non-changing applications, because realistically those are a security risk.

                • ampersandrew@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  ·
                  4 days ago

                  You outlined a lot of very good reasons as to why this hasn’t happened already. Is this something you could build as an automated tool to pay it forward, particularly for outside of Steam?

                  Also, your posts seemed to point mostly to games that won’t launch. I haven’t had that problem. What I have had are issues where the game window behaves in strange ways such that it breaks Alt+Tab; or that it reads my mouse coordinates in incorrect locations in a multi-monitor setup; things like that. Do you expect the updated libraries to solve issues like those as well? Or, in your personal experience, have they?

        • Zarobi@aussie.zoneOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          4 days ago

          Oh yes that’s right, you awakened a traumatic repressed memory where I keep all my games on a secondary SSD and because I installed either snap or flatpak (can’t remember), it just shit itself and failed to work properly. Took me ages to figure that out.

          It would be nice if there was actually good native Linux games. Imagine how buttery smooth they would run. Valve games one of the reasons they’re so enjoyable is they run perfectly on Linux, chef’s kiss. But they made the steam deck so it would be silly if they didn’t

  • wizzim@infosec.pub
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 days ago

    To some extent, I have the same issue with choosing Gog over Steam. I really want to support Gog, because it’s DRM free and European. However, it can happen that the games released on it are lacking patches, achievement or DLCs. For instance look at the commentary of Thief simulator: https://www.gog.com/en/game/thief_simulator

    Devs support Steam because it’s the top platform, and do the bare minimum for the rest. And I don’t really see a solution for that.

    Other examples: Hitman World of assassination on Epic has less achievements than the Steam version. Hardspace Shipbreaker achievements are broken on Epic and functional on Steam.