Gemeinsam Retro-Gamen im Lockdown

Gemeinsam spielen mit dem Commodore 64, auch über räumliche Distanz hinweg: Dafür gibt es mehrere Ansätze, die wir hier vorstellen.

von Wilfried Elmenreich

Spiele in der Gemeinschaft spielen war schon immer toll, sowohl bei frühen Treffs von Commodore-Fans in den 80ern als auch bei aktuellen Events. Neben den Spielen, die man allein spielte und bei denen einem andere über die Schulter blickten, während man vorzeigte, wie man die Feuerbrücke bei „Ghost’n’Goblins“ überwindet – das war so eine frühe Form von lokalem Twitch-Streaming — waren vor allem Spiele interessant, die man gemeinsam spielen konnte. Sei es um sich gegenseitig abzuknallen wie beim brandneuen „Showdown“ oder um gemeinsam ein Ziel zu erreichen so wie bei „Wizball“ oder „Wizard of Wor“. Dazu erlauben Mehrspielerspiele wie „Winter/Summer/World/California…Games“ die abwechselnde Teilnahme von bis zu acht Spielern.

Mit der Corona-Krise und den damit verbundenen Kontaktbeschränkungen ist das Spielen vor dem gleichen Bildschirm leider erst mal auf Eis, es sei denn man hat das Glück mit den anderen Spielern und Spielerinnen im gleichen Haushalt zu leben. Für alle anderen gilt, dass man sich etwas überlegen muss wie man das remote hinkriegt.

Das Modell, bei dem jemand vorspielt und die anderen zuschauen lässt ist relativ einfach umzusetzen, indem man sich vor der Originalhardware oder zwecks Videoqualität noch besser vom Emulator abfilmen lässt und das Ergebnis streamt. Solche Channels, sowohl mit modernen als auch mit C64 Games gibt es schon länger auf Plattformen wie Twitch TV oder Youtube Gaming. Insbesondere Twitch TV hat nun auch in der C64 Scene eine gewisse Beliebtheit zur Organisation von Online-Treffen erreicht.

Um aber gemeinsam zu spielen bedarf es weiterer technischer Lösungen. Im Prinzip gibt es zwei Ansätze:

Das Spiel läuft auf einem Host-System, von dem aus Grafik und Sound gestreamt werden, dazu werden Aktionen an Eingabegeräten der Mitspieler über das Internet an das Host-System gesendet. Das Host-System könnte durchaus ein realer C64 sein, aber die Hardware zum Abgreifen von Grafik und Sound muss weit leistungsfähiger sein, schließlich muss ein Stream mit 50 Bildern pro Sekunde mit einer Auflösung von 320×200 Pixel (ggf. noch etwas mehr, wenn die Randpixel mitübertragen werden sollen) aufgenommen, komprimiert und mit geringer Zeitverzögerung über das Netz verschickt werden. Bei den Mitspielern muss dann der Stream dekodiert und angezeigt werden, das geht nicht mehr auf Originalhardware. Auch auf der Hostseite tut man sich mit einer Emulatorlösung etwas leichter, da der Bild- und Audiostream leichter aufgenommen werden kann. Eine gut umsetzbare Lösung für diesen Ansatz ist die Software Parsec (https://parsecgaming.com/), welche allgemein zum gemeinsamen Remote-Spielen von lokal laufenden Spielen gedacht ist. Die Voraussetzung ist, dass sich alle Mitspieler einen Gratis-Account bei Parsec anlegen und sich die Software herunterladen oder es im Browser laufen lassen. Hat man dazu noch einen Joystick mit USB-Anschluss, kann dieser als „Gamepad“ an den Hostcomputer durchgeschliffen werden, wo wiederum der VICE-Emulator die Controlleraktionen als Joystickbewegungen an das Spiel weitergibt. In einer Parsec-Session sind insgesamt bis zu 4 Spieler möglich. In einem Test hat der Ansatz mit Parsec und USB-Speedlink Joysticks erstaunlich gut funktioniert, allerdings hat der Spieler am Host etwas kürzere Reaktionszeiten als der remote zugeschaltete Spieler. Dies kann am besten durch Auswahl eines geeigneten Spiels kompensiert werden, immerhin steht einem bei diesem Ansatz ja die gesamte C64-Spielebibliothek offen.

Abbildung 1: Parsec präsentiert sich zwar im Pixel-Retro-Look, bietet aber State-of-the-Art Frame-Grabbing und Video Encoding

Ein Ansatz bei dem weniger Daten übertragen werden müssen ist das Spiel verteilt auf mehreren Hosts auszuführen, welche sich gegenseitig nur Nachrichten zu den Änderungen im Gamestate schicken. Laufen zum Beispiel zwei Spieler durch eine wunderschön gezeichnete gescrollte Spielwelt, so würde es ausreichen den anderen Computern jeweils nur die Koordinaten des eigenen Spielers mitzuteilen um sich gegenseitig zu „sehen“. Jeder Computer zeichnet dann die anderen Spieler an der entsprechenden Stelle ein. Natürlich kommen, wenn es Spielerkationen geben soll wie zum Beispiel das Attackieren eines Monsters oder eines anderen Spielers, noch weitere Daten hinzu. Dann müssen weitere Koordinaten und Hitpoints übertragen werden. Insgesamt kann die Datenflut aber zumeist soweit im Zaum gehalten werden, dass so ein Ansatz sogar auf Originalhardware möglich wäre, sofern ein Modul zur Onlinekommunikation vorhanden ist. Allerdings müssen die Spiele speziell für diesen Anwendungsfall entworfen werden. Ein Beispiel, das in diese Richtung geht ist Commodoreserver mit seinem CommodoreServer Internet Protocol (CSIP), wobei hier aber auf einen zentralen Server für die Spielkoordination zurückgegriffen wird. Die Spielauswahl ist aber im Vergleich zur C64-Bibliothek sehr klein, auf dem Server finden sich zum Beispiel nur eine Pferderennensimulation und „Head-On“, ein Spiel mit Snake-Mechanik.

Abbildung 2: Head-On, ein C64-Online-Spiel mit Snake-Mechanik

Einen interessanten Misch-Ansatz versucht der VICE-Emulator mit seiner Netplay-Funktion. Hierbei wird das gleiche Spiel gleichzeitig auf zwei Hosts gestartet und bis zu zwei Joystickeingaben oder eine Tastatureingabe können beliebig zwischen den beiden Rechnern verteilt werden. Der Ansatz beruht darauf, dass der VICE-Emulator prinzipiell zyklengenau und deterministisch arbeitet und dass somit dieselbe Eingabe das gleiche Ergebnis erzielt. Verbindet man zum Beispiel zwei Rechner, teilt die Joysticks zwischen beiden auf und startet das Spiel „Save New York“ im Zweispielermodus, so bewirkt eine Joystickbewegung nach oben, dass sich das gleiche Flugzeug auf beiden Systemen bewegt. Somit spielt jeder Spieler lokal in seiner Kopie, die sich aber durch die hereingemappten Eingaben der Kopie des anderen Hosts gleicht. Ist die Internetverbindung gut und ohne nennenswertes Delay, so funktioniert das in der Praxis recht gut, aber bei langsameren Internetverbindungen waren durch die Verzögerung Aktionen nicht immer perfekt synchron. Während das Flugzeug im Spiel „Save New York“ am lokalen Host eine Aktion vielleicht gerade noch überlebt, kann es sein, dass das gleiche Flugzeug im anderen Host crasht, spätestens dann sind beide Spielinstanzen so weit auseinander, dass ein sinnvolles Weiterspielen nicht mehr möglich ist. Wir haben die Netplay-Funktion mit dem etwas älteren VICE 3.2 getestet, da uns in der neueren Version keine Verbindung gelang.

Abbildung 3: Zwei mittels VICE Netplay perfekt synchroniserte Instanzen des Spiels Save New York

Als Fazit empfehlen wird bei Onlineparties einfach mal Parsec auszuprobieren, da die Handhabung einfach ist und die Spielauswahl am größten ist. Technisch am interessantesten ist sicherlich das Netzwerkkonzept, vor allem wenn neue Spiele dafür entwickelt werden. Netplay ist eher für lokale Netzwerke interessant, da es ein kleines Delay erfordert.

AnsatzBeispielVorteileNachteile
Stream von einem Host übertragen, Controlleraktionen retourC64-Emulator mit Parsec beim Host
Parsec mit Controller/USB-Joystick bei Clients
alle Spiele nutzbar
bis zu vier SpielerInnen
Höhere Verzögerung bei Remote Clients
Ansatz nicht mit Originalhardware umsetzbar
Verteiltes Spiel, Updates von ZustandsdatenänderungenC64 (real oder Emulator) mit RS232-Modem Verbindung zu CommodoreServerMit Originalhardware umsetzbar
braucht nur geringe Bandbreite
Spiele müssen speziell für diesen Fall geschrieben sein
derzeit nur wenig Angebot
Synchronisation der Eingabedaten zu parallel laufenden InstanzenVICE Netplayalle Spiele nutzbar
braucht nur geringe Bandbreite
Möglicher Synchronitätsverlust durch Nachrichtenverzögerung

Der Autor: Wilfried Elmenreich bekam seinen ersten Computer, einen Commodore 128, zu Weihnachten 1985. Von da an beschäftigte er sich intensiv mit den Möglichkeiten zur Programmierung des Computers und war insbesondere vom Schreiben von Computerspielen fasziniert. Das Interesse an Elektronik und Informatik prägte seine Wahl bei der Ausbildung und im Berufsleben. Er besuchte eine HTL für Elektrotechnik und absolvierte anschließend ein Studium der Informatik. Danach arbeitete er an der Technischen Universität Wien im Rahmen seines Doktoratsstudiums und schloss als Postdoc seine Habilitation in Technischer Informatik ab. Heute arbeitet er als Universitätsprofessor für intelligente Energiesysteme an der Universität Klagenfurt und unterrichtet in den Studien zu Informations- und Kommunikationssystemen sowie in einem Masterstudium zu Game Studies and Engineering. Dazu beschäftigt er sich hobbymäßig weiterhin mit Aspekten des Retro-Computings und kann dieses Wissen auch bei beruflichen Themen wie Game Design, Embedded Computing und bei der Motivation einer neuen Generation von Technikstudierenden einfließen lassen.