Around the Verse – Serialized Variables

Willkommen zu einer weiteren Episode von Around the Verse (AtV), dem wöchentlichen Format mit den aktuellsten Informationen zu Star Citizen. Jede Woche erhalten wir darin einen tieferen Einblick in ein Thema der Entwicklung des Spiels. Diese Woche geht es um serialisierte Variablen.


Einführung

  • Die Einführung startet bei Minute 0:16.
  • Gastgeber sind Director of SC and SQ42 Chris Roberts und EU Studio Director Erin Roberts.
  • Erin hält sich momentan in LA auf, um gemeinsam mit Chris und dem LA-Team am Release von 3.0, Squadron 42 und allem, was darauf folgen wird, zu arbeiten.

Studio Update: Los Angeles

  • Das Studio-Update startet bei Minute 1:12.
  • Senior Producer Eric Kieron Davis führt durch das Studio Update aus Los Angeles, Kalifornien.
  • Eric verbrachte einen Teil es letzten Monats in Frankfurt und Wilmslow, ist aber froh, wieder daheim zu sein.

 

  • Narrative
    • Eine riesige Anzahl an Komponentenbeschreibungen wird fertiggestellt.
    • Auch verbal bekommen die NPCs Leben eingehaucht: Für die 3.0-Voicepacks wurden knapp 2800 Zeilen aufgenommen.
    • Das Persistent Universe Character tracking Sheet wurde erschaffen, um die Details aller Dialoge zu speichern.
    • Die einzelnen Orte und Umgebungen wurden überprüft und es wurde notiert, welcher Ort was benötigt, um immersive Geschichten zu erzählen.
  • Fracht
    • Die Entwicklung der Cargo-Grids wurde erweitert, um das visuelle Element dieser Mechanik bereitzustellen.
    • Die Güter, die ein Schiff an Bord hat, werden sich als Cargo-Container in der Ladebucht des Schiffes manifestieren.
    • Die Ladebucht ist in ihrer Größe begrenzt, was wiederum durch die Cargo-Grids die Menge der mitnehmbaren Güter begrenzt.
    • Spieler werden in der Lage sein, kleinere Fahrzeuge und lose Fracht im Laderaum zu verstauen, jedoch sollten sie dabei im Hinterkopf behalten, dass auch dies die Anzahl der verfügbaren Cargo-Grids für Waren verringert.
  • Engineering
    • Die Implementierung der Objekt-Container des Sonnensystem-Contents in eine Hierarchie ist fertig.
      • Diese Objekt-Container wurden editierbar gemacht, sodass sie innerhalb eines Levels verändert werden können.
    • Die Schiffsschadenszustände wurden überarbeitet, sodass sie nun wesentlich einfacher zu erstellen und reparieren sind.
    • Das IFCS-Update wurde in ein Batch-Update konvertiert, da es nicht im Lockstep mit der Physik sein muss.
    • Der Quantum Drive 2.0 wurde fertiggestellt.
      • Die Komponenten wurden überarbeitet und neue Funktionen hinzugefügt.
      • Das System ist nun bereit für Design, Art und UI.
  • Schiffe
    • Die RSI Aurora ging durch die letzte Art-Überprüfung.
      • 14 verschiedene Skins für die Designer wurden angelegt.
    • Die Anvil Terrapin hat ihre Art-Greybox-Phase beendet und geht in die letzte Art-Phase. Außerdem wurde sie an das Tech-Team für die Tech-Greybox abgegeben.
    • Mit der bald kommenden Einführung von Item System 2.0 war es nötig, die Schiffsstatusseite mal anzupassen.
  • Tech Art & Animation
    • Da das Release von 3.0 immer näher rückt, werden die Codes nochmal durchgesehen, um Stellen zu finden, die die Performance durch Verbesserungen massiv steigern könnten.
    • Dazu nutzen sie zum Beispiel “Statoscope”, ein Tool, das frame-basiert Daten aufzeichnet und diese in Graphen umwandelt und erfasst.
      • Damit lassen sich zum Beispiel Fps-Zahlen aufzeichnen und über deren Veränderungen im Verlauf eines Spieles Auskunft zu geben.
    • Das Format, in dem Animationen gespeichert werden, wurde verbessert.
      • Früher konnte es im schlimmsten Fall bis zu 50 Minuten dauern, bis eine Szene je nach Größe und Anzahl der Charaktere in Maya geladen war.
      • Nun wird dies durch die  Verbesserungen bis zu 82 Prozent verbessert.
    • Das weibliche Transfer-Mesh wurde erstellt, der männliche aktualisiert.
    • Ein Bug bei den Augenlid-Vertices wurde gefunden und ausgebessert.
  • Charaktere
    • Zahllose Kostüme for SQ42 wurden fertiggestellt.
    • Ein weiblicher Charakter-Asset ist fertig und bereit fürs Texturieren.
    • OMC-Unteranzüge sind ebenfalls fertig und auf dem Weg zur Textur.
    • Levski-spezifische NPCs werden texturiert , bevor sie geriggt und implementiert werden.
    • Die “alten” UEE- und Piratenrüstungen werden überarbeitet, um sie auf den aktuellen Qualitätsstandard zu bringen.
    • Ausgesuchte Haarschnitte und Augenveränderungen werden mit 3.0 kommen.
    • Die männliche leichte Rüstung, die männliche Deckcrew-Uniform, die leichte weibliche Rüstung und der weibliche Explorer-Suit sind allesamt implementiert.

Serialized Variables

  • Network Solutions For A Complex Universe startet bei Minute 13:09.
  • Lead Network Programmer Clive Johnson aus dem UK-Studio war bei der Aussicht, die Netzwerkstruktur für Star Citizen aufzustellen, geschockt.
    • Dann nahm er jedoch das riesige unmögliche Problem und teilte es in mehrere kleine unmögliche Probleme.
  • Sämtliche, tausende von Assets im Spiel werden tausende Male in bestimmten Zuständen gebraucht.
  • Obwohl es 60 Programming Engineers  und 6 Networking Engineers gibt, von denen lediglich drei daran arbeiten, dass das Spiel im Multiplayer funktioniert, muss sich jeder dieser Programmierer vergewissern, dass sein Code auch im Multiplayer funktioniert.
  • Das Application Programmer Interface (API) erlaubt es den Entwicklern, direkt zu sagen, was sie tun wollen, anstatt zu schreiben, wie es das tun soll.
  • Ähnlich wie ein Fahrerassistenzsystem im Auto, kann das API Schritte unternehmen, um die Fehler eines Programmierers von einem Crash des Spiels abzuhalten.
  • APIs vereinfachen den Job des Programmierers, ähnlich wie ein selbstfahrendes Auto lediglich einen Zielort benötigt, um loszufahren.
  • Mehrspieler-Spiele sind aus Sicht eines Programmierers lediglich viele Tabellen und Werte, die miteinander und mit Objekten verbunden sind.
  • Die Tabellen helfen dabei, die Werte und deren Veränderungen über die Zeit hinweg im Auge behalten zu können.
  • Programmierer schreiben Code, der viele Tabellen betrifft, um das möglich zu machen, was der Spieler im Spiel tut und sieht.
  • Ein Mehrspieler-Modus verlangt, dass nach jeder Veränderung alle Tabellen kopiert und an alle Clients verschickt werden, um Synchronität herstellen zu können.
  • Da es hunderte dieser Tabellen gibt, die im Netzwerk synchron laufen müssen, kann regelmäßig ein Status aller Tabellen ausgesendet werden.
    • Dadurch kann es jedoch Probleme mit der Bandbreite geben.
  • Alternativ kann auch eingerichtet werden, dass eine Tabelle erst dann eine Kopie versendet, wenn sie geändert wurden.
  • Die Programmierer müssen nur noch ganz normal den Code schreiben und die Variablen der Komponente hineinschreiben.
    • Serialisation ist der Vorgang, bei dem Daten in eine Form gepackt werden, die es einfacher macht, diese über ein Netzwerk zu verschicken.
    • Das Programm muss nur die zusätzlichen  Zeilen schreiben, die die richtigen Tabellen hervorheben und dem System sagen, welche Komponente auf welches Update achten muss.
  • Vorher benötigten die Programmierer spezielle Funktionen für jede Klasse und mussten manuell auf jede Variable, die sie serialisieren wollten, achten und diese in einen Stream aufnehmen.
    • Dies führt zu unnötiger Arbeit und zu mehr Fehlerquellen.
    • Nun markieren die Programmierer Variablen nur noch als serialisiert und das Programm behandelt diese automatisch innerhalb eines einzigen Systems.
    • Eine Aufteilung in Klassen ist nicht mehr notwendig.
  • APIs erkennen automatisch, wenn etwas verändert wurde und benachrichtigen den Netcode. Sie gehen sogar so weit, dass sie automatisch den Code schreiben, um die Variablen zu serialisieren.
  • Nachrichten über Updates sind nun also weitestgehend optimiert.
  • Serialisierte Variablen funktionieren nicht im Multiplayer.
    • Anstatt Tabellen, Werte und Variablen zwischen Server und Client hin- und herzuschicken, werden diese nun in einer Datenbank oder einer Datei gespeichert.
  • Serialisierte Variablen sind ein Eckpfeiler des Persistent Universe, das darauf aufbaut, dass viele Server miteinander kommunizieren.
    • Mehrere Server können gleichzeitig eine Entity bearbeiten. Die Entscheidung, welcher Server das letzte Wort hat, wir über ein Token-System bestimmt.
    • Ein Token kann lediglich von einem Computer gleichzeitig gehalten werden.
      • Dadurch kann man die Autorität durch Variablen und Tokens genauso schnell zwischen Computern transferieren, als würde man einen Schalter umlegen.

Quelle: RSI / Relay.sc
Übersetzung: StarCitizenBase
Social Media: FaceBook | Twitter | Community Hub | Spectrum

2 Kommentare zu “Around the Verse – Serialized Variables

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert