Update
In 10 for the Chairman Episode 77 hat Chris Roberts neue Informationen zum Instanzierungsystem preisgegeben, die einige Informationen in diesem Post ad acta legen. Ihr findet die neusten Informationen hier:
Einzig der Teil über die Serverarchitektur, der allgemeine Informationen über die beteiligten Server enthält, sollte in großen Teilen weiterhin bestand haben.
Bisheriger Artikel
Bevor wir starten möchte ich Euch bitten, die folgenden beiden Artikel zu lesen, falls Ihr sie noch nicht kennt. Eine Auffrischung kann natürlich auch nicht schaden.
Dieser Artikel setzt die Inhalte beider Blogeinträge als gegeben voraus. Insbesondere die Informationssammlung mit den Aussagen der Entwickler ist die Grundlage für alle hier dargestellten Informationen. Solltet Ihr der Meinung sein, dass ich hier etwas nicht so darstelle, wie Ihr Euch Star Citizen immer vorgestellt habt, dann lest unbedingt die Aussagen der Entwickler im ersten Teil.
Serverarchitektur von Star Citzen
Beginnen möchte ich mit einer High-Level-Sicht auf die verschiedenen Server und Komponenten, die das Star Citizen Universum betreiben werden.
Universe Server: Dies ist der zentrale Server von Star Citizen. Auf ihm wird das Management der gesamten Spielerbasis des Persistenten Universums ablaufen. Der Server kennt die genaue Position jedes Charakters, die Einstellungen (z.B. PvP-Slider), die Freunde und Feinde, die Organisationen, Abschussstatistiken und vieles mehr. Mit diesen Daten wird entschieden, in welche Instanz jeder Spieler kommt. Zudem läuft auf diesem Server die Wirtschaftssimulation sowie andere globale Prozesse (Simulation der NPC) des Star Citizen Universums.
Star System Server: Jedes Sternensystem hat einen Administrationsserver. Er kümmert sich wie der Universe Server um das Management der Spieler und hat ebenfalls alle Informationen über die Spieler vorrätig. Letztlich unterstützen diese Server (einer je Sternensystem) den Universe Server beim Management des Universums. Wie genau die Teilung der Aufgaben zwischen Universe und Star System Server sein wird, konnte ich aus den Aussagen von CIG bisher noch nicht erkennen.
General Instance Manager (GIM): Ist eine Abstraktionsschicht zum Starten, Stoppen und Verwalten von Instanzen.
Instance Server: Diese Server verwalten die eigentliche 3D-Umgebung. Aufgrund der hohen Grafikqualität von Star Citizen können nicht sehr viele Schiffe in unmittelbarer Nähe zueinander dargestellt werden. Ist die Spielerzahl zu hoch, dann wird der Teil des Weltraums mit zu vielen Spielern instanziert. Die Instance Server repräsentieren diese Instanzen. Nur Spieler, die sich in der gleichen Instanz sind, können sich gegenseitig sehen.
Game Server: Auch diese Server verwalten 3D-Umgebungen. Sie können später vor allem im Zonensystem zum Einsatz kommen, um zum Beispiel den Innenraum von Schiffen zu verwalten und so den Instance Server entlasten.
Vermutliche Server-Architektur von Star Citizen |
Das obige Diagramm zeigt den vermutlichen Aufbau und die Interaktion der Server in Star Citizen. Der Universe Server steht in Verbindung mit den Star System Servern. Jedes Sternensystem in Star Citizen soll einen von letzteren haben. Insofern kann man sagen, dass alle diese Server zusammen das Universum verwalten.
Wann immer ein Spieler in eine Instanz "gesteckt" werden soll, dann lässt sich der Universe/Star System Server die verfügbaren Instanzen für die gewünschte Region im Universum vom General Instance Manager (GIM) geben. Aus dieser Liste an Instanzen wählt der Universe/Star System Server dann die geeignetste aus (anhand der Informationen über den Spieler). Ist noch keine Instanz vorhanden oder sind alle voll, dann wird eine neue eröffnet.
Zu einem Star System Server gehören dann alle Instance Server, die eine Region oder eine Planetenoberfläche in dem System darstellen. Ein Instance Server kann dann wiederum viele Game Server haben, welche die Inhalte der Instanz berechnen und somit höhere Spielerzahlen in der Instanz ermöglichen.
Das System ist so im höchsten Maße flexibel. Instance und Game Server können je nach Bedarf gestartet und beendet werden. Je nachdem wo sich gerade viele Spieler aufhalten. Sind zum Beispiel um den Planeten Erde sehr viele Spieler unterwegs, dann werden eben entsprechend viele parallele Instanzen des Orbits der Erde erstellt. Währenddessen kann es gut sein, dass in wenig frequentierten Systemen nur eine oder gar keine Instanz für den Orbit eines Planeten besteht.
Die Serverarchitektur von Star Citizen erlaubt also ein ausgeklügeltes System, welches einen zentralen Server (bzw. eine Gruppe von Servern) für die Verwaltung der Spieler mit der Instanzierung aller Bereiche im Weltall verbindet, in den zu viele Spieler zusammenkommen. Wie das in der Praxis genau funktionieren wird, lest Ihr in den nächsten Abschnitten.
Das leere Universum
Wenn CIG das Persistente Universum startet, dann werden nur der Universe und die Star System Server laufen, da sie für das Wirtschaftssystem, Ressourcenverwaltung und die NPC-Simulation zuständig sind. Solange keine Spieler eingeloggt sind, werden meiner Meinung nach keine Instance Server gestartet sein.
Das muss eigentlich so sein, da sonst die Kosten astronomisch wären, wenn sie die NPC-Bewegungen auf den Instance Servern in Echtzeit berechnen würden, selbst wenn kein Mensch sie sehen kann. Es ist wesentlich wahrscheinlicher, dass NPC-Aktivitäten komplett im Universe und den Star System Servern als Mengenoperation im Hintergrund laufen.
Fliegt zum Beispiel ein NPC-Händler von Planet A zu Planet B, dann macht er das nur als Datensatz im Universe/Star System Server. Trifft er auf einen NPC-Piraten (ebenfalls nur als Datensatz in dem Server), dann wird das Ergebnis dieses Gefechtes wahrscheinlich einfach vom Universe/Star System Server ausgewürfelt werden. Das Ergebnis wird dann wieder ins Wirtschaftssystem zurückgespielt.
Erst wenn Spieler im Universum sind, werden auch die NPCs in die 3D-Umgebung hineingeladen. Aber nur dort, wo es Spieler und damit Instanzen gibt. Gibt es nun also eine Instanz, in der ein Spieler unterwegs ist, wo der oben beschriebene Kampf zwischen NPC-Händler und NPC-Pirat stattfindet, dann wird das Ergebnis dieses Kampfes nicht ausgewürfelt, sondern durch die KI-Fähigkeiten der beiden NPC-Piloten oder durch das Eingreifen des Spielers entschieden. Dieses Ergebnis wird dann wieder ins Wirtschaftssystem zurückgespielt.
Wie Ihr seht, kann die Wirtschaftssimulation sowohl völlig ohne Spieler laufen, als auch auf Einflüsse von Spielern reagieren. Aber die Wirtschaftssimulation ist ein großes Thema für sich, das ich an dieser Stelle nicht aufmachen möchte.
Allein im Universum
An dem kleinen Sternensystem, welches Ihr im nächsten Bild schematisch dargestellt seht, schauen wir uns jetzt einige Beispiele an, wie das Instanzierungsystem in Star Citizen wahrscheinlich funktionieren wird. Das Beispielsystem hat drei Points of Interests - wie CIG Nav-Punkte in letzter Zeit immer wieder nennt. Hier sind es zwei Planeten und ein Asteroidenfeld.
Kleines Sternensystem als Beispiel |
Stellen wir uns also vor, dass wir alleine in dem System unterwegs sind, zum Beispiel von Planet A über das Asteroidenfeld zu Planet B. Wir starten unser Raumschiff auf Planet A und kommen dann in eine neu erzeugte Instanz, die den Orbit um den Planeten verwaltet. Anschließend starten wir den Quantum Travel in Richtung Planet B, werden aber an dem Asteroidenfeld herausgeworfen, da es schlicht im Weg ist.
Es wird während wir im Quantum Travel unterwegs sind die Instanz für den Raum um das Asteroidenfeld gestartet. Unser Client wechselt dann die Serververbindung zum neuen Instance Server. Sind wird dort angekommen, können wir durch das Feld fliegen und auf der anderen Seite wieder den Quantum Travel starten - mit dem Ziel Planet B. Auch hier wird wieder während des Fluges eine neue Instanz eröffnet. Am Planet B fragen wird dann nach der Landeerlaubnis und haben die Reise durchs All abgeschlossen.
Eine Instanz je Point of Interest in einem Sternensystem |
Im obigen Bild habe ich die gestarteten Instanzen als Vierecke dargestellt, um zu verdeutlichen, wo die Instanzen erzeugt wurden. Wenn wir auf der obigen Beispielreise Instanzen verlassen, dann wird CIG mit Sicherheit die Instanzen nach einiger Zeit wieder schließen, sprich die Instance und Game Server herunterfahren.
Wie im vorherigen Abschnitt beschrieben werden wir auf der Reise NPCs zu sehen bekommen. Dabei wird das Spiel (Universe/Star System Server) eine Auswahl treffen, welche NPCs es sein werden. Um die Planeten herum könnten es Händler, Polizei und ähnliche sein, während im Asteriodenfeld durchaus ein Kampf zwischen Händlern und Piraten tobt.
Das Universum füllt sich
Bisher haben wir uns das leere Universum und einen einzelnen Spieler angeschaut. Letztlich geht es aber bei der Instanzierung vor allem um die Beherbergung größere Spielermengen und darum soll es im Folgenden gehen.
Nehmen wir nun an, dass eine Menge Spieler online kommen und mit Ihrem Schiff in den Orbit von Planet A starten wollen. Das Limit an Schiffen in einer Instanz sei 100. Da noch Plätze für Freunde und Feinde für jeden Spieler freigehalten werden sollen, würde das Limit recht schnell erreicht sein. Wie viel es am Ende genau ist, vermag heute noch niemand sagen zu können.
Für unsere Betrachtung ist letztlich aber nur entscheidend, dass der GIM die Instanz als voll kennzeichnet. Wollen nun weitere Spieler in den Orbit von Planet A, dann wird eine weitere parallele Instanz für den Orbit von Planet A erzeugt. Das heißt, dass ein neuer Instance Server hochgefahren wird und eine Kopie des Weltraums um den Planeten verwaltet. Chris Roberts nennt das ganze eine parallele Dimension, was gut erklärt, wie sich die Instanzen auf die Spieler auswirken: Man kann nur die Spieler in der eigenen Instanz sehen.
Mehrere Instanzen je Point of Interest in einem Sternensystem |
Im oberen Bild seht Ihr das Beispielsystem mit vier parallelen Instanzen im Orbit von Planet A und 2 um Planet B. Im nächsten Beispiel sollen zwei Schiffe von Planet A zu Planet B fliegen. Das erste Raumschiff startet aus der ersten Instanz (um Planet A), während das zweite Schiff aus der vierten Instanz losfliegt.
Die Instanz im Asteroidenfeld hat noch genug Plätze, um beide Spielerschiffe aufzunehmen. Da beide durch das Feld müssen, um zu Planet B zu kommen, wird der Quantum Travel am Asteriodenfeld unterbrochen werden. Beide werden in die gleiche Instanz kommen und sich dann sehen können. Am Planet A konnten sie sich noch nicht gegenseitig sehen.
Dieses Beispiel zeigt die Flexibilität des Instanzierungssystems in Star Citizen. Jeder Point-of-Interest kann einen Spieler mit völlig anderen Spielern zusammenbringen. Es ist nicht so, dass es eine feste Zuordnung der Spieler zu Instanzen gibt. Bei jedem Point-of-Interest wird wieder neu durchgemischt - außer die betreffenden Spieler sind in einer Gruppe, oder gegenseitig auf der Freundesliste oder in der gleichen Organistation. Dann soll das System dafür sorgen, dass sie perse in die gleichen Instanzen kommen.
Zurück zu unseren beiden Piloten, die es mittlerweile durch das Asteroidenfeld geschafft haben, und jetzt den Quantum Drive zu Planet B starten. Wie weiter oben gesagt, wird dabei entschieden, in welche Zielinstanz es für den Spieler geht. Es ist jetzt durchaus möglich, dass beide in verschiedene Instanzen um den Planet B kommen.
Welche Schlacht?
Im vorherigen Beispiel bin ich davon ausgegangen, dass die beiden Piloten aus verschiedenen Instanzen starten. Das ganze kann natürlich auch andersherum sein. Beide Piloten starten in der gleichen Instanz um Planet A, haben aber beispielsweise verschiedene Einstellungen für den PvP-Slider vorgenommen. Spieler 1 ist zu 100% auf PvP aus. Der zweite Spieler mag sich lieber mit NPCs herumschlagen und hat den Slider ganz auf PvE gestellt.
Im Asteroidenfeld warten weitere Spieler, die ebenfalls PvP machen wollen, in einer Instanz. Das Spiel wird jetzt den PvP-Spieler zu den anderen PvP-Spielern schicken, während für den PvE-Spieler höchstwahrscheinlich eine neue Instanz des Asteroidenfelds aufgemacht wird, in der er dann allein ist (natürlich könnten da noch NPCs drin sein).
Mehrere Instanzen für das Asteroidenfeld |
Die PvP-Spieler rufen alle Ihre Freunde zu Hilfe. Diese bekommen dann einen speziellen Nav-Punkt in ihren Navigationscomputer. Starten sie den Quantum Travel zum Asteroidenfeld für diesen Nav-Punkt, dann schickt das Spiel sie automatisch in die Instanz, wo ihre Hilfe gebraucht wird. So kann sich nach einiger Zeit eine gewaltige Schlacht in dem Asteroidenfeld entwickeln.
Diese Schlacht sehen aber nur diejenigen, die in der entsprechenden Instanz sind. Unser PvE-Spieler ist in einer parallelen Instanz des Asteroidenfelds und bekommt von dieser Schlacht nichts mit. Er macht sich vielleicht gerade über Mineralien her, die in dem Feld abzubauen sind. Danach fliegt er weiter zu Planet B.
Auch die Überlebenden der Schlacht (darunter auch unser Spieler 1) machen sich auf den Weg nach Planet B. Dort angekommen, würden Spieler 1 und 2 sich wiedersehen. Hier könnte es jetzt zu einem interessanten Dialog kommen. Spieler 1: "Man, was für eine geile Schlacht da im Asteroidenfeld!" und Spieler 2 fragt verdutzt: "Welche Schlacht?".
Wir sehen also, dass die Flexibilität des Systems, wie wir sie oben beschrieben haben, durchaus zu Situationen führen kann, wo sich das Erlebnis der Spieler, die durch den gleichen Raum geflogen sind, himmelweit unterscheiden kann. Wie viel Einfluss dies auf die Glaubhaftigkeit der Welt letztlich haben wird, kann heute noch niemand sagen. Das müssen wir erstmal live sehen.
Das Beispiel oben könnte man jetzt noch weiter spinnen. Zum Beispiel könnte die Instanz mit der Schlacht irgendwann voll sein, aber weiter PvP-orientiere Spieler ins Asteroidenfeld kommen. Dann würde der Universe/Star System Server eine weitere PvP-Instanz eröffnen. Kommen weitere PvE-Spieler, dann können sie einfach in die vorhandene PvE-Instanz von Spieler 2.
Worum geht es im dritten Teil?
In der nächsten Ausgabe dieser Artikelserie zur Instanzierung in Star Citizen werden wir uns die Planetenoberflächen genauer anschauen. Auch dort gibt es einige Besonderheiten, die es herauszuarbeiten gilt. Ich bin mir noch nicht sicher, ob ich schon im dritten Teil die Auswirkung von Instanzierung auf größere Flotten besprechen werde. Dies kommt dann aber spätestens im vierten Teil.
Superklasse erklärt, Jessie!
AntwortenLöschenSelbst ich hab es kapiert! :-)
LG,
Raomir
Top, danke.
AntwortenLöschenToll
AntwortenLöschenTop, vielen Dank für die ausführliche Erklärung.
AntwortenLöschen