Diskussionsrunde: Spannende Diskussionen rund um Star Citizen.

Jeden Freitag ab 20 Uhr.

Roedas Dienstagsrunde: Star Citizen im Detail.

Jeden Dienstag ab 20:15 Uhr.

Home || Star Citizen Blog Posts

Instanzierung in Star Citizen - Teil 1

Es hat etwas länger gedauert, als ich es erwartet hatte, den Artikel zur Instanzierung fertig zu schreiben. Da ich immer noch daran arbeite und er immer länger wird, habe ich mich jetzt dazu entschlossen, den Artikel in mehreren Teilen zu veröffentlichen. Den ersten Teil bekommt Ihr heute. Hierin enthalten ist eine Zusammenfassung aller Informationen, die ich zum Thema Instanzierung in Star Citizen finden konnte.

Update


In 10 for the Chairman Episode 77 hat Chris Roberts neue Informationen zum Instanzierungsystem preisgegeben. Ihr findet die neusten Informationen hier:



Da in den folgenden Abschnitten größtenteils frühere Aussagen der Entwickler beschrieben werden, hat er immer noch einen Informationswert, wenn man sich für die Entwicklung des Systems interessiert.


Motivation



Einige von Euch fragen sich vielleicht, warum ich dieses Thema so ausführlich bearbeite. Ein Hauptgrund für den Artikel ist, dass ich immer wieder im Forum, in Diskussionen und in Fragen an die Entwickler sehe, dass die verrücktesten Vorstellungen zu diesem System bei den Spielern existieren, die mit der Realität von Server-, Netzwerk- und Client-Limitierungen wenig zu tun haben.

Da wird von riesigen Raumschlachten a la Eve Online geträumt, oder davon, dass es jeden Winkel des Universums nur einmal gibt (sprich keine parallelen Dimensionen des gleichen Ortes). Dann gibt es Videos auf Youtube, die vermeintlich Instanzierung erklären, aber einfach nichts mit Aussagen der Entwickler zu tun haben und damit falsche Erwartungen wecken.

Und dann kam dieses Jahr noch das Zonensystem dazu, wo sowohl die Entwickler als auch die Presse  und letztlich die Spieler einfach Instanzierung und Zonensystem in einen Topf geworfen haben. Dann haben alle mal kräftig umgerührt und jeder hat sich wieder seine eigene Wahrheit herausgefischt, die natürlich Meilenweit von der Wirklichkeit entfernt war.

Deshalb denke ich, dass es angezeigt ist, dass wir uns das Ganze Thema faktenorientiert ansehen, also Aussagen der Entwickler in den Mittelpunkt stellen. Darauf aufbauend können wir dann sehen, was wirklich gebaut wird und wie es funktionieren wird. Mit diesem Wissen sollte es dann möglich sein, mit sinnvollen Erwartungen an den Multiplayer-Part heranzugehen. Mir geht es also in erster Linie darum, Enttäuschungen vorzubeugen.


Leseempfehlung


Bevor wir in die Details gehen, möchte ich Euch raten, den Artikel zum Thema Zonensystem, den ich im November geschrieben habe, noch einmal zu lesen, da vor allem zum Ende dieses Blogeintrags immer wieder Bezug auf das Zonensystem genommen wird. Hier der Link zum Artikel:


Nun geht es aber los zur Instanzierung. Das System, welches sich Chris Roberts ausgedacht hat, hört sich sehr vielversprechend an. Wenn man es in wenigen Worten zusammenfassen will, dann verwaltet ein einziger zentraler Universe Server die Spieler, das Wirtschaftssystem und ähnliches, während dynamisch gestartete Instanzen immer dort zum Einsatz kommen, wo zu viele Spieler an einem Ort sind. Aber schauen wir uns das ganze mal anhand der Quellen im Detail an.


Rückblick



Noch während der ursprünglichen Kickstarter-Kampagne hat Chris Roberts die Grundzüge des persistenten Universums und auch der Instanzen skizziert. Ihr könnt hier den Comm-Link vom 11. November 2012 selbst nachlesen. Ich starte mit diesem ersten Post von Chris Roberts zu diesem Thema, weil Ihr so sehr schön seht, dass sich über die letzten drei Jahre am Konzept und den Ideen zur Umsetzung nur sehr wenig geändert hat.

Chris Roberts beschreibt zunächst einmal, was ihn an herkömmlichen MMOs prinzipiell stört: Die Einteilung der Spieler auf verschiedene Server. Bei WoW zum Beispiel muss man sich für einen Server entscheiden. Wenn später ein Freund das Spiel auch anfangen möchte, kann es sein, dass auf dem Server keine Charaktere mehr erstellt werden können (was mir selbst bei WoW auch passiert ist). Dann kann man nicht zusammenspielen.

Diese Problematik möchte Chris Roberts mit einem einzigen, persistenten Universum lösen, in dem es nur einen Server gibt, der die Spieler verwaltet. Diesen Server nennt er Universe oder Galaxy Server.

Klar ist aber auch, dass bei der Grafikqualität von Star Citizen und der Beschränkung der Bandbreite von Internetverbindungen es nicht möglich ist, Tausende von Spielern bzw. Raumschiffen im gleichen Teil des Raumes (zum Beispiel um eine Raumstation wie Port Olisar in Alpha 2.0) darstellen zu können.

Um dies zu lösen, spricht Chris Roberts von sogenannten Orbit bzw. Battle Instanzen, die temporär bestehen und eben nur die technisch mögliche Anzahl an Spielern aufnehmen können. Orbit Instanzen beinhalten den Raum um einen Planeten, während Battle Instanzen, wie der Name schon sagt, für Kämpfe bzw. Encounter erstellt werden. Die Aufteilung ist also wie folgt:


  • Universe Server: Administriert die Spieler und koordiniert, welche Spieler in welche Battle Instanz kommen. Er kümmert sich um keinerlei Echtzeit-Action. Das macht die Skalierung auf Millionen von Spielern möglich.
  • Orbit/Battle Instanzen: Werden temporär erzeugt und kümmern sich um Echtzeit-Action (so wie die Instanzen im Arena Commander). Wenn Instanzen voll sind, dann werden weitere Instanzen, der gleichen Umgebung aufgemacht.
  • Planetenoberflächen: Diese Instanzen bilden die Oberfläche der Planeten ab. Sobald mehr Spieler auf einem Planeten sind, als in eine Instanz passen, werden parallele Instanzen der gleichen Planetenoberfläche eröffnet. Es soll aber die Möglichkeit geben, mit In-Game-Mechaniken eine komplette Liste aller Spieler auf dem Planeten zu bekommen (zum Beispiel durch Ansprechen des Kellners in der Bar).


Wie Ihr weiter unten Lesen werdet, hat sich an diesem generellen Konzept für Star Citizen bis heute nichts wesentliches geändert, außer dass sich ein paar Namen geändert haben. Es wurden hier und da Konzepte vorgestellt, die für mehr Spieler pro Instanz sorgen können, wie zum Beispiel das Zonensystem.

Chris Roberts geht dann weiter darauf ein, wie ein Flug von einem Planeten zu einem anderen aussehen wird. Auf der Sternenkarte wählt man das Ziel. Dann berechnet der Navigationscomputer den Kurs und man startet den Auto-Piloten zum nächsten Nav-Punkt. Mit dem Start des Auto-Piloten entscheidet der Galaxy Server, ob man direkt zum Nav-Punkt kommt, oder ob man auf dem Weg in eine Battle Instanz geworfen wird.

Ist letzteres der Fall, dann kann es dort sowohl friedliche, als auch feindliche NPC sowie andere Spieler geben, je nachdem, was der Galaxy Server entschieden hat. Diese Entscheidung hängt von verschiedenen Faktoren wie Skill-Level, gerade laufende Missionen (Quests), Ping und vielem mehr ab. Ich weiß jetzt nicht mehr, ob es die erste Nennung des PvP-Sliders war, aber die PvP-Einstellung für den Charakter nennt Chris Roberts in diesem Artikel auch als einen Einflussfaktor.

Sobald der Galaxy Server die Entscheidung getroffen hat, wird entweder eine neue Battle Instanz erstellt oder man kommt in eine bestehende Instanz - falls es an diesem Punkt im Universum schon eine Instanz gibt und noch Plätze frei sind.

In jedem Fall werden in der Instanz Plätze für Freunde reserviert, die man über die Freundesliste zu Hilfe rufen kann. Wenn sie schon im gleichen System sind, dann können sie direkt zu Hilfe kommen. Das bedeutet, sie bekommen einen Nav-Punkt, der zu der Battle Instanz führt, in der man Hilfe braucht. Sind sie weiter weg (anderes System), dann kann es vielleicht zu spät sein, bis sie in dem richtigen System ankommen (sie können ja genauso in Battle Instanzen aufgehalten werden).

Für Chris Roberts gibt dieses System aus einem einzigen Universe Server und vielen Instanz Servern die Möglichkeit, die Spieler nicht auf verschiedene parallele Kopien des gesamten Star Citizen Universums aufteilen zu müssen, sondern in einem holistischen Universum, welches die Spieler nur dann in verschiedene Instanzen trennt, wenn zu viele Spieler auf einem Ort der Spielwelt zusammen kommen.


Informationssammlung



In den letzten drei Jahren gab es immer wieder Aussagen von Chris Roberts oder seinen Angestellten zu diesem Thema. Ich habe versucht so viele wie möglich davon zu finden, um hier ein möglichst komplettes Bild der Lage darstellen zu können. Solltet Ihr weitere Quellen kennen (es zählen nur Aussagen von den Entwicklern selbst), dann schreibt sie bitte in die Kommentare.

Starten wir mit den offiziellen Comm-Link-Artikeln. Hier gibt es insbesondere die 10 For The Chairman Videos, in denen es immer wieder um Instanzierung ging. Ich habe mir alle diese Episoden noch einmal angeschaut und im Folgenden aufgelistet. Ihr findet immer die Minutenangabe, um selbst nochmal reinhören zu können. Natürlich habe ich die wichtigsten Punkte aus jedem Video aufgeführt. Das ganze ist der Einfachheit halber chronologisch sortiert.


  • 10 For The Chairman Episode 33 (Minute 14:17): Viele Instanzen pro Sternensystem, um eine große Zahl von Spielern in einem System zu erreichen. Keine riesigen Schlachten mit tausenden Schiffen wie bei Eve Online.
  • 10 For The Chairman Episode 42 (Minute 19:50): Kontrolle über ein Sternensystem wird für Spielergruppen extrem schwer zu erreichen sein. In eine Instanz können von einer Gruppierung nur eine gewisse Anzahl von Spielern (der Rest wird für Freunde und Gegner freigehalten). Große Gruppen werden so auf verschiedene Instanzen des gleichen Raumes aufgeteilt werden müssen. Außerdem nennt Chris Roberts als Beispiel ein Asteroidenfeld, in dem in einer Instanz eine Schlacht stattfinden kann, während in einer parallelen Instanz (er nennt es eine parallele Diminsion) ein Bergbauschiff ganz allein die Asteroiden beackert und von der Schlacht nichts mitbekommt. Das Ergebnis beider Aktionen (Schlacht und Bergbauoperation) wird dann dem Universe Server gemeldet, der dann beim Erstellen der nächsten Instanz zum Beispiel weniger abbaubare Minerale generiert. 
  • 10 For The Chairman Episode 43 (Minute 11:25): Der Raum um Planeten wird in mehrere parallelen Instanzen geteilt. Selbstredend kann man nur die Spieler in der eigenen Instanz sehen. Sind also schon 50 Spieler da und 50 ist das Limit, dann wird eine neue Instanz für den 51ten Spieler aufgemacht. Außerdem soll es bestimmte Gebiete im Weltraum geben, die nicht instanziert sind (er nennt Raumstationen, die von Spielern erobert werden können).
  • 10 For The Chairman Episode 44 (Minute 10:42): Eine Instanz erstreckt sich über ein Stück Weltraum und beinhaltet immer alle 3D-Umgebungen darin. Insbesondere gehören dazu auch die Innenräume der Schiffe in der Instanz.
  • 10 For The Chairman Episode 53 (Minute 9:40): Ein Bengal Carrier ist ein sogenanntes persistentes Objekt, welches nicht instanziert werden kann. Er wird also nur in einer Instanz zu sehen sein. Auch bei Raumstationen und Asteroidenbasen, die von Spielern erobert werden dürfen, handelt es sich um persistente Objekte. Sie werden also ebenfalls nicht instanziert. Chris Robjerts sagt, dass sie sich noch eine In-Game-Mechanik ausdenken müssen, die dafür sorgt, dass Spieler nicht in diese Bereiche des Weltraums fliegen können, wenn sie voll sind. Außerdem spricht er über den Orbit um den Planeten Erde. Dort müssen sie mit sehr hohen Spielerzahlen rechnen, die in einer Instanz niemals bearbeitet werden könnten. Es wird hier also von dem Orbit um die Erde mehrere Instanzen geben - die aber vielleicht nicht überlappend sein müssen. Das würde bedeuten, dass die Instanzen um den Planeten verteilt werden und so keine Kopien des gleichen Raumes angelegt werden müssten. (Er geht leider nicht mehr ins Detail, wie so ein System funktionieren soll. Für mich ist so etwas sehr schwer vorstellbar. Möchte ich zum Beispiel einmal um den Planeten fliegen, um von New York nach Shanghai zu kommen, müsste ich auf dem Weg Instanzen wechseln. Was passiert, wenn eine Instanz auf dem Weg schon voll ist, dann MUSS das Spiel eine parallele Instanz dieses Raumes für mich eröffnen, da ich sonst nicht weiterfliegen kann. Dann wären die Instanzen aber wieder am gleichen Ort, also parallel zueinander. Ich denke deshalb, dass er gemeint hat, dass nicht alle Instanzen am gleichen Ort sein müssen, aber es am gleichen Ort sehr wohl mehrere Instanzen geben kann.)
  • 10 For The Chairman Episode 61 (Minute 18:16): Unterschiedliche Instanzen werden unterschiedliche Limits haben. Im Weltraum kommt es auf die Anzahl von Raumschiffen an. Auf Planetenoberflächen und auf FPS-Karten werden die Limits aber höher liegen, da die Netzwerkbelastung durch Charaktere geringer sein wird, als die der Raumschiffe. Außerdem spricht er über die Möglichkeit, das ein Instanz-Server aus mehreren physischen Servern besteht, die sich die Arbeit teilen könnten. Da sind sie aber noch am Anfang, wie viel das bringen wird, kann noch nicht gesagt werden. 
  • 10 For The Chairman Episode 64 (Minute 14:30): Bei der Landung auf Planeten wird die Landezone instanziert sein. Mit Landezone sind die eigentlichen Landeplätze gemeint, wo die Raumschiffe landen. In ArcCorp sieht man jetzt schon einige davon. Landet man auf einem Planeten, geht man als erstes durch die Sicherheitskontrolle. Diese Tür ist letztlich dafür da, um dem Spiel anzugeigen, dass jetzt die eigentliche Instanz der Planetenoberfläche geladen werden muss. Es gibt hier also nicht nur die Instanzierung der Planetenoberfläche selbst, sondern zusätzlich noch eine Instanzierung der Landezone. (Was auch sinnvoll ist, wenn man sich überlegt, dass in einer solchen Instanz wahrscheinlich wesentlich mehr Spieler sind, als es Landeplätze für die Raumschiffe gibt.) Will man dann mit einer Gruppe anderer Spieler zusammen in ein Schiff, um den Planeten zu verlassen, kommen alle diese Spieler in eine Instanz der Landezone, um das Schiff besteigen zu können. Chris Roberts schließt aus, dass es riesige Landezonen mit 50 oder mehr Plätzen für Schiffe geben wird. Einzig die großen Planeten könnten über größer dimensionierte Landezonen verfügen. Aber auch dort wird man um die Instanzierung nicht herumkommen.
  • 10 For The Chairman Episode 65 (Minute 19:20): Es geht wieder um die Möglichkeit, das ein Instanz-Server aus mehreren physischen Servern besteht, die sich die Arbeit aufteilen. Sie sind was das Angeht noch ganz am Anfang. Selbst wenn die Server-Seite so gelöst werden könnte, kommt immer noch das Problem auf der Client-Seite hinzu, wo einfach die Grafikkarte irgendwann an ihre Grenzen kommt, wenn zu viele Objekte angezeigt werden sollen. Es ist deshalb noch nicht genau zu sagen, wie viele Schiffe am Ende pro Instanz maximal möglich sein werden.


Neben Chris Roberts Aussagen möchte ich noch auf Statements der Entwickler im Forum eingehen. Da dort diejenigen antworten, die die Systeme im Moment bauen, bekommen wir aus dieser Quelle, die technisch verlässlichsten Antworten, wie das System in der näheren Zukunft aussehen wird.


  • Interview mit Travis Day (Minute 29:57): Travis Day hat leider die Frage nicht richtig verstanden, in der es darum ging, ob zwei Instanzen am gleichen Ort sich irgendwie gegenseitig sehen können. Er erklärt dagegen noch einmal, dass sie ein transparentes Instanzierungssystem haben wollen, von dem der Spieler letztlich nichts mitbekommt. Wenn man durchs All fliegt rechnet der Universe Server ständig aus, in welche Instanz man kommen wird. Dies ist von verschiedenen Faktoren abhängig. Ist die Entscheidung getroffen, dann wird eine Instanz des Stücken Weltraum eröffnet oder man kommt in eine bestehende Instanz. Danach erklärt er eigentlich ziemlich gut das Zonensystem, vermischt aber Instanzierung und Gameserver, die Subzonen verwalten, miteinander, so dass man genau zuhören muss, um nicht den Überblick zu verlieren.
  • devoinc im Forum (19. Mai 2015): Beim Landen auf Planeten wird es mehrere parallele Instanzen der Oberfläche geben.
  • aperuyera_CIG im Forum (9. Juli 2015): Der General Instance Manager (GIM) entscheidet anhand verschiedener Faktoren in welche Instanz man kommt. Wenn also ein Planetenorbit mehrere Instanzen hat, dann wird der GIM entscheiden, welcher Spieler in welche dieser Instanzen fliegen wird. Er schreibt auch von der Möglichkeit, mehrere physische Server zusammenzuschließen, die dann die Instanz gemeinsam verwalten. Auch hier aber wieder der Hinweis, dass dies nicht unendlich skalierbar sein wird (Grafik- und Netzwerklimits). Ein sehr wichtiger Punkt ist folgender: Um einen Planeten gibt es zwei parallele Instanzen. Schiff A und B sind in je eine der beiden. Fliegen sie beide in die gleiche Richtung vom Planeten weg, verlassen sie irgendwann die Orbitinstanzen um den Planeten und können durchaus in die gleiche Instanz des Raumes kommen, zu dem sie fliegen. Das System ist im höchsten Maße flexibel. Die Zuordnung zu Instanzen ist nicht fest. Sie wird immer wieder neu vom GIM und dem Universe Server berechnet.
  • aperuyera_CIG im Forum (10. Juli 2015): Wenn zwei Flotten a 100 Schiffe aufeinander zufliegen, dann wird der GIM dafür sorgen, dass sie sinnvoll auf zwei oder mehr Instanzen aufgeteilt werden, lange bevor sich die Flotten sehen können.
  • aperuyera_CIG im Forum und hier (10. Juli 2015): Hier erklärt er sehr gut den Unterschied zwischen Instanzen, Zonen und physischen Servern.
  • aperuyera_CIG im Forum (2. September 2015): Es gibt eine 1:n Beziehung zwischen Instanzen und Zonen. In einer Instanz können viele Zonen sein. Wird die Instanz auf einen größeren Server verlagert, dann werden auch alle Zonen mit auf den neuen Server kopiert. Da Zonen insbesondere die Innenräume von Schiffen sind, muss dies auch so sein, da sonst der Innenraum in einer anderen Instanz liegen würde, als der Weltraum um das Schiff, was laut Entwickler nicht geht.


Wie Ihr in den obigen Fundstellen seht, hat sich prinzipiell nicht viel verändert im Vergleich zu dem, was Chris Roberts 2012 als Ziel beschrieben hat. Es gibt jetzt noch einen General Instance Manager und das Zonensystem hilft bei der optimalen Nutzung der Ressourcen. Das generelle Konzept einen einheitlichen Universe Server für die Spielerverwaltung zu haben und immer dort Instanzen zu nutzen, wo zu viele Spieler auf einem Haufen sind, hat sich nicht verändert.


Worum geht es im zweiten Teil?



Wie Eingangs geschrieben, kann man zu dem Thema sehr viel schreiben (und da bin ich noch dabei). Im zweiten Teil werde ich Euch anhand der hier präsentierten Informationen darstellen, wie das System wahrscheinlich funktioniert. Dafür habe ich mir verschiedene Beispiele überlegt bzw. im Forum gefunden, anhand derer es für jeden nachvollziehbar sein sollte (hoffe ich jedenfalls), wie das System funktioniert und welche Auswirkungen Instanzierung auf das Spielgeschehen haben könnten.

Hier der Link zum zweiten Teil: Instanzierung in Star Citizen - Teil 2


6 Kommentare:

  1. Ein großartiger Artikel. Danke für diesen Quell der Information!

    AntwortenLöschen
  2. TOP! Freue mich schon auf den zweiten Teil.

    AntwortenLöschen
  3. Ein Thema, dass spannend bleibt und uns noch lange verfolgen wird. Super recherchiert, zudem nicht nur mit Quellenangaben, sondern obendrein auch noch mit den passenden links. Besser geht's nicht!
    Respekt! Da hat der Jessie mal wieder einen rausgehauen!
    Danke dafür und weiter so!

    LG,
    Raomir

    AntwortenLöschen
  4. Kann mich Raomir da nur anschließen ^^

    AntwortenLöschen
  5. Danke, 10 von 10 Punkten für die einfache Erklärung eines komplexen Themas

    AntwortenLöschen
  6. Vielen Dank für die Erläuterungen! Einfach Super:)

    AntwortenLöschen