Iris führt mehrere neue Konzepte in das Replikationssystem von Unreal Engine (UE) ein. Diese Seite ist ein Glossar von Begriffen, die häufig in Verbindung mit der Organisation und Funktionsweise des Iris-Replikationssystems verwendet werden.
Glossar
- Actor-Replikationsbrücke
Die Actor-Replikationsbrücke implementiert das Replikationsbrücken-Interface. Die Actor-Replikationsbrücke erstellt Replikationsprotokolle und Replikationsinstanzprotokolle aus Actors und Actor-Komponenten. Es implementiert auch Code, um Zustandsdaten von Eigenschaften abzufragen und erforderliche alte Callbacks auszulösen.
- Daten-Stream
Ein Daten-Stream ist das Iris-Äquivalent eines Datenkanals im generischen Replikationssystem. Daten-Streams sind für das Serialisieren von Daten verantwortlich. Sie können einen Daten-Stream auch nutzen, um spezifische Datenbereitstellungsgarantien für verschiedene Datentypen zu implementieren.
- Eigenschaftsreplikationsfragment
Ein Eigenschaftsreplikationsfragment ist das besitzende Objekt für einen Eigenschaftsreplikationsstatus.
- Eigenschaftsreplikationsstatus
Ein Eigenschaftsreplikationsstatus ist ein dynamischer Zustand, der zur Interaktion mit dem aktuellen Reflexionssystem verwendet wird.
- Internes Replikationssystemelement
Das interne Replikationssystemelement ist die interne Schnittstelle für das Replikationssystem und ist nur für internen Iris-Code freigegeben.
- Netz-Bit-Stream-Leser
Ein Netz-Bit-Stream-Leser ermöglicht die effiziente Deserialisierung von Bits aus einem Speicherpuffer.
- Netz-Blob
Netz-Blob ist die Basisklasse für etwas, das mit einem Objekt replizieren werden kann. Derzeit gibt es nichts außerhalb von Iris, das davon Gebrauch macht, aber Sie können es verwenden, um die meisten Daten- oder Eventtypen zu senden, zum Beispiel Debug-Daten oder RPCs.
- Netz-RPC
Ein Netz-Blob, der speziell für die Verarbeitung von Standard-RPCs implementiert wurde.
- Netz-RPC-Handler
Der Netz-RPC-Handler verarbeitet die Logik für die Erstellung und Verarbeitung empfangener RPCs. Zum Beispiel bestimmt der Netz-RPC Handler, ob ein Actor noch gültig ist, um darauf einen RPC aufrufen.
- Netz-Token
Ein Netz-Token ist ein Netzwerk-Objekt für verschiedene Datentypen, die nicht unbedingt mit der Vernetzung zu tun haben. Aber Sie möchten vielleicht trotzdem zwischen Server und Client kommunizieren können.
Beispiele, was als Netz-Token ausgedrückt werden kann:
Strings
Daten-Blobs
Pakete
Sie können Token-Daten an Clients kommunizieren, entweder explizit über einen Netz-Token-Daten-Stream, beim Start geladen oder während der Serialisierung exportiert. Sie können den Netz-Token-Manager abfragen, um den Status aller Token am Remote-Ende zu erfahren.
- Netzobjekt
Ein Netzobjekt ist die interne Vernetzungsdarstellung eines replizierten Objekts, instanziiert im Gameplay-Code. Ein Netzobjekt ist einem eindeutigen Netzreferenz-Handle und einem internen Index zugeordnet.
- Netzreferenz-Handle
Ein Netzreferenz-Handler ist eine eindeutige Kennung für ein Objekt auf dem Server und den Clients, dessen Konzept einer NetGUID (Network Globally Unique Identifier; netzwerkglobal eindeutige Kennung) ähnelt. Netz-Handles werden für Objektreferenzen auf folgende Elemente verwendet:
Statisch adressierbare Objekte
Replizierte Objekte
- Netzreferenz-Handle-Manager
Der Netzreferenz-Handle-Manager weist allen Netzobjekten interne IDs und den Statusspeicher zu.
- Netztoken-Daten-Stream
Der Netz-Token-Daten-Stream serialisiert Netz-Token-Daten.
- Objektreferenz-Cache
Der Objektreferenz-Cache speichert Referenzen auf replizierte und statisch benannte
UObjects. Dies funktioniert auf ähnliche Weise wie der NetGUID-Cache und die Client-Paketzuordnung.- Replikations-Daten-Stream
Der Replikationsdaten-Stream ist für das Serialisieren und Deserialisieren der Replikationsdaten verantwortlich.
Die Implementierung ist in zwei Teile unterteilt:
Replikationsleser
Replikationsschreiber
- Replikations-Instanzprotokoll
Für jede Objektinstanz wird ein Replikationsinstanzprotokoll erstellt. Es ist ein Array aller Replikationsfragmente für eine Instanz und wird immer dann verwendet, wenn Statusdaten zwischen dem Gameplay-Code und dem System ausgetauscht werden.
- Replikationsbrücke
Die Replikationsbrücke überträgt Daten zwischen Gameplay-Code und Vernetzungscode. Die Replikationsbrücke bietet die typspezifische Schnittstelle für das Spiel und hat die Funktionalität, um Replikationsprotokolle und Replikationsinstanzprotokolle aus den Daten zu erstellen. Die Replikationsbrücke ist auch verantwortlich für die Instanziierung von Gameplay-Objekten (wie Actors und andere unterstützte Typen) auf Anfrage vom Replikationssystem.
- Replikationsdatensatz
Ein Replikationsdatensatz ist eine Liste von laufenden Daten vom Replikationsschreiber. Ein wichtiger Aspekt des Replikationsschreibers ist die Nachverfolgung aller laufenden Daten. Dies ist so festgelegt, damit Schritte getroffen werden können, um entsprechend und effizient zu reagieren, wenn Daten verloren gehen oder übermittelt werden. Der Replikationsdatensatz pflegt verknüpfte Listen für alle Objekte mit laufenden Daten, die noch auf die Übermittlungsbenachrichtigung warten.
- Replikationsfragment
Ein Replikationsfragment ist ein besitzendes Objekt für einen Replikationsstatus. Um Daten zwischen dem System und dem Gameplay-Code hin und her zu übertragen, müssen Replikationsstatus an ein besitzendes Objekt gebunden werden. Replikationsfragmente fungieren als besitzendes Objekt für den Replikationsstatus.
- Replikationsleser
Ein Replikationsleser ist ein internes System, das für die eingehenden Daten verantwortlich ist. Es steuert die Deserialisierung und Statusanwendung mithilfe der Replikationsbrücke.
- Replikationsprotokoll
Ein Replikationsprotokoll definiert, wie Daten für ein Objekt repliziert werden. Ein Replikationsprotokoll ist ein Array aller Replikationsstatus, welche die zu replizierenden Daten beschreiben.
- Replikationsschreiber
Ein Replikationsschreiber ist dafür verantwortlich, den Status aller replizierten Objekte für alle Verbindungen zu verfolgen und zu serialisieren.
Diese umfassen Folgendes:
Planung der Replikationsdaten basierend auf:
Priorität
Planungspriorität
Replikationsstatus replizierter Objekte
Abhängigkeiten
Teilobjekte
Serialisierung
- Replikationsstatusbezeichner-Builder
Ein Replikationsstatusbezeichner-Builder erstellt Replikationsstatusbezeichnungen für alle unterstützten Typen basierend auf Reflexionsdaten.
- Replikationssystem
Das Replikationssystem ist die primäre Schnittstelle für die Interaktion mit Iris im Gameplay-Code.
- Replikationszustand
Ein Replikationsstatus ist eine Struktur, die Daten enthält, die repliziert oder über das Netzwerk übertragen werden sollen.
- Replikationszustands-Deskriptor
Eine Replikationsstatusbezeichnung beschreibt alle Aspekte eines Replikationsstatus, darunter auch:
Speicher-Layout für interne und externe Darstellungen.
Wie die einzelnen Mitglieder des Status serialisiert werden.
Erforderliche Operationen.
- Schnelles-Array-Replikationsfragment
Ein Schnelles-Array-Replikationsfragment ist das besitzende Objekt für einen Schnelles-Array-Replikationsstatus. Dies ist eine spezifische Implementierung eines Replikationsfragments für schnelle Arrays.
- Typisierter Replikationsstatus
Ein typisierter Replikationsstatus ist ein Replikationsstatus, der auf einer Struktur mit Zugangskennungen für alle Mitglieder und internen Mitglieder basiert, um die ID des besitzenden Netzobjekts zusammen mit einem Bit-Feld zu speichern, das die Veränderung jedes Mitglieds verfolgt.
- Änderungsmaske
Eine Änderungsmaske ist ein Bit-Array, mit dem die Veränderung replizierter Daten nachverfolgt wird. Iris verwendet Änderungsmasken auf zwei Arten:
Alle Replikationszustände verfügen über Inline-Speicher, der für die lokale, zwischenspeicherfreundliche Verfolgung geänderter Mitglieder verwendet wird.
Das Replikationssystem pflegt kombinierte Änderungsmasken für alle Replikationszustände in Replikationsprotokollen.