• kopper [they/them]
    link
    fedilink
    English
    arrow-up
    2
    ·
    11 months ago

    Some games will probably actually rely on Steam, like for achievements or something. For those…If there are a substantial number of Mac games that won’t work in a 64-bit environment, I am wondering if it is possible to make a “steamlib proxy” – basically, have a 32-Mac VM, run the game in a VM, but have Steam running in a 64-bit host environment, and just relay calls to a process launched under the host environment that uses the host steamlib to talk to Steam. Valve presumably isn’t gonna set that up as a supported environment, but I wonder if that might be a viable open-source project.

    I think Proton has something of that nature, so games running inside Wine talk to the native Linux Steam binary.

    • tal@lemmy.today
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      11 months ago

      WINE doesn’t really isolate apps. Valve may have done some degree of compatibility work or not for the Windows Steam library, but the game running under WINE doesn’t have any real restrictions on its ability to talk to Linux software. As long as the Steam Windows library and the Linux Steam client use some form of IPC mechanism that works on both platforms, like TCP sockets, it should “just work”, same way a Windows web browser running in WINE would “just work” when talking to a Linux webserver on the same machine.

      But if someone’s having to set up a 32-bit VM running a different MacOS guest OS, then they’re not gonna be able to run Steam in the guest (due to the Chrome requirements that Valve mentioned), and I don’t believe that programs using the Steam library can talk to Steam on another host normally.

      • kopper [they/them]
        link
        fedilink
        English
        arrow-up
        1
        ·
        11 months ago

        I’m just saying the “steamlib proxy” concept you mentioned is not only possible but has at least one implementation. The fact that Wine isn’t true isolation doesn’t really change anything (maybe other than the exact details of the underlying IPC channel, which could use some kind of optimized shared memory magic) unless I’m misunderstanding something.