Häufig gestellte Fragen (FAQ)
Technisches
- Eine Einführung in die Shards, Server und Zonen von Pax Dei
Wie ihr vielleicht wisst, besteht die Welt von Pax Dei aus mehreren Regionen (z. B. Gallia, Anatolia und Gothia), die in verschiedene Provinzen (z. B. Ancien, Merrie und Kerys) aufgeteilt sind. Eine Provinz ist ein riesiges geografisches Gebiet mit mehreren Tälern, die von gewaltigen Gebirgsketten durchzogen sind. In bestimmten Provinzen, den sogenannten Herzlandprovinzen, gibt es mehrere Täler, die wir Heimattäler nennen und in denen ihr eure Häuser bauen könnt. Natürlich gibt es auch finstere Dungeons und Höhlen, die sich größtenteils unter der Oberfläche dieser Provinzen erstrecken.
Aber wie werden diese Landschaften auf den physischen Servern abgebildet und wie wirken sie sich auf euer Spielerlebnis aus?
Welten/Shards
Die erste Entscheidung, die ihr in Pax Dei treffen müsst, wenn ihr einen neuen Charakter erstellt, ist die Auswahl einer bestimmten Weltinstanz, die auch als Shard bezeichnet wird. Obwohl die Welt von Pax Dei geografisch gesehen riesig ist, bietet sie insgesamt nur einer bestimmten Anzahl von Spielern Platz. Daher betreiben wir mehrere identische Kopien dieser Welt, die sich nur in Bezug auf ihre Spielerpopulation unterscheiden. Jede dieser Kopien bezeichnen wir als Shard.
Wir rechnen am Anfang mit einer maximalen Population von etwa 7.000 Spielern auf einem Shard. Ein einzelner Shard wird vollständig in einem einzigen physischen Cloud-Hosting-Center betrieben. Wir werden Shards in verschiedenen Weltregionen betreiben, z. B. in Nordamerika und Europa.
Bei der Wahl eures Shards müsst ihr also vor allem Folgendes beachten:
Die Latenz zu eurem Computer
Die Verfügbarkeit, da einige Shards schon voll sein könnten
Auf welchem Shard eure Freunde spielen
Zonenserver
Aus computertechnischer Sicht besteht ein Shard aus einer großen Ansammlung verschiedener Server und Cloud-Dienste, von denen jeder eine bestimmte Funktion erfüllt. Die meisten davon sind sogenannte Zonenserver. Das liegt daran, dass die Simulation einer ganzen Welt viel zu rechenintensiv ist, um von einer einzigen Hardware-Instanz bewältigt zu werden. Daher wird sie in kleinere Recheneinheiten unterteilt, die wir Zonen nennen. Ein einzelner Zonenserver ist ein dedizierter Unreal Server, der für die Simulation eines bestimmten Teils der Welt zuständig ist, z. B. für die eines Heimattals.
Als Spieler seid ihr jederzeit automatisch mit einem Zonenserver verbunden. Wenn ihr eine Zonengrenze überschreitet, wechselt eure Verbindung automatisch zum benachbarten Zonenserver. Das nennen wir einen Zonenwechsel. Meistens passieren diese Wechsel reibungslos, aber es gibt ein paar wichtige Ausnahmen:
Beim Wechseln zwischen verschiedenen Provinzen oder Dungeons kommt es normalerweise zu Ladezeiten, da der Client eine komplett neue Karte laden muss.
Derzeit kann man andere Spieler oder NPCs nicht über Zonengrenzen hinweg sehen.
Zoneninstanzen
Wie schon erwähnt, ist ein Zonenserver ein dedizierter Unreal Server, der einen kleinen Teil der Welt simuliert. Mit der Zeit kann ein Zonenserver durch zu viele Spieler überlastet werden.
Zurzeit liegt die Grenze bei etwa 150 Spielern, aber wir erwarten, dass diese Zahl mit besserer Hardware und Optimierungen steigen wird. Damit die Zonen nicht geschlossen werden müssen, wenn die maximale Spielerzahl erreicht ist (z. B. zu Stoßzeiten), führen wir stattdessen das Konzept der Zoneninstanzen ein.
Wenn also die maximale Anzahl von Spielern in einer Zone überschritten wird, werden alle Spieler innerhalb einer bestimmten Zone auf zwei oder mehrere separate Zoneninstanzen verteilt. Jede Zoneninstanz betreibt in Wirklichkeit einen separaten Zonenserver für dieselbe Zone, aber die Spieler verschiedener Instanzen können nicht miteinander interagieren.
Diese Trennung gilt aber nur für direkte Spielerinteraktionen – die Gebäude sind beispielsweise instanzübergreifend beständig und dadurch für alle sichtbar. Sobald die Population der Zone sinkt, werden die Instanzen wieder zusammengelegt. Später, wenn ein Shard ausgereift ist, sollte die Instanzierung nur noch in Ausnahmefällen vorkommen, aber am Anfang kann das häufiger passieren.
Persistenz im Backend
Der Rest des Backends kümmert sich neben den Zonenservern auch um die Koordination zwischen den Zonenservern, die transaktionale Spiellogik, die Kommunikation und die Persistenz. In manchen Fällen verbinden sich die Clients über sichere APIs direkt mit diesem Backend, z. B. zur Authentifizierung. Meistens kommunizieren aber die Zonenserver mit dem Backend, um bestimmte Dienste wie den Inventardienst, die Ressourcenverwaltung usw. abzurufen.
Die gesamte Infrastruktur wird dann über eine Kubernetes-Architektur bereitgestellt, koordiniert und skaliert, die zusätzlich zu einer Cloud-Infrastruktur betrieben wird.
- Was ist die größte Herausforderung bei einem MMO wie Pax Dei?
Die größte Herausforderung ist die Komplexität des Tech-Stacks. Der gesamte Tech-Stack besteht aus verschiedenen Komponenten. Einige davon stammen von Drittanbietern (z. B. die Unreal Engine oder PostgresDB), andere haben wir komplett selbst entwickelt. Die meisten davon sind nicht speziell für MMOs ausgelegt. Ihre Funktionen reichen von Physiksimulationen, Grafik-Rendering und KI-Verhalten bis hin zur Integrität der Transaktionen und der Skalierbarkeit von Servertransaktionen. Dabei kommen mehrere Programmiersprachen zum Einsatz und sie müssen perfekt aufeinander abgestimmt sein, damit sie alle funktionieren, wie sie sollen. Außerdem ist es ziemlich schwierig, ein MMO ohne echte Spieler zu testen, daher sind die frühen Benutzertests so wichtig.
- Wird es eigene PvE-Shards ohne PvP geben?
Nein, wir planen derzeit, alle Shards identisch zu gestalten.
- Wie viele Spieler können auf einem Shard spielen?
Derzeit kann jede Welt bis zu etwa 14.000 Grundstücksbesitzer aufnehmen.
- Wie werdet ihr verhindern, dass es zur Veröffentlichung zu langen Warteschlangen kommt?
Wir können bei Bedarf zusätzliche Shards einrichten, um mehr Spieler unterzubringen, aber auch die Zoneninstanzierung wird dazu beitragen, die anfängliche Auslastung pro Shard zu verringern.
- Wie werdet ihr die Latenzzeit für die Spieler verringern?
Shards werden in verschiedenen geografischen Regionen verfügbar sein, sodass es für alle neuen Spieler einen Shard in ihrer geografischen Nähe gibt. Außerdem sind das Kampfsystem und die üblichen MMO-Interaktionen so ausgelegt, dass sie im Vergleich zu Ego-Shootern toleranter gegenüber Lag sind.
- Wie werdet ihr die Spielerpopulation der Welten handhaben? Wird es Charaktertransfers geben?
Unser Team überwacht ständig die Bevölkerungszahlen auf allen Welten und ist bereit, bei Bedarf neue Welten zu öffnen. Sollte es notwendig sein, könnte ein Charaktertransfer auf eine neue Welt in derselben Region möglich sein. Zurzeit werden alle Transfers manuell von unserem Support-Team durchgeführt, aber wir arbeiten an einem automatisierten Prozess. Weitere Informationen folgen, sobald diese Funktion bereit ist.
- Wie kann ich sichergehen, dass ich mit meinen Freunden in derselben Welt spiele? Kann ich zu ihnen kommen, auch wenn die Welt voll ist?
Wenn eine Welt überfüllt ist, wird sie aus Gründen der Qualitätssicherung gesperrt. Es ist unser Ziel, ein Gleichgewicht herzustellen: Wir möchten unsere Welten vor Überpopulation schützen, aber gleichzeitig sicherstellen, dass Freunde problemlos zusammen spielen können. Dabei kommt es darauf an, dass wir uns ein cleveres System ausdenken, wie wir Spieler in bestimmte Welten führen. Im Notfall würden wir gerne kostenlose Charaktertransfers in weniger ausgelastete Welten anbieten. Das ist eine der besten Möglichkeiten, um Überpopulation zu verhindern. Wir werden zu einem späteren Zeitpunkt weitere Informationen dazu veröffentlichen.
- Wie steht ihr zu Programmen und Add-ons von Drittanbietern?
Wir sind offen für Programme und Add-ons von Drittanbietern (solange sie kein Cheating ermöglichen), denn wir wissen, dass sie oft das Benutzererlebnis verbessern und wertvolle Funktionen bieten können. Im Moment fehlen uns aber leider noch die nötigen Ressourcen, um sie richtig zu unterstützen. Wir hoffen, dass wir diese Unterstützung in absehbarer Zeit anbieten können. Wir werden euch auf jeden Fall auf dem Laufenden halten und weitere Informationen veröffentlichen, sobald sie verfügbar sind.