2004 RuneScape: Ein Multiplayer-Rollenspiel im 56k-Dial-up
2004 RuneScape fit a multiplayer RPG into 56k dial-up

2004 spielte der Autor RuneScape über ein 56k-Modem – und fragte sich, wie ein 3D-Spiel mit tausenden Spielern pro Server in nur 5 KB/s funktionieren konnte. Dieser technische Rückblick analysiert den Netzwerk-Code des dekompilierten Clients von 2004 und zeigt, wie Jagex mit Bit-Packing, Delta-Komprimierung und einem 600ms-Serverzyklus jedes Byte sparte. Vom Klick auf eine Kachel bis zur Anzeige bei anderen Spielern wird jeder Schritt nachvollzogen – ein Paradebeispiel für effiziente Netzwerkprogrammierung.
Die Antwort ist eine anhaltende, fast obsessive Übung darin, keine Bytes zu verschwenden.
- akersten
Ich wünschte, der Autor wäre näher auf die Anti-Cheat-Thematik eingegangen und wie sie sich im Laufe der Zeit entwickelt hat. Jagex hat schon um 2005 Bots anhand von Mausbewegungs-Heuristiken gebannt. 20 Jahre später gibt es hier auf der Startseite irgendein JS-Framework, das dieselbe Art von Analyse als revolutionären neuen Ansatz anpreist. Ich kann mir nur vorstellen, was die moderne Anti-Cheat-Engine beinhaltet, besonders in der Ära von LLMs, die einen menschlichen Spieler zuverlässig nachahmen können. (Einige von ihnen können sogar ziemlich technische Blogposts schreiben, die fast der Erkennung entgehen ;)
- saejox
Ultima Online erschien 1997 und benötigte nur ein 28k-Modem. Ich würde auch argumentieren, dass es ein komplexeres Spiel war.
- dofm
Oh Mann. Der Gamer-Kult um RuneScape war 2004 so hardcore und evangelisch, dass es damals den Spitznamen "Run! Escape!" bekam. Ich bin nie in den Kult eingestiegen und bin froh, dass ich es nicht getan habe. Der Dofus-Kult in den folgenden Jahren war klein und urkomisch, und glücklicherweise machte die Ökonomie dieses Spiels es ab einem bestimmten Level etwas weniger spaßig, wie in der realen Welt, sodass man aussteigen konnte, bevor man den Verstand verlor.
- stux
> Bevor irgendeine Netzwerkkommunikation stattfindet, führt der Client eine Breitensuche mit der lokalen Kollisionskarte durch, um einen Pfad von deinem Standort zu dem Punkt zu bauen, auf den du geklickt hast, und schreibt dann das Paket für den Server. [...] Das Paket enthält die absolute Position des ersten Wegpunkts im Pfad, gefolgt von den Deltas jedes Wegpunkts relativ zum ersten.
Warum sendet der Client Wegpunkte und nicht einfach das Ziel? Naiv betrachtet scheint es besser, weniger Daten zu senden. Ist die Pfadfindung so teuer, dass man sie auf dem Server vermeiden möchte? Ich nehme an, es funktioniert, solange es günstig ist, den Pfad des Clients zu validieren/zu korrigieren?
- NDlurker
Phantasy Star Online auf dem Sega Dreamcast funktionierte hervorragend mit Einwahl.