Hero background image
Wie Sie Ihr Multiplayer-Spiel skalierbar gestalten
Auf dieser Seite finden Sie die wichtigsten Überlegungen für den Aufbau und das Design eines stabilen, skalierbaren Multiplayer-Spiels.
Erfolgreiches Veröffentlichen eines Multiplayer-Spiels

Erfolgreiches Veröffentlichen eines Multiplayer-Spiels

In unserem On-Demand-Webinar erläutert Principal Partner Engineer Aaron Moon, wie Sie die Einführung von Multiplayer-Spielen meistern können - von der Serverarchitektur bis zu Skalierungstests.

Oder lesen Sie weiter unten und erfahren Sie mehr:

  • Entwurf einer skalierbaren Spielarchitektur
  • Skalierbares Design der Spielschleife
  • Warum Ihr Backend wichtig ist

Wie man eine skalierbare Spielarchitektur entwirft

Vereinfachen Sie Ihre Architektur
1. Vereinfachen Sie Ihre Architektur

Der Schlüssel zum Entwurf einer Spielarchitektur ist die Berücksichtigung der Effizienz von Anfang an. Eine zu frühe Fokussierung auf Metriken, Logging, Telemetrie und Monetarisierung kann zu einer übermäßigen Aufblähung der Spielarchitektur führen. All dies zur Laufzeit in Ihren Spieleserver zu packen, kann die Investitionsrendite (ROI) verringern und die Gesamtbetriebskosten erhöhen.

Beginnen Sie stattdessen so früh wie möglich mit einem Minimum Viable Product (MVP). Bringen Sie den Server zum Laufen, den Client zum Laufen, Ihren Netcode und Ihr Matchmaker-System zum Laufen und bauen Sie dann von dort aus weiter. Sie sollten auch in Betracht ziehen, sich frühzeitig an Ihren Hosting-Provider zu binden - er kann vorgefertigte Lösungen und Infrastrukturen anbieten, die Ihnen Entwicklungszeit sparen.

Komplexes Design des Spieleservers vermeiden
2. Komplexes Design des Spieleservers vermeiden

Wenn es um Ihr Spieldesign geht, wie sieht einfach aus? Die obige Abbildung zeigt ein komplexes Design mit nicht nur einer Spielserverinstanz, sondern vielen zusätzlichen Prozessen auf demselben Rechner, darunter Matchmaker, Protokollierung und ausführbare Metrikdateien.

Diese Komplexität wird nicht notwendigerweise deutlich, bis man mit dem Testen von Skaleneffekten beginnt. Dann wird man feststellen, dass diese Dinge nicht gut zusammen funktionieren, wenn es Tausende von Spielern gibt. Außerdem verfügen Zusatzdienste möglicherweise nicht über ein Ressourcen-Fencing, so dass sie anfangen können, Ressourcen auf dem Rechner zu kannibalisieren und die Leistung des Players zu beeinträchtigen. Ein einfaches Vorgehen kann dazu beitragen, diese Probleme zu entschärfen.

Einfaches Design des Spieleservers
3. Einfaches Design des Spieleservers

In Bezug auf das Design von Spieleservern ist es einfach, Dinge in eine einzige Serverinstanz zu packen, wie eine einzige ausführbare Datei und einen robusten Matchmaker (der vielleicht eher auf einem Backend-Dienst als auf einer Maschine gehostet wird). Wenn einer der Spieleserver ausfällt, werden die anderen Spieler nicht mitgerissen und das betroffene Gebiet bleibt klein. Wenn ein Spielserver mit diesem Design ausfällt, hat das keine Auswirkungen auf die Spielerfahrung.

Die Laufzeitumgebung des eigenen Spielservers zum übergeordneten Prozess machen
4. Die Laufzeitumgebung des eigenen Spielservers zum übergeordneten Prozess machen

Um das Kostenrisiko zu minimieren, sollten Sie Hilfsprozesse wie Debugging, Watchers und Matchmaking nicht auf demselben Rechner ablaufen lassen. Wenn ein Spieleserver ausfällt und Sie über Cloud-Maschinen verfügen, auf die er skaliert wird, bleiben die Nebenprozesse "im Dunkeln". Sie verbrauchen weiterhin Ressourcen, was Ihr Studio Geld kostet, und Sie haben keine Möglichkeit, sie abzuschalten.

Ziehen Sie stattdessen in Erwägung, die Nebenprozesse wie Matchmaking und Debugging zu Unterprozessen des Spieleservers zu machen - halten Sie es einfach. Wenn Sie dann den Spieleserver verlieren, werden die Unterprozesse mitgenommen, anstatt sie im Hintergrund weiterlaufen zu lassen. In diesem Fall können Sie, wenn der Server nicht mehr funktioniert, einen neuen Server aufsetzen, ohne die zusätzlichen Ressourcen und Kosten, die mit "zombied" Prozessen verbunden sind.

Skalierbares Design der Spielschleife

Es ist eine gute Idee, sich zu überlegen, wie Ihre Spielschleife mit der Infrastruktur interagiert und wie die Infrastruktur Ihr Spiel unterstützt. Wenn Ihr Spiel zum Beispiel Lobbys und Spielleiter hat, sollte es einen Grund geben, in und aus den Lobbys und Sitzungen dieser Lobbys zu spielen.

Denken Sie darüber nach, welche Art von Session-Design Sie haben - bauen Sie ein persistentes Spiel wie ein MMO oder ein Spiel mit kurzen Sessions, bei dem die Laufzeiten jedes Mal neu gestartet werden? Jeder Entwurf einer Spielschleife kann Risiken und Vorteile mit sich bringen. Im Folgenden finden Sie einige wichtige Überlegungen zur Gestaltung von kurzen, langen und anhaltenden Spielsitzungen.

Überlegungen für lang andauernde Spielsitzungen

Bei Multiplayer-Spielen mit langen Sitzungen kann es zu Problemen wie Speicherlecks, ausufernder RAM-Nutzung usw. kommen, die möglicherweise erst dann auftreten, wenn Sie Ihr Spiel in großem Umfang ausführen.

Hier sind einige Risiken, die mit lang andauernden Spielsitzungen verbunden sind:

  • DDoS-Angriffe: Da sich die IP der Spielinstanz bei einem persistenten Spielsitzungsmodell nicht ändert, besteht die Möglichkeit von DDos-Angriffen.
  • Hohe Cloud-Kosten: Es erfordert eine Menge kostspieliger Ressourcen, ein Spiel aufrechtzuerhalten, das immer, oder fast immer, aktiv ist - selbst wenn die Spieler nicht mitspielen.
  • Unterbrechungen aufgrund von Patches: Das Patchen kann schwierig zu handhaben sein, da es aktive Spiele geben kann, die beendet werden müssen, um das Spiel zu patchen, was zu einem schlechten Spielerlebnis führt.
Überlegungen für kurze Spielsitzungen

Bei kurzen Spielsitzungen gibt es immer noch Risiken und Überlegungen zur Spielerfahrung. Selbst wenn Ihr Spiel mit zwei Spielern nur zwei Minuten dauert, kann es kostspielig und risikoreich sein, Hunderttausende (oder mehr) von gleichzeitigen Spielen zu ermöglichen.

Hier sind einige Überlegungen für kurze Spielsitzungen:

  • Hohe Backend-Last: Ständige API-Aufrufe an Ihr Backend zur Erleichterung kurzer Spielsitzungen können eine enorme Belastung darstellen, daher muss es widerstandsfähig sein.
  • Hart an der Infrastruktur: Wenn der Server zwischen kurzen Sitzungen neu gestartet wird, kann es sein, dass die CPU- und RAM-Belastung zu Beginn des Ladens der Prozesse in die Höhe schießt - was teuer sein kann.
  • Erfordert eine robuste Partnervermittlung: Bei kurzen Sitzungen benötigen Sie einen effektiven Matchmaker, der die Matchmaking-Tickets für neue Sitzungen, erneute Verbindungen und mehr verwaltet.
  • Dienstgüte (QOS): Sie benötigen einen Anbieter, der es Ihnen ermöglicht, Ihrem Spielclient eine Liste von IP-Adressen in Echtzeit zu senden, um die Serverregion auf der Grundlage echter Telemetriedaten und Daten und nicht des physischen Standorts zu bestimmen.
  • Benötigt Metriken und Telemetriedaten: Wenn etwas schief geht, ist es wahrscheinlicher, dass ein Spieler aufgibt und eine neue Sitzung beginnt, als einen Fehler zu melden. Wenn Sie keine Metriken und Telemetrie aus diesen kurzen Sitzungen erhalten, könnten Sie Dinge übersehen, die im Spiel falsch laufen.

Hier sind die Vor- und Nachteile von Spielen mit kurzen Sitzungen:.

Vorteile:

  • Keine Stabilisierung bei langen Laufzeiten erforderlich
  • Ermöglicht schnelleres Patching
  • Leichte Verkleinerung
  • Kein Leerlaufzustand
  • Protokolldateien für jede Sitzung ermöglichen eine einfachere Fehlerbehebung

Nachteile:

  • Mehr Rückrufe, d. h. mehr Last bei der Skalierung
  • Cloud-Rechenkosten für Neustarts sind nicht trivial
  • Bedingungen für das Rennen
  • MEM/CPU-Spitzen beim Starten
  • Mehr Komplexität beim Matchmaking
  • Probleme mit der Maschinenleistung können versteckt werden
Überlegungen zu dauerhaften Spielsitzungen

Bei persistenten Multiplayer-Spielen (wie MMOs) können bestimmte Probleme und Risiken auftreten. Die Unterstützung von Situationen wie der Migration von Spielern zwischen Servern bedeutet beispielsweise, dass Sie ein robusteres Backend-System benötigen - einschließlich kostspieliger Server und leistungsstarker Festplatten.

Hier sind einige Überlegungen für die Gestaltung dauerhafter Spielsitzungen:

  • Die Budgetierung kann ein Problem sein: Für dauerhafte Sitzungen sind robustere Backend-Systeme erforderlich, so dass Sie berechnen müssen, wie hoch die Wartungskosten auf der Grundlage der Nutzer sein werden, um zu verstehen, ob dies das richtige Sitzungsdesign für Sie ist.
  • Eine Cloud ist möglicherweise nicht machbar: Aufgrund der hohen Anforderungen einer dauerhaften Spielesitzung kann die Cloud für Ihr Projekt zu kostspielig sein.
  • Die Netzqualität ist äußerst wichtig: Latenz und Latenzmanagement entscheiden über Erfolg oder Misserfolg einer persistenten Spielsitzung für die Spieler, daher ist ein frühzeitiges und gründliches Testen des Netzwerks für ein gutes Spielerlebnis unerlässlich.
  • Patching ist schwierig und riskant: Wartungsbedingte Ausfallzeiten sind für die Spieler nie ein schönes Erlebnis - selbst wenn sie zur Verbesserung des Gesamterlebnisses notwendig sind. Die Kommunikation mit Ihrer Gemeinde über die Wartungszeiten ist entscheidend. Sie sollten auch in Betracht ziehen, mehrere Spielversionen gleichzeitig laufen zu lassen und im Laufe der Zeit Patches einzubauen.

Hier sind die Vor- und Nachteile von Spielen, die auf dauerhaften Sitzungen basieren:

Vorteile:

  • Die Server sind immer betriebsbereit
  • Kürzere Spielschleife möglich
  • Weniger Belastung für Ihr Backend

Nachteile:

  • Schwieriger zu gestalten
  • Instabilität im Laufe der Zeit
  • Säuberung von Sitzungen
  • Leerlaufdesign erforderlich
  • Erforderlich ist ein Bewusstsein für Ehestifter
  • A/B-Patching kann länger dauern
Situatives Testen oder Chaos-Resilienz

Es ist eine gute Idee, sich auf potenzielle Probleme bei der Spielerfahrung in großem Umfang vorzubereiten. Das Starten, Ausführen und Aktualisieren eines Multiplayerspiels kann chaotisch sein. Daher ist es wichtig, situationsbedingte Tests für die "Chaos-Resilienz" durchzuführen und sicherzustellen, dass das Backend Ihres Spiels für die Bewältigung dieses Chaos eingerichtet ist.

Was passiert zum Beispiel, wenn alle Spieler aus dem Spiel aussteigen und gleichzeitig versuchen, wieder in die Spielersuche einzusteigen? Wenn Sie herausfinden, wie das Backend auf diese Situation reagiert, und es so einrichten, dass es mit diesem Problem umgehen kann, können Sie sich langfristig Kopfschmerzen ersparen (und Ihren Ruf schützen).

Vorbereitungen für das Patchen Ihres Spiels
Vorbereitungen für das Patchen Ihres Spiels

Es ist wahrscheinlich, dass Sie Ihr Spiel während der Markteinführung patchen müssen. Deshalb ist es wichtig, dass Sie Ihre Infrastruktur so aufbauen, dass Patches während der Produktion und der Einführung möglich sind. Dies kann dazu beitragen, das Chaos am Tag der Markteinführung und die fälligen Patches schneller und reibungsloser zu gestalten, und die Auswirkungen auf die Spieler können begrenzt werden.

Eine Möglichkeit, dies zu erreichen, besteht darin, mehrere Versionen Ihres Spiels gleichzeitig laufen zu lassen. Allerdings müssen Sie auch dafür sorgen, dass Ihre Infrastruktur mehrere Versionen verarbeiten kann. Außerdem benötigen Sie eine Sandbox mit allen verschiedenen Versionen.

Wenn Sie bereits die Möglichkeit eingebaut haben, mehrere Versionen gleichzeitig laufen zu lassen, gibt es keine Ausfallzeiten oder Unterbrechungen für die Spieler, wenn Sie patchen.

Skalentests für eine erfolgreiche Einführung des Multiplayer-Modus

Häufige Skalentests sind von entscheidender Bedeutung, daher sollte die Suche nach einem Anbieter, der Ihnen dabei helfen kann, ein wichtiges Kriterium bei der Auswahl Ihrer Dienste sein.

Ein wichtiger Punkt beim Skalierungstest ist die Tesselierung und Defragmentierung des Servers. Die Tesselierung des Servers ist ein wichtiger Kostenfaktor. Im Wesentlichen wollen Sie zunächst preiswerte Metallgeräte für das Hosting verwenden. Da Ihre Spielerbasis schwankt, sollten Sie auch teurere Cloud-Maschinen schnell entfernen, was kostengünstiger ist.

Game Server Hosting (Multiplay) vermeidet die Zuteilung zu kostspieligeren Rechnern, was es uns ermöglicht, diese schneller zu entfernen, wenn die Anzahl der Spieler zurückgeht.

Ob unser System dazu in der Lage ist, hängt von der Lebensdauer Ihres Spiels ab. Kürzere Spielzeiten ermöglichen es uns, Zuweisungen auf teuren Maschinen schneller zu beenden. Längere Spiele bedeuten, dass wir die Maschinen nicht abschalten können, bis das Spiel zu Ende ist.

Wie man ein Multiplayer-Spiel entwickelt und gestaltet
Planen Sie für Ihren nächsten Multiplayer-Titel

Sind Sie bereit, Ihr nächstes Multiplayer-Spiel zu entwickeln? Hier finden Sie einige Ressourcen für den Anfang - erfahren Sie mehr über die Skalierung mit Game Server Hosting, sehen Sie sich unser On-Demand-Webinar über Game Server Hosting und Matchmaker an und erkunden Sie die Multiplayer-Lösungen, die wir unten anbieten.