After 3 years in the making I’m excited to announce the launch of Games on Whales, an innovative open-source project that revolutionizes virtual desktops and gaming. Our mission is to enable multiple users to stream different content from a single machine, with full HW acceleration and low latency.

With Games on Whales, you can:

  • Multi-user: Share a single remote host hardware with friends or colleagues, each streaming their own content (gaming, productivity, or anything else!)
  • Headless: Create virtual desktops on demand, with automatic resolution and FPS matching, without the need for a monitor or dummy plug
  • Advanced Input Support: Enjoy seamless control with mouse, keyboard, and joypads, including Gyro and Acceleration support (a first in Linux!)
  • Low latency: Uses the Moonlight protocol to stream content to a wide variety of supported clients.
  • Linux and Docker First: Our curated Docker images include popular applications like Steam, Firefox, Lutris, Retroarch, and more!
  • Fully Open Source: MIT licensed, and we welcome contributions from the community.

Interested in how this works under the hood? You can read more about it in our developer guide or deep dive into the code.

  • @mrvictory1
    link
    English
    135 months ago

    I tried to do sth similar with limited success using Steam remote play. This is great but I have 2 questions:

    • Did you look into memory deduplication?
    • Is client software sunshine or custom software?
    • @abeltramoOP
      link
      English
      315 months ago

      Great questions!

      Did you look into memory deduplication?

      For the Steam library I suppose? There’s been some discussions around it both in Discord and Github #83 #69 It’s something that I should definitely research further but I’d really like to address it even if it’s just something that might be done outside of our container… Would you like to help us?

      Is client software sunshine or custom software?

      Wolf is an implementation of a full Moonlight backend from scratch; there’s has been many reasons for this but mostly it’s because Sunshine has a lot of global and intertwined state and it would be very hard to add support for multiple independent users. I try to contribute upstream where possible; for example I’ve helped merging our custom library for virtual inputs so that users of Sunshine could also benefit from the new virtual joypad implementation and support for Gyro, Acceleration and so on…

      • @mrvictory1
        link
        English
        115 months ago

        For the Steam library I suppose?

        I meant RAM deduplication. https://duckduckgo.com/?q=linux+same+page+merging&t=fpas&ia=web

        For on disk deduplication, Steam supports user-specified locations for installing games and dependencies like Steam Linux Runtime. 2 users can theoretically use the same Steam library at the same time. To evade issues, auto updates should be disabled in the Steam clients. Steam doesn’t support completely disabling updates afaik, the best is setting update period to 3.00-4.00 AM. DXVK cache files must be located outside the Steam library folder. Otherwise if 2 people play the same game with Proton at the same time, cache files may be corrupted. (the default is the folder with game exe) Info on changing cache file location: link