Was steckt hinter Stadia?

Der Spielestreaming-Dienst Stadia versteht sich als neue Plattform. Wer für diese Plattform entwickeln möchte, kann sich unter stadia.dev dafür bewerben. Auf der Seite erhält der Leser daneben weitere Informationen über die Plattform.

stadia.dev

Auf der Hardwareseite wird aktuell eine 2,7-GHz-Hyperthread-x86-CPU mit AVX2 SIMD und 9,5 MB L2- und L3-Cache, eine AMD-GPU mit HBM2-Speicher und 56 Recheneinheiten mit einer Leistung von 10,7 Teraflops, 16 GB RAM mit einer Bandbreite von bis zu 484 Gbit/s und SSD-Speicher in der Cloud genutzt.

Auf Softwareseite wird Linux genutzt. Google nutzt hierbei die Linux-Distribution Debian als Grundlage. Als Grafikschnittstelle müssen die Spiele Vulkan benutzen. Dazu wird eine API bzw. ein SDK mitgeliefert, welches Funktionalitäten für die Verwaltung von Spielständen, die Nutzung der Multiplayer-Modi und der Funktionen für die Unterstützung der Unterbrechung und Fortsetzung des Spieles liefert.

Zurzeit unterstützen das Entwicklerwerkzeug Unity und die Unreal Engine den Spielestreaming-Dienst. Daneben existieren weitere Werkzeuge von Google, welche bei der Entwicklung von Spielen für Stadia helfen.

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.

WordPress-Themes und die GPL

Das Content Management System WordPress ist unter der GPL lizenziert und damit stellt sich die Frage, ob Themes unter WordPress ebenfalls unter der GPL lizenziert sind? Die kurze Antwort: Themes müssen unter der GPL lizenziert werden. Im Detail können bei der Frage allerdings Abstufungen vorgenommen werden. Die GPL definiert eine Reihe von Freiheiten:

Die Freiheit, das Programm auszuführen wie man möchte, für jeden Zweck (Freiheit 0).

Die Freiheit, die Funktionsweise des Programms zu untersuchen und eigenen Datenverarbeitungbedürfnissen anzupassen (Freiheit 1). Der Zugang zum Quellcode ist dafür Voraussetzung.

Die Freiheit, das Programm zu redistribuieren und damit Mitmenschen zu helfen (Freiheit 2).

Die Freiheit, das Programm zu verbessern und diese Verbesserungen der Öffentlichkeit freizugeben, damit die gesamte Gesellschaft davon profitiert (Freiheit 3). Der Zugang zum Quellcode ist dafür Voraussetzung.

Da die PHP-Dateien eines Themes die unter der GPL lizenzierten Schnittstellen von WordPress nutzen, muss das Theme ebenfalls unter der GPL lizenziert werden. Das Theme läuft niemals für sich alleine, sondern benötigt zwingend die entsprechenden WordPress-Schnittstellen. Sobald ein Theme distribuiert wird, muss es unter der GPL lizenziert werden.

Mit Themes lässt sich das Aussehen der Webseite anpassen

Mark Jaquith, einer der Entwickler von WordPress drückte das Ganze wie folgt aus:

Theme code necessarily derives from WordPress and thus must be licensed under the GPL if it is distributed.

Der Einwand, welcher ab und an vorgebracht wird, das mit einem GPL-Theme kein Geld verdient ist dabei haltlos. Die GPL verbietet es nicht mit GPL-Software Geld zu verdienen. So kann ein Ersteller eines Themes die Themes verkaufen. Natürlich könnte nun ein Käufer das Theme anderweitig bereitstellen, allerdings kann der Nutzer bei vielen Erstellern Updates der Themes und Support dazu kaufen. Dies stellt einen Mehrwert gegenüber eine Theme da, welches eventuell schon veraltet ist.

Theoretisch können WordPress-Themes unter unterschiedlichen Lizenzen angeboten werden. Dies war beim Theme Thesis der Fall. Hier sind sämtliche PHP-Dateien unter der GPL lizenziert, während CSS- und JavaScript-Dateien proprietär sind. Interessant wird es bei Lizenzbedingungen, des Theme-Erstellers, welche gegen die GPL verstoßen. Technisch betrachtet dürften solche Themen nicht mit WordPress genutzt werden.

WordPress ist nicht das einzige System, bei welchem sie die Rechtslage so darstellt, so erklärt die FAQ des Content Management Systems Drupal:

Drupal modules and themes are a derivative work of Drupal. If you distribute them, you must do so under the terms of the GPL version 2 or later. You are not required to distribute them at all, however. (See question 8 below.)

Wie sieht, es in dem Fall aus das ein Theme erstellt wurde und dieses Theme auf der eigenen Webseite genutzt wird? Muss dieses Theme nun unter GPL bereitgestellt werden? Die Antwort darauf ist nein. Der Grund hierfür ist das, wenn ich ein unter GPL lizenziertes Produkt ausliefere, ich den Quelltext dazu veröffentlichen muss. Allerdings liefert WordPress keine Themes, sondern Webseiten aus. Deshalb muss der Quelltext des Themes nicht bereitgestellt werden. Wäre dies der Fall wären z.B. alle Dokumente welche mit LibreOffice erstellt werden auch unter der GPL lizenziert werden. Dazu noch einmal Mark Jaquith:

No. The GPL is triggered by distribution. Work-for-hire for a client is not distribution. In this case, they would have the copyright on the code. Distributing it would be up to them. As long as they didn’t distribute it, the GPL wouldn’t kick in. Your clients needn’t worry.

Services unter systemd einrichten

Das Init-System systemd ist mittlerweile in vielen Linux-Distributionen angekommen. Auch unter Ubuntu ist es seit Version 15.04 integriert. Ein Vorteil des neuen Systems ist, das Services, im Gegensatz zum alten Init-System, relativ unkompliziert erstellt werden können. Dazu muss eine sogenannte Unit erstellt werden. Bei einer Unit handelt es sich um eine Textdatei mit einer entsprechenden Konfiguration. Neben den Units für die Konfiguration eines Services existieren weitere Unit-Typen wie z.B. die Typen mit der Endung .path oder .network. In diesem Artikel soll es allerdings nur um die Units vom Typ Service gehen.

Die Units liegen in unterschiedlichen Orten im Dateisystem. Die vom System vorinstallierten Units sind im Ordner /lib/systemd/system/ zu finden. Eigene Services werden im Ordner /etc/systemd/system/ hinterlegt. Hier können allerdings nur Nutzer mit administrativen Rechten entsprechende Service hinterlegen. Soll ein nicht privilegierter Nutzer eine Unit angelegen, so muss er diese im Verzeichnis ~/.config/systemd/user/ hinterlegen. In den meisten Fällen werden Units für Services im Dateisystem unter dem Pfad /etc/systemd/system/ angelegt. In diesem Ordner soll nun eine Datei für die Unit angelegt werden:

nano languagetool.service

Beispielhaft könnte eine solche Unit wie folgt aussehen:

[Unit]
Description=LanguageTool
After=syslog.target
After=network.target

[Service]
Type=simple
User=languagetool
Group=languagetool
WorkingDirectory=/home/languagetool/server
ExecStart=/usr/bin/java -cp /home/languagetool/server/languagetool-server.jar org.languagetool.server.HTTPServer --config languagetool.cfg --port 3001 --allow-origin "*"
Restart=always
Environment=USER=git HOME=/home/languagetool

[Install]
WantedBy=multi-user.target

Die Unit unterteilt sich in unterschiedliche Bereiche, in diesem Beispiel sind dies Unit, Service und Install. Der Bereich Service ist hierbei nur in Units vom Typ Service zu finden. Im Bereich Unit sind eine kurze Beschreibung des Services und die Abhängigkeiten der Unit hinterlegt. Dabei wird definiert, welche Systeme bereits gestartet sein müssen, bevor der Service gestartet wird. Ein Target entspricht dabei einer Gruppe von Diensten, meist mit einer bestimmten Bedeutung, wie z.B. das Target für die Herstellung der Netzwerkkonnektivität (network-online.target).

In der Service-Gruppe wird der Typ des Services und der Nutzer und die Gruppe definiert, mit welchem bzw. welcher er starten soll. Daneben wird das Arbeitsverzeichnis und die Kommandozeile zur Ausführung des Services definiert. Weiterhin kann das Verhalten des Service, über den Parameter Restart, weiter definiert werden. So kann angegeben werden, dass der Service nach seiner Beendigung wieder neugestartet wird.

In der Install-Sektion wird angeben, wann der Service gestartet werden soll. Das multi-user.target entspricht dem klassischen Start eines normalen Linux-Systems. Ist die Unit definiert, kann sie aktiviert und der Service gestartet werden:

systemctl enable languagetool
systemctl start languagetool

Die Option enable sorgt dafür das die entsprechende Unit aktiviert wird. Dies führt dazu das sie je nach Konfiguration z.B. automatisch beim Systemstart oder bei dem Anschluss bestimmter Hardware gestartet wird. Unter bestimmten Systemen wie Ubuntu, kann der Service auch über das service-Kommando gestartet werden:

service languagetool start

Neben den Optionen enable und start für systemctl, existieren weitere Optionen zur Steuerung der Units. Dies sind unter anderem stop, zum Stoppen des Services und disable zur Deaktivierung der Unit. Mit der Option status, kann der Status eines Service erfragt werden:

systemctl status languagetool

Anschließend erhält der Nutzer den aktuellen Status des Service. Eine weitere wichtige Option ist restart um einen Service manuell neuzustarten. Mithilfe der systemd-Units lassen sich somit schnell Services in ein Linux-System einbinden.

Digital Signage für den Raspberry Pi

Der Begriff Digital Signage beschreibt im Groben nichts anders als die Nutzung digitaler Schilder, was z.B. Bildschirme sein können. Möchte man einen solchen Bildschirm bespielen, kann man sich mit dem Raspberry Pi eine entsprechende Lösung zusammenbauen. Daneben gibt es eine spezialisierte Distribution für den Raspberry Pi. Diese hört auf den Namen Raspberry Digital Signage und stellt nach dem Booten einen Webbrowser im Vollbild dar. Als Browser wird Chromium genutzt. Daneben stellt die Distribution sicher, das man den Webbrowser nicht beenden oder anderweitig manipulieren kann.

binaryemotions.com

Zur Wartung und Nutzung der Distribution existiert ein Webinterface, in welchem die entsprechenden Einstellungen vorgenommen werden können. Heruntergeladen werden kann die Distribution von der Seite des Herstellers.