Stadia – Game Streaming: Next Generation?

Stadia; der Name des zukünftigen Game Streaming Dienstes von Google. Im Grunde soll der Dienst so funktionieren, dass die Spiele auf den Servern von Google laufen und das entsprechende Bild auf den heimischen Bildschirm des Nutzers gestreamt wird. Die Eingaben des Nutzers werden wieder zu Google übertragen, verarbeitet und anschließend landet das neue Bild wieder beim Nutzer.

Neben Stadia existieren andere Dienste für das Game Streaming, welche teilweise bereits genutzt werden können. Zu diesen Diensten zählen unter anderem GeForce Now, Shadow und PlayStation Now. Auch Microsoft will in Zukunft einen Dienst namens xCloud für das Game Streaming anbieten.

Aus Sicht der Spieler wäre ein funktionierender Spielstreaming-Dienst natürlich eine interessante Sache. Immerhin müsste der Spieler sich nicht ständig neue Hardware für neue Spiele kaufen, sondern könnte die Spiele stets in voller Pracht genießen. Auch verspricht Stadia, dass das Spielen von überall möglich sein soll.

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://www.youtube.com/watch?v=Pwb6d2wK3Qw&feature=youtu.be

Die Frage ist natürlich, ob ein solcher Dienst funktionieren kann? Latenzen und Bandbreite können dem Spieler einen Strich durch die Rechnung machen. Bei entsprechenden Demonstrationen, wurde von den Testern davon gesprochen, dass die Latenz sich im Rahmen hielt, während das Bild und Audio noch aggressiv komprimiert wirkten. Google verspricht, dass eine Bandbreite von 10 MBit/s ausreicht und geht von einer optimalen Bandbreite von 40 MBit/s aus.

Google bietet zwei unterschiedliche Dienste an: Stadia Base und Stadia Pro. Stadia Base liefert Full-HD, 60 FPS und Stereo Sound. Bei Stadia Pro wird 4K-Auflösung und 5.1 Surround-Sound geboten. Daneben gibt es bei der Pro-Variante kostenlose und exklusive Spiele dazu. Stadia Pro soll 10 € pro Monat kosten; während Stadia Base kostenlos ist. Spiele müssen über den Dienst gekauft werden. Während Stadia Pro für die Vorbesteller der Founders- und Premiere-Edition ab Mitte bis Ende November bereitstehen wird, gibt es Stadia Base ab 2020 für alle Interessenten.

Vor einigen Tagen hat Google die Starttitel von Stadia bekannt gegeben. Diese sind Assassin’s Creed Odyssey, Destiny 2: The Collection, Gylt, Just Dance 2020, Kine, Mortal Kombat 11, Red Dead Redemption 2, Thumper, Tomb Raider: Definitive Edition, Rise of the Tomb Raider, Shadow of the Tomb Raider: Definitive Edition und Samurai Showdown.

Bei den Titeln handelt es sich nicht um die Windows-Versionen, sondern um speziell für Stadia portierte Titel. Stadia begreift sich hierbei als eigene Plattform. Unter der Haube wird wahrscheinlich eine spezielle Linux-Distribution genutzt. Für das nächste Jahr sind weitere Spiele angekündigt, unter anderem Cyberpunk 2077 und Final Fantasy XV.

Ohne Einladungscode ist die App im Moment sinnlos

Mittlerweile wurden Apps für iOS und Android veröffentlicht, welche allerdings ohne einen entsprechenden Einladungscode noch nutzlos sind.

‎Google Stadia
Preis: Kostenlos
Stadia
Preis: Kostenlos

Um die Latenz in den Griff zu bekommen, wendet Google einige Tricks an. So sendet der Controller seine Eingaben direkt über das WLAN an Google, so das hier keine weitere Zwischenstation benötigt wird. Wenn der Dienst hält, was er verspricht, wird er für viele Spieler sicherlich eine Alternative darstellen. Google geht von einer enormen Anzahl an Spielern aus. So sagte Google das sie weit über 200 Millionen Spieler anstreben, ansonsten wäre Stadia wohl kein Erfolg. Dank der über die Welt verteilten Rechenzentren, kann Stadia etwas näher am Spieler sein als andere Streaming-Dienste. Bezogen werden kann Stadia über die Seite des Google Shops. Für Entwickler steht die Webseite stadia.dev zur Verfügung.

Netflix-Verlauf anschauen und exportieren

Wer den Streaming-Dienst Netflix nutzt, mag sich eventuell fragen, ob er den Verlauf der angeschauten Serien und Filme einsehen kann. Um diesen Verlauf anzuschauen muss die offizielle Netflix-Webseite unter netflix.com aufgerufen werden und dort im Menü der Punkt Konto ausgewählt werden.

Über den Titelverlauf kann die Historie des Nutzers eingesehen werden

In den sich öffnenden Optionen findet sich unter anderem der Punkt Titelverlauf. Wird dieser Punkt ausgewählt, so kann der komplette Verlauf des Nutzers angeschaut werden. Der Verlauf kann nicht nur auf der Webseite angesehen, sondern auch als CSV-Datei exportiert und heruntergeladen werden.

Puffer für Streaming im VLC-Mediaplayer erhöhen

Ich nutzt den VLC-Mediaplayer unter anderem dazu Internetradio zu hören. Wenn man sich in Gebieten mit wackliger Internetverbindung befindet, kann dies allerdings unangenehm werden. So passierte es mir ab und an das der Stream für einige Sekunden unterbrochen wurde. Abhilfe schafft es hier die maximale Zeit, welche der Stream zwischengespeichert wird, zu erhöhen.

In den erweiterten Einstellungen findet sich die entsprechende Option

Die entsprechende Einstellung befindet sich in den erweiterten Einstellungen des VLC im Punkt Streamausgabe. Dort gibt es den Eintrag Zwischenspeichern des Muxer bei der Streamausgabe (ms). Wird dieser Wert angepasst, verlängert sie die initiale Ladezeit des Streams um den eingestellten Wert. Damit ist die entsprechende Länge des Streams vorgeladen und Unterbrechungen können besser aufgefangen werden. Damit der Wert wirksam wird, sollte VLC nach Bestätigung der Einstellung neugestartet werden.

Über den Dialog zum Öffnen eines Netzwerkstreams, können ebenfalls die Pufferzeiten angepasst werden

Alternativ kann die Pufferzeit auch über den Menüeintrag Netzwerkstream öffnen… eingestellt werden. In dem sich öffnenden Dialog findet sich in der erweiterten Ansicht ebenfalls ein Punkt mit dem Namen Zwischenspeicherung. Dieser Wert gilt allerdings nur für den aktuell zu öffnenden Stream, zeigt aber ansonsten das gleiche Verhalten wie die globale Einstellung.

Das Icecast-Protokoll

Bei Icecast handelt es sich um einen freien Streamingserver. Der Server nimmt ein Signal entgegen und streamt es über einen Mountpoint, mit welchem sich die Nutzer des Servers verbinden um den Stream zu hören. Leider ist das Icecast-Protokoll nicht wirklich gut dokumentiert. Stattdessen wird darauf verwiesen, das der Quellcode verfügbar ist. Mit diesem Artikel soll diesem Problem ein wenig Abhilfe geschaffen werden. Das Icecast-Protokoll ist streng genommen einfaches HTTP. Wenn ein Eingangssignal zu einem Icecast-Server gestreamt sendet die Streamingquelle einen HTTP-Request (am Beispiel von butt):

PUT /stream123 HTTP/1.1
Authorization: Basic c291cmNlOmhhY2ttZQ==
User-Agent: butt 0.1.14
Content-Type: audio/mpeg
ice-name: no name
ice-public: 0
ice-audio-info: ice-bitrate=128;ice-channels=2;ice-samplerate=44100

Bei Mixxx würde dieser Request so aussehen:

SOURCE /stream123 HTTP/1.0
Authorization: Basic c291cmNlOmhhY2ttZQ==
User-Agent: libshout/2.0.0
Content-Type: application/ogg
ice-name: 
ice-public: 0
ice-url: http://www.mixxx.org
ice-genre: Live Mix
ice-audio-info: bitrate=128
ice-description:

Den SOURCE-Request den Mixxx hier anwendet ist seit der Version 2.4 des Icecast-Server veraltet und sollte nicht mehr genutzt werden. Stattdessen soll der PUT-Request verwendet werden. Wie man hier sehen kann erfolgt die Authentifizierung über das Basic Authentication Scheme (auch als HTTP Basic Authentication bekannt). In dem Request sind eine Reihe von ice-* Parametern zu finden:

ice-audio-info
Der Parameter ice-audio-info übermittelt eine Schlüssel-Wert-Liste von Audioinformationen. Die Parameter werden dabei durch ein Semikolon getrennt, das ganze könnte z.B. so aussehen:

channels=2;samplerate=48000;

Die Parameter müssen dabei mit der URL-Kodierung kodiert werden.

ice-bitrate
Der Parameter ice-bitrate setzt die Bitrate des Streams.

ice-description
Ist die Beschreibung des Streams nicht mit dem Tag stream-description definiert, so kann die Beschreibung über den Parameter ice-description eingestellt werden.

ice-genre
Ist das Genre des Streams nicht mit dem Tag genre definiert, so kann dies über den Parameter ice-genre eingestellt werden.

ice-name
Ist der Streamname nicht mit dem Tag stream-name definiert, so kann dies über den Parameter ice-name eingestellt werden.

ice-public
In der Konfiguration gibt es das Attribut public, welches angibt ob der Stream in einem öffentlichen Verzeichnis auftauchen soll. Ist der Public-Tag für den Mountpoint nicht definiert, kann dies über den Parameter ice-public gesetzt werden.

ice-url
Ist die URL des Streams nicht mit dem Tag stream-url definiert, so kann dies über den Parameter ice-url eingestellt werden.

Daneben gibt es noch den Content-Type welcher die Art des Streams definiert. Auf diesen Request antwortet der Icecast-Server (wenn die Authentifizierung korrekt ist) mit einem:

HTTP/1.0 200 OK

Statt dem Statuscode 200 sind noch eine Reihe weiteres Codes als Antwort möglich:

401 You need to authenticate
Die Authentifizierungsdaten sind nicht korrekt.

403 Content-type not supported
Streamformat wird von Icecast nicht unterstützt.

403 No Content-type given
Der Quellclient sendete kein Content-Type mit, dies wird allerdings zwingend benötigt.

403 internal format allocation problem
Internes Problem von Icecast mit dem gewählten Formatplugin.

403 too many sources connected
Das in der Konfiguration definierte Limit an gleichzeitig verbundenen Clients wurde überschritten.

403 Mountpoint in use
Der gewählte Mountpoint ist bereits in Benutzung.

500 Internal Server Error
Ein interner Fehler im Icecastserver, auf Clientseite gibt es für diesen Fehler keine Lösung.

Eine Besonderheit ist der Statuscode 100 (Continue) welcher gesendet wird, wenn der Client einen Request mit folgendem Inhalt gesendet hat:

Request: 100-continue

Mit dem Statuscode bestätigt der Server das der Client weiter Daten senden kann. Danach beginnt der Quellclient mit dem häppchenweisen senden des Ogg Vorbis- oder MP3-Stream – das bedeutet das eine MP3 nicht am Stück gesendet wird, sondern in Häppchen welche das Fortschreiten des Streams widerspiegeln. Beim Empfangen eines Streams passiert effektiv das selbe. Der Client (z.B. VLC) sendet dem Server einen GET-Request:

GET /stream123 HTTP/1.1
Host: 10.63.48.119:8000
User-Agent: VLC/2.2.1 LibVLC/2.2.1
Range: bytes=0-
Connection: close
Icy-MetaData: 1

Darauf antwortet der Icecast-Server mit mit:

HTTP/1.0 200 OK
Server: Icecast 2.4.0
Date: Thu, 02 Jul 2015 10:13:50 GMT
Content-Type: audio/ogg
Cache-Control: no-cache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
ice-audio-info: samplerate=44%2e100;channels=1;quality=0
icy-pub:1

Anschließend sendet der Icecast-Server die Audiodaten an den Client, welche dieser wiedergibt.

1001 MS-DOS Spiele

Das Internet Archiv (archive.org) hat vor einigen Tagen knapp 2400 MS-DOS Spiele aus den 80er und 90er Jahren auf seinen Seiten zur Verfügung gestellt. Nach der Veröffentlichung von einigen hundert Arcadespielen, ist dies nun die zweite größere Veröffentlichung in diesem Bereich.

Commander Keen auf archive.org

Commander Keen auf archive.org

Die Spiele stehen dabei auf der entsprechenden Unterseite zur Verfügung. Sie stehen dabei als Stream zur Verfügung, was bedeutet das man die Spiele mittels des MESS-Emulators im Browser spielen kann. Das Internet Archive verfügt über eine Ausnahmegenehmigung vom DMCA, welche es dem Archiv erlaubt, die Spiele zum Zwecke der Langzeitarchivierung zu erhalten und der Öffentlichkeit bereitzustellen.