Overview

Historically, this was the first attempt that we’ve made at running games in Docker. Wolf has now completely replaced the simple bash script present in this repo.

Games on Whales (GOW) lets you stream games (and other graphical applications) running in Docker containers with hardware acceleration and low latency.

The goal is to allow a server to stream games to clients the same way you play a video on YouTube. A server is not necessarily a gigantic beast of a machine; in fact, GoW will probably run on hardware you already have, such as a laptop or desktop computer, or even something smaller and compact like a Raspberry Pi (in theory).

Generally, you should be able to pick any OS that supports Docker and start using GoW, but testing and development are focused on Linux-based systems.

How does it work?

We bring together a few different components:

Platform

Most of the software in the Games on Whales system runs in Docker containers. Containers are software packages that are designed to make installation and configuration easy by providing a consistent platform everywhere the package is run.

You can choose to run GoW in either Host Desktop mode, or Headless mode. In Headless mode, we run a few platform containers for you:

  • Xorg: The famous windowing system for managing and displaying graphical applications (GUI)

  • PulseAudio: A sound server that can manage audio coming from multiple sources (apps).

In Host Desktop mode, we expect the host server to provide those pieces.

Streaming Server

GoW streams running apps to clients using NVIDIA’s GameStream protocol. We provide a choice of two open-source server implementations.

Although NVIDIA has announced that they are ending support for GameStream in early 2023, these open-source implementations (and thus GoW itself) do not rely on any NVIDIA support or infrastructure and will continue to work even after that date.
  • Sunshine: The original open-source GameStream host, and still the most well-tested. Use this if you’re unsure which one to pick.

  • Wolf: A new GameStream host, still in alpha.

Client

Moonlight is an open-source GameStream protocol client. Moonlight runs on many platforms, including: mobile phones, laptops, desktops, Steam Deck, and even the Nintendo Switch!

Moonlight is not distributed with GoW. You’ll need to install it on each device you plan to use as a client for playing games.
Applications

The GoW system aims to be compatible with as many GUI app containers as possible. Here’s a selection of the ones we provide, though adding more is a very straightforward process.

  • RetroArch: An open source, cross-platform frontend for emulators, game engines, and more!

  • Steam: The popular game store and launcher, now sandboxed in a container

  • Firefox: A modern web browser

gow diagram

Head over to the components overview if you are interested in how these pieces of software are tied together by GOW