Blog

Multi-Seat-Game-Streaming unter Linux: Jeder bekommt sein eigenes Spiel

Dein Gaming-PC schafft zwei Spiele gleichzeitig. Die meisten Streaming-Hosts geben der zweiten Person trotzdem nur einen Spiegel der ersten. punktfunk gibt jetzt jedem Client auf einem Linux-Host eine eigene Session – Bild, Tastatur, Controller, Ton und Mikro. So funktioniert es, und hier sind die Grenzen.

Dein Gaming-PC langweilt sich wahrscheinlich die meiste Zeit. Die GPU könnte locker zwei Spiele nebeneinander laufen lassen. Aber verbindet sich eine zweite Person mit einem typischen Streaming-Host, bekommt sie kein eigenes Spiel. Sie bekommt deinen Bildschirm. Gleiches Bild, gleicher Ton, und jetzt kämpfen zwei Leute um einen Mauszeiger.

Das ist kein GPU-Problem. Es ist ein Leitungsproblem. Ein normaler Desktop hat einen Bildschirm, ein Paar Lautsprecher und eine Eingabe-Warteschlange. Ein Streaming-Host, der diesen Desktop abgreift, kann ihn immer nur teilen.

Das Sofa-und-oben-Problem

Diesen Fall hatten wir ständig. Eine Person sitzt oben am Laptop und spielt etwas Schweres. Jemand anderes schnappt sich unten auf dem Sofa ein Steam Deck und will etwas ganz anderes spielen. Gleiches Haus, gleicher PC, zwei völlig verschiedene Sessions.

Mit einem gespiegelten Desktop geht das einfach nicht. Also haben wir aufgehört zu spiegeln.

Ein gamescope pro Person

Unter Linux kann punktfunk jetzt für jeden Client, der ein Spiel startet, eine eigene Spiele-Session starten. Jede ist ein eigenes kopfloses gamescope, in genau der Auflösung und Bildrate dieses Clients, mit nur dem Spiel darin. Nichts davon hat mit dem Desktop des Hosts zu tun, und nichts mit der anderen Person.

Das bekommt jede Session:

  • Ein eigenes Bild. Ein separates gamescope und ein eigener Videostream.
  • Eine eigene Tastatur und Maus. Jede Session bekommt einen privaten Eingabe-Socket, deine Tastendrücke landen also in deinem Spiel und nirgends sonst.
  • Einen eigenen Ton. Jede Session bekommt ein eigenes PipeWire-Ziel, an das das Spiel gebunden ist. In unserem Test kam ein Ton aus einer Session nur bei diesem Client an. Der andere bekam null Audiopakete.
  • Ein eigenes Mikro. Voice-Chat geht in das virtuelle Mikro deiner Session, nicht in die ganze Kiste.

Die Session hängt an deinem Gerät, nicht an der Netzwerkverbindung. Fliegst du raus und kommst zurück, landest du in deinem Spiel, nicht in dem der anderen Person.

So schaltest du es ein

Es ist eine Einstellung. Geh in der Web-Konsole des Hosts auf Virtuelle Anzeigen → Dedizierte Spiel-Sitzungen und wähl Dediziert. Auf dem Host muss gamescope installiert sein. Ohne gamescope fällt Dediziert still auf Auto zurück.

Zwei Dinge solltest du noch prüfen:

  • PipeWire 1.6 oder neuer, wenn du das Mikro willst. Mit älterem PipeWire bleibt das Mikro pro Session stumm.
  • Nach Trennung aktiv halten. Bricht dein WLAN weg, wartet die Session standardmäßig 10 Sekunden und beendet dann das Spiel. Stell die Option auf Dauerhaft, wenn das Spiel auf dich warten soll.

Wo die Grenzen sind

Das hörst du lieber von uns als mitten im Spiel.

  • Immer nur ein Steam. Steam läuft nur einmal pro Linux-Benutzer, und beide Sessions teilen sich einen Benutzer. Es geht also ein Steam-Spiel plus ein Nicht-Steam-Spiel, nicht zwei Steam-Spiele. Jeder Session einen eigenen Home-Ordner zu geben, steht auf der Liste, ist aber noch nicht gebaut.
  • Controller sind noch nicht ganz privat. Jede Session bekommt eigene virtuelle Pads, aber ein Spiel, das auf jeden Controller der Kiste hört, sieht auch die der anderen Person. Private Pads pro Session kommen mit derselben Arbeit am Home-Ordner.
  • Eine GPU, geteilt. Zwei Spiele teilen sich die GPU und ihren Video-Encoder. Eine Mittelklasse-Karte schafft zwei leichtere Spiele gut. Zwei AAA-Spiele in 4K sind eine andere Geschichte. Consumer-Karten von NVIDIA begrenzen außerdem, wie viele Encoder-Sessions gleichzeitig laufen dürfen.
  • Nur vom Host gestartetes gamescope. Das klappt für Sessions, die der Host selbst startet. Den Game Mode von SteamOS oder einen KDE- oder GNOME-Desktop teilt es nicht auf.

Probier's am Wochenende

Du hast eine Linux-Kiste mit ordentlicher GPU und zwei Leute, die Verschiedenes spielen wollen? Installier gamescope, aktualisier PipeWire, stell die Einstellung auf Dediziert und gib einer Person das Steam-Spiel. Die andere nimmt etwas anderes aus der Bibliothek.

Alle Details zu dedizierten Sessions und zum Aktivhalten stehen in der Doku zu virtuellen Displays. Und wenn du wissen willst, warum punktfunk unter Linux überhaupt eigene virtuelle Displays betreibt, fang mit kopflosem Streaming ohne EDID-Tricks an.