Pax Dei
Für die Alpha registrieren
Pax Dei

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

FAQ tech - Kjartoon A

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.

Tech FAQ - Kjartoon 2

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.

FAQ Tech - Kjartoon 3

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.

Könnt ihr erklären, was ein Backend Engineer genau macht?

Ein Backend Engineer ist jemand, der an den Diensten im Backend, aber auch an der Interaktion zwischen den Zonenservern und dem Backend arbeitet. In der Regel definieren und implementieren Backend Engineers die APIs, die für die Kommunikation zwischen Unreal und den Backend-Diensten verwendet werden. Außerdem legen sie die Datenstrukturen und die Persistenzlogik für alle persistenten Daten in der Hauptdatenbank fest. Darüber hinaus kümmern sie sich auch um die Bereitstellung und Kontrolle der gesamten zugrunde liegenden Infrastruktur.

Wie funktioniert die Zusammenarbeit zwischen dem Backend und dem Frontend?

Meistens läuft diese Interaktion über ein paar gut dokumentierte APIs. Die API definiert alle zulässigen Operationen für einen bestimmten Dienst. Das Backend überprüft und gewährleistet, dass der API-Client korrekt authentifiziert ist und die Erlaubnis hat, die angegebene Funktion aufzurufen. Die API-Antwort besteht in der Regel aus Daten oder einer Validierung, die die Clients verwenden, um Spielern eine angepasste Benutzeroberfläche anzuzeigen.

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 Shards für verschiedene Sprachen geben oder spielen alle Spieler gemeinsam?

Das wird die Zukunft zeigen. Wir starten zwar ohne besondere Sprachbeschränkungen, aber es werden sich mit der Zeit wahrscheinlich dominante Sprachen auf den Shards herauskristallisieren. Wir bemühen uns, den Spielern Metadaten zur Verfügung zu stellen, damit sie eine fundierte Entscheidung treffen können, welchem Shard sie beitreten möchten.

Wir möchten Spieler auch nicht dazu zwingen, in einer bestimmten Region zu spielen. Wenn zum Beispiel europäische Spieler mit Freunden aus den USA spielen möchten, dann sollten sie das tun dürfen (auch, wenn sie dafür eine höhere Latenz in Kauf nehmen müssen).

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?

Zu Beginn streben wir etwa 7.000 Spieler pro Shard an (in 3 bis 4 Herzlandprovinzen). Sobald weitere Herzlandprovinzen online gehen, wird die maximale Population pro Shard entsprechend wachsen.

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.

Wird es wöchentliche Wartungsarbeiten geben? Werden sie je nach Region zu unterschiedlichen Zeiten durchgeführt, um die jeweilige Zeitzone zu berücksichtigen?

Unser System ist so konzipiert, dass es abgesehen von größeren Client- und Server-Updates nicht gewartet werden muss. Zum jetzigen Zeitpunkt sind aber immer noch gelegentliche Downtimes und manchmal sogar die komplette Zurücksetzung der Welten nötig. Wir werden den Zeitpunkt für diese Downtimes so wählen, dass es zu möglichst wenig Störungen für die Spieler kommt.

Wie werdet ihr die Spielerpopulation der Welten handhaben? Wird es Charaktertransfers geben?

Ja, definitiv. Das ist für ein gutes Spielerlebnis und die Kontrolle der Spielerpopulation absolut notwendig.

Aber nicht jeder Charaktertransfer ist gleich: Einen Charakter von einer Welt auf die andere zu übertragen ist beispielsweise recht einfach. Das werden wir auf jeden Fall anbieten (als bezahlten Service oder auch kostenlos, wenn wir eine bestimmte Welt entlasten möchten). Ein Grundstück und die darauf befindlichen Gebäude zu transferieren ist viel komplexer. Wir können die Gebäude nicht einfach übertragen, da der Platz in der neuen Welt vielleicht schon belegt ist. Wir können sie auch nicht einfach auf einen „ähnlichen Platz“ verlegen, da die Struktur der Gebäude von dem Gelände abhängt, auf dem sie stehen. Im Idealfall wird es ein System geben, bei dem ihr eure Gebäudestruktur als Blaupause speichern oder zumindest alle Komponenten in einen magischen Beutel packen könnt (fragt jetzt bitte nicht, wie das zur Geschichte passt). Was Clantransfers angeht: Wir denken darüber nach, aber aus verschiedenen Gründen (Prioritäten, begrenztes Personal, unfertige Features …) können wir nicht versprechen, dass sie in absehbarer Zeit implementiert werden. Wir werden später mehr Details zu den Transfers und ihrer Verfügbarkeit bekannt geben.

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.