Concurrent Game Play mit AWS am Beispiel des Videospiels “New World”
Amazon Games veröffentlichte 2021 mit dem Videospiel New World ein Massive Multiplayer Online Role Playing Game (MMORPG), das Amazon Web Services (AWS) für sämtliche serverseitigen Dienste nutzt. Trotz eher mittelmäßiger Rezensionen des Spiels mit durchschnittlich 3,2 von 5 Sternen auf der hauseigenen Amazon Webpage wollen wir in diesem Blogeintrag einmal unter die Haube des Spiels schauen und sehen, wie das Spiel in seiner Architektur funktioniert um Concurrent Gameplay zu ermöglichen und welche Probleme während des Releases und der Laufzeit auftraten.
New World statt Old World
New World ist ein 2021 erschienenes MMORPG aus den Amazon Game Studios, entwickelt von deren Abteilung Amazon Games Orange County. Es spielt im 17. Jahrhundert der fiktionalen Welt Aeternum und behandelt die Kolonisierung des Landes durch die Spieler.
Wie für Amazon oftmals üblich, wird die Technik, die hinter dem Spiel steckt, als bahnbrechend bezeichnet. Es werden Vergleiche gezogen, in denen New World durch die Nutzung der AWS – im Vergleich zur “Old World” der traditionellen MMOs – selbstverständlich um Welten besser abschneidet. Was also steckt hinter den genutzten Services? Was macht das Spiel aus Sicht von Amazon zu einem Gamechanger? Oder handelt es sich hier eigentlich einfach nur um eine große Werbekampagne, um die Nutzung von AWS in der Spielentwicklung zu festigen?
Schauen wir uns dazu erst einmal die zugrundeliegende Serverarchitektur an.
Server Architektur
In New World sammeln Spieler Erfahrungen und Items. Sie treffen dabei mit vielen anderen Spielern und KI-Einheiten zusammen. Im Gegensatz zu Session-Based Games verlieren Spieler die Errungenschaften ihrer Sitzung nach einem Logout nicht. Sämtliche Gegenstände, die gesammelt wurden, getroffene Mitspieler und Fähigkeiten, werden als Wachstum des Spielcharakters abgespeichert und sind beim nächsten Login wieder verfügbar. Amazon Games erklärt diese Mechanik dafür verantwortlich, dass die Immersion für den Spieler steigt, auch wenn diese Mechanik beinahe schon eine Voraussetzung für MMOs multimillionen Dollar schwerer Unternehmen sein sollte. [1]
Abb. 1: Architektur hinter New World. Eigene Darstellung in Anlehnung an [1]
Während der Entwicklung der fiktiven Welt wurde Wert darauf gelegt, auf keine Ladebildschirme beim Wechsel zwischen Spiel-Arealen auf der Karte zurückgreifen zu müssen. Zu den weiteren Anforderungen gehört ebenso das Handling von unzähligen Spielern, die gleichzeitig auf das Spiel zugreifen wollen. Das führte letztendlich zur Verwendung eines massiven verteilten Systems. [1]
Zuallererst legten die Entwickler fest, die Anzahl der Spieler in der Welt Aeternum auf 2500 zu begrenzen und Spieler auf mehrere Welten zu verteilen. Zusätzlich befinden sich darin circa 7000 KI-Einheiten und mehrere 100.000 interagierbare Objekte. [1,2]
Abb. 2: Server Architektur einer Welt in New World. Eigene Darstellung in Anlehnung [2]
Werfen wir einen Blick in eine dieser Welten.
Möchte sich ein Client in einer Welt einloggen, stehen ihm dafür vier Remote Entry Points (REPs) zur Verfügung. Diese sind der einzige öffentliche Zugangspunkt für das gesamte Spiel und handhaben die Sicherheit und Belastbarkeit des Systems. Die REPs sind auf Amazon Elastic Compute Clouds, näher EC2 C5.9xlarge Instanzen, basiert. [1,3]
Abb. 3: Hubs und deren zugehörige Regionen. Eigene Darstellung in Anlehnung an [1]
Hinter diesen REPs befinden sich sieben Hubs, bestehend aus computational processing units, die ebenso auf Amazon EC2 C5.9xlarge Instanzen umgesetzt sind. Jeder dieser Hubs ist für die Berechnung eines Teils der Spielwelt verantwortlich. Dazu wird die Welt Aeternum mithilfe eines übergelegten Grids in 14 Regionen eingeteilt. Ein Hub ist hier nun für zwei nicht aneinandergrenzende Kacheln zuständig. Verlässt der Spieler die Region eines Hubs, wird er dem jeweils zuständigen Hub der neuen Region übergeben. So wird sichergestellt, dass die Last gleichmäßig über die Instanzen verteilt wird. [1]
Zusätzlich zu den Hubs existiert ein Instance Pool bestehend aus EC2 Instanzen. Dieser ist für den session-based Modus des Spiels zuständig, in New World sind das temporäre Abenteuer, die beispielsweise in einem Dungeon stattfinden. Entschließt sich ein Spieler, eine dieser Missionen zu beginnen, wird diese Session auf einer verfügbaren EC2 Instanz dieses Pools betrieben. Ist die Mission abgeschlossen, kehrt diese Instanz wieder in den Instance Pool zurück und ist für eine nächste Session bereit. [1,2]
Die Instanzen des HUBs sind im Grunde stateless. Dadurch wird gewährleistet, dass die einzelnen Instanzen bei Problemen neu gestartet und die Game-States wiederhergestellt werden können, selbst wenn alle HUB-Instanzen zeitgleich ausfallen. Hierfür ist es aber natürlich notwendig, die Game-States regelmäßig zu sichern. Bei New World wird hierzu Amazons DynamoDB verwendet, eine NoSQL-Datenbank, die flexibel und im Idealfall ohne Codeänderungen skaliert werden kann. Das Spiel kommt so auf 800.000 Schreibvorgänge der Gamestates alle 30 Sekunden. [1,4,13]
Um ein solches verteiltes System zu verwalten, ist es wichtig, einen guten Einblick über die unterschiedlichen Komponenten zu besitzen – eine gute Observability. Hierfür ist es wichtig, Events zu loggen und auszuwerten, um sich andeutende Störungen im laufenden Betrieb frühzeitig zu erkennen. In New World wird hierzu Amazon Kinesis verwendet. Mithilfe von Kinesis Data Streams, einem serverless streaming data service, werden große Streaming-Datenmengen in Echtzeit und hoher Geschwindigkeit erfasst und analysiert. Mithilfe von Kinesis Data Firehose werden die Daten schließlich an Amazon Simple Storage Service (S3) gesendet, einem Objektspeicherservice. [1,2]
Pro Minute verlassen so 23 Millionen Events Kinesis in Richtung S3. Die Daten in S3 können anschließend durch Analyse-Services wie Amazon Athena und OpenSearch ausgewertet werden. Die ausgewerteten Daten können die Entwickler des Spiels anschließend nutzen, um beispielsweise herauszufinden, welche KI-Einheit am häufigsten bekämpft wurde oder auf welchem Pfad die meisten Spieler unterwegs waren. Auf dieser Basis können die Gamedesigner Aspekte des Spiels verändern und damit die Spielerfahrung in Echtzeit verändern und verbessern, angepasst an die gesammelten Daten. Ebenso kann auch ein Fehlverhalten der Server frühzeitig entdeckt und behoben werden. [1,2]
Für die operative Seite, die der Seite des Core-Gameplay gegenüber steht, wird Amazon API Gateway verwendet. Es ist dafür zuständig, die externen Applikationen zu managen und kümmert sich darum, dass die Spieleentwickler Programmierschnittstellen erstellen, veröffentlichen, warten, überwachen und sichern können. Über dieses Gateway werden 200 Millionen Calls pro Minute verarbeitet. Dahinter werden globale Services und lokale / Cluster Services gehandhabt. Für diese Services wird Amazon Lambda verwendet, eine eventgesteuerte, serverlose Computing Platform. Für die globalen Services betreibt Lambda Microservices für Achievements, Channels und eindeutige globale Usernames, während für die lokalen Services Queues, Contracts, Sessions und Notifications, etc. gehandhabt werden. Dabei läuft jede Lambda Funktion in einer isolierten Umgebung mit eigenen Ressourcen und Filesystem. [1,2,5]
Abb. 4: Serverless Microservices. Eigene Darstellung in Anlehnung an [2]
Durch diese gesamte Architektur besitzt New World eine gute Scalability und kann schnell auf unerwartet hohe Nachfragen von Seiten der Spieler reagieren. Beim Release des Spiels wurden beispielsweise 185 verschiedene Welten zur Verfügung gestellt, also eine Bereitstellung für nahezu 500.000 Spieler. Innerhalb der ersten zehn Tage wuchs die Anzahl der Welten bereits auf 500 an. Das sind genügend für 1,25 Millionen Spieler. Für das Scaling setzt Amazon Games auf Scaling Out. [1,2]
Gespannt auf den Release?
Abb. 5: Wait, it’s only a queue? [15]
Soviel zur Theorie, aber wie sieht es denn jetzt in der Praxis aus? Verlief der Release, wie wir jetzt erwarten könnten, ohne Probleme? Leider nein.
Trotz der beschriebenen Möglichkeit, eine einfache Skalierbarkeit durch die Serverarchitektur zu besitzen, gab es zum weltweiten Release von New World am 28. September 2021 – ebenso wie auch bei anderen MMOs – große Probleme, um als Spieler auf den Server zu gelangen. In Warteschlangen sammelten sich meist zwischen 5.000 und 10.000 Spieler pro Welt, die bereits ihr Maximum an Spielern erreicht haben. Von einer schnellen Skalierbarkeit war nichts zu sehen. Um mehr Spieler pro Welt zuzulassen, wurden regional Tests gestartet, den initialen Wert von 2.000 auf bis zu 2.500 zu erhöhen. Hier wurde beobachtet, wie sehr sich die 2.500 Spieler über die gesamte Welt verteilen und ob sich nicht zu viele Spieler zeitgleich in der Region nur eines EC2 tummeln. Letzten Endes konnte die Spielerzahl nach positiv ausgefallenem Test erhöht werden. [6]
Why did the New World player cross the road? To get to the other queue!
Wieso also konnte – oder wollte – Amazon Games die Server trotz angepriesener Möglichkeit nicht skalieren? Das Problem liegt hier nicht unbedingt auf der Seite der Architektur. Beginnen wir beim Start eines neuen Spiels: der Spieler wählt eine Welt aus, auf der er spielen möchte. Auf dieser Welt wird nun der Spielcharakter erstellt. Ein Wechsel zu einer anderen Welt ist nicht möglich, es sei denn der Spieler erstellt einen neuen Charakter und startet von vorn. Ist eine Welt also voll besetzt, kann ein Spieler nicht einfach in eine andere Welt eintreten, deren Maximum noch nicht erreicht ist. Wie es beim Release von MMORPGs meist der Fall ist, gibt es vor allem in den ersten Wochen einen großen Andrang an Spielern, der sich jedoch meist wieder stark verkleinert.
Abb. 6: New World Right Now [16]
Hätte Amazon also zum Start des Games direkt deutlich größer skaliert, um eine Wartezeit für Spieler zu vermeiden, wären die Welten in den ersten Wochen zwar gefüllt gewesen und alle Spieler glücklich, danach jedoch nur zum Bruchteil voll. Dies hätte dazu geführt, dass das Gameplay durch zu leere Gegenden leidet und viele Welten zusammengeführt hätten werden müssen, was wiederum für Downtimes der betroffenen Server gesorgt hätte. Für die Durchführung eines Merges sind einige Dinge zu beachten. New World Developer Kay sagte hierzu, es werde erst einmal sichergestellt, dass die neue Spitzenpopulation über 1.000 beträgt. Außerdem solle eine gleichmäßige Repräsentation der Fraktionen sichergestellt werden. Der komplexeste Punkt läge jedoch in der Sorge um eine Instabilität der Persistenz beim Merging von Häusern der Spielcharaktere. Diese könnte dafür sorgen, dass die Häuser der Spieler verloren gehen würden. [9,10]
An sich also ein logischer Schritt, Mergings zu vermeiden. Da das Spiel jedoch – sei es durch Bugs oder die zu langen Wartezeiten – nach dem anfänglichen Ansturm an Spielern schnell von 1,6 Millionen auf 150.000 Spieler pro Tag gesunken ist, konnten Merges von Welten nicht mehr lange vermieden werden. [8,14]
Und jetzt?
Nach dem Start des Games wurden verschiedene Exploits entdeckt, die es den Spielern unter anderem erlaubte, Ingame-Währungen und Items zu verdoppeln. Um diesen Fehler zu beseitigen, wurde ein Jahr nach dem Release angekündigt, sogenannte Fresh-Start-Server online zu nehmen. Diese Server beinhalten keinen Charaktertransfer aus den Welten älterer Server, und stellten damit sicher, dass kein Spieler von seinen Exploits profitieren konnte. Auch ein Merge zwischen alten und neuen Welten wird Stand jetzt nicht stattfinden. Somit fungierten die Server auch als Neustart des Spiels, bei dem sämtliche Spieler mit allen Verbesserungen, die das Spiel seit Release hatte, von vorn und auf demselben Stand beginnen konnten. Man könnte diese Fresh-Start-Server also auch einen zweiten Release des Games nennen. [7]
Why did the gamer quit playing New World? Because he couldn’t handle the “New” bugs every day!
Die fehlende Möglichkeit, zwischen Welten zu wechseln, wurde mittlerweile behoben. Amazon Games gab an aktive Spieler im November 2021 und Februar 2022 Tokens aus, um einen einmaligen Charaktertransfer zu ermöglichen. Diese Option wurde von vielen Spielern dringend erwartet, da Amazon Games zum Release des Spiels ankündigte, dass Spieler sich keine Sorgen machen müssten, wenn sie aufgrund der vollen Welten eine andere Welt als ihre Freunde wählten, da ein Servertransfer in Zukunft möglich sein würde. Etwas zu schön, einen Serverwechsel so simpel und vor allem kostenlos anzubieten, daher wurden ab April 2022 keine weiteren Tokens einfach so ausgehändigt, sondern für $15 USD im Ingame-Shop verkauft.
Fazit
Stellen wir die ausgeklügelte Architektur mit den Problemen des Spiels vor allem während des Releases gegenüber, stellen wir fest, dass die Scalability nicht ganz wie angepriesen funktioniert hat. Zwar bietet die Architektur die Möglichkeit, schnell neue Welten für einen großen Andrang an Spielern mithilfe eines Scale-Outs zu öffnen, aber diese Möglichkeit ist angesichts der fehlenden Möglichkeit eines ebenso schnellen Scale-Downs relativ sinnlos. Durch den fehlenden Scale-Out während des Releases konnte man erkennen, dass dieses Problem den Entwicklern wohl bekannt war.
Ein Merge von Welten hätte von Anfang an mit eingeplant werden müssen, das Team hätte an dieser Stelle also nicht nur an die Möglichkeit eines Scaling-Outs, sondern ebenso an ein Scale-Down denken müssen, um sich langfristig an eine dynamische Anzahl an Spieler anpassen zu können. Die fehlende Möglichkeit eines Transfers zwischen den Welten sperrte im späteren Verlauf Spieler in einer zu gering populierten Welt ein, in der zu wenige andere Spieler zur Interaktion vorhanden waren. Auch aktuell existieren Welten, in denen im Peak gerade nur einmal 500 Spieler aktiv sind [11]. An dieser Stelle hätten sich die Entwickler mit einem weniger statischen Management zwischen den Welten einige Probleme vor allem während des Starts des Spiels, aber auch im langfristigen Lauf erspart.
Alles in allem muss man die aufgetretenen Probleme aber sicherlich auch auf den Aspekt des Arbeitsumfeldes in der Gaming-Branche schieben. Crunch ist mittlerweile zu einem Standard in diesem Sektor geworden und benötigte Alpha- und Betaphasen sind teilweise zu kurz angesetzt. Zwar wurde der Release von New World bereits um einige Monate nach hinten verschoben, um eine erkannte Instabilität der Server zu beheben – was auch ein schlechtes Licht auf AWS geworfen hätte – aber gerade der fehlende Scale-Down hätte ebenso mehr Zeit benötigt [12]. Vermutlich spielten hier Delays und Absagen von zwei weiteren Spielen, die Amazon Games zusammen mit New World 2026 ankündigte, eine Rolle. Aber das alles soll natürlich keine Ausrede für ein Multi-Milliarden Dollar Unternehmen sein. Und gerade für einen Anbieter, der das Scaling seiner Dienste anpreist, erntete das doch einige negative Kommentare und Artikel.
Letzten Endes ist New World aber ein guter Startpunkt für folgende Releases und MMORPGs. Wenn Entwicklerteams aus den Fehlern des Spiels gelernt haben, könnte sich dahinter ein großes Potential für zukünftige Concurrent Games verstecken. (…Sofern die Beschreibung der zugrundeliegenden Architektur etwas sorgfältiger dokumentiert wird. Ich habe schon lange nicht mehr so viele Fehler und Inkonsistenzen zwischen Text und Diagrammen wie in Amazons selbst erstellten Beitrag gesehen.)
Quellen
[1] Nicholas Walsh und Amazon Game Tech Team, The Unique Architecture behind Amazon Games’ Seamless MMO New World. [online]. 06. April 2022. Verfügbar unter: https://aws.amazon.com/de/events/events-content/?awsf.filter-series=event-series%23reinvent&awsf.filter-session-type=*all&awsf.filter-level=*all&awsf.filter-topic=*all&awsf.filter-industry=*all&awsf.filter-language=language%23english&cards.q=new%2Bworld&cards.q_operator=AND&awsm.page-cards=2 (Zugriff am 19. Februar 2023)
[2] Werner Vogels und Amazon Web Services, AWS re:Invent 2021 – Keynote with Dr. Werner Vogels. [online]. 03. Dezember 2021. Verfügbar unter: https://www.youtube.com/watch?v=8_Xs8Ik0h1w (Zugriff am 21. Februar 2023)
[3] Jeff Barr, Now Available – Compute-Intensive C5 Instances for Amazon EC2. [online]. 06. November 2017. Verfügbar unter: https://aws.amazon.com/de/blogs/aws/now-available-compute-intensive-c5-instances-for-amazon-ec2/ (Zugriff am 21. Februar 2023)
[4] Amazon Game Tech Team, Stateful or Stateless? Choose the right approach for each of your game services. [online]. 22. Juli 2020. Verfügbar unter: https://aws.amazon.com/de/blogs/gametech/stateful-or-stateless/ (Zugriff am 22. Februar 2023)
[5] Jan-Dirk Kranz, Was ist AWS-Lambda und wozu nutzt man es?. [online]. 03. November 2021. Verfügbar unter: https://it-talents.de/it-ratgeber/programmieren-und-coden/was-ist-aws-lambda-und-wozu-nutzt-man-es/ (Zugriff am 21. Februar 2023)
[6] Peter Bathge, New World: Dass ausgerechnet Amazon Warteschlangen zulässt, ist ein Witz. [online]. 30. September 2021. Verfügbar unter: https://www.gamestar.de/artikel/warteschlangen-in-new-world-sind-ein-schlechter-witz,3373860.html (Zugriff am 22. Februar 2023)
[7] Anny, New World macht seine Neustart-Server so gut, dass kaum wer auf den alten spielen will – Muss jetzt handeln. [online]. 01. Dezember 2022. Verfügbar unter: https://mein-mmo.de/new-world-server-merge/ (Zugriff am 22. Februar 2023)
[8] Sean Murray, New World Faces Low Player Count Complaints – Again. [online]. 21. Januar 2022. Verfügbar unter: https://www.thegamer.com/new-world-low-player-count-server-merge/ (Zugriff am 24. Februar 2023)
[9] Susanne Braun, New World: Server-Transfers und Server-Merges – weiter geht’s im Jahr 2022!. [online]. 24. Dezember 2021. Verfügbar unter: https://www.buffed.de/New-World-Spiel-61911/News/Server-Transfer-Token-Merge-1386142/ (Zugriff am 24. Februar 2023)
[10] Susanne Braun, New World: Einmaliger Fraktions-Reset wegen Ungleichgewicht mit Server-Merge. [online]. 19. Dezember 2021. Verfügbar unter: https://www.buffed.de/New-World-Spiel-61911/News/Fraktions-Ungleichgewicht-Reset-Server-Merge-Housing-Problem-1385911/ (Zugriff am 24. Februar 2023)
[11] New World Server Status. [online]. Verfügbar unter: https://nwdb.info/server-status (Zugriff am 25. Februar 2023)
[12] Peter Steinlechner, Amazon liefert New World mit noch einer Verspätung. [online]. 05. August 2021. Verfügbar unter: https://www.golem.de/news/mmorpg-amazon-liefert-new-world-mit-noch-einer-verspaetung-2108-158687.html (Zugriff am 25. Februar 2023)
[13] Was ist Amazon DynamoDB?. [online]. Verfügbar unter: https://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/Introduction.html (Zugriff am 21. Februar 2023)
[14] New World Stats, Historical (5-years) breakdown of the player and subscriber populations for New World. https://mmo-population.com/r/newworldgame/stats (Zugriff an 22. Februar 2023)
[15] Abbildung verfügbar unter: https://preview.redd.it/jznitth3n4r71.jpg?width=640&crop=smart&auto=webp&v=enabled&s=f22cf4e8951034a17589d6d2cf1070fcd9c22079 (Zugriff am 24. Februar 2023)
[16] Abbildung Verfügbar unter: https://d13urrra316e2f.cloudfront.net/original/3X/8/5/85315c58aae1f624be145854dd9ec14a981d08a1.jpeg (Zugriff am 24. Februar 2023)
Leave a Reply
You must be logged in to post a comment.