Spender-Verzögerungsbild

Auch dies ist nicht wirklich ein Problem mit der Rückwärts-Kompatibilität, sondern war schon Teil des Early Access. Hierfür ist eine Erklärung sicher hilfreich. Spender haben aus folgendem Grund ein Verzögerungsbild: Wenn das Objekt von seiner Referenz geklont wird, braucht es ein Bild mit enthaltender Logik, um zu laufen und sicherzustellen, dass sich alles im korrekten Zustand befindet. 

Ein Beispiel:

Stellt euch vor, ihr hättet einen Schalter und eine rotierende Klinge. Der Schalter schaltet die rotierende Klinge ein. Wählt ihr nun diesen Mechanismus als Zielreferenz für einen Spender, existiert die rotierende Klinge immer noch in der Szene als Referenzobjekt für den Spender, ist aber jetzt ausgeschaltet. 

Beim Spenden eines Objekts führt das Spiel buchstäblich eine Klonen-Operation für die Referenz aus. Jetzt habt ihr also eine Kopie des Schalters und der rotierenden Klinge, aber die Klinge ist aus (Schalter nicht aktiv). Das Spenden von Objekten passiert später im Bild als der Code, der Signale über die Kabel schickt. Wenn wir also die Spender-Objekte im selben Bild zeigen würden, in dem sie gespendet werden, würdet ihr ein Bild lang eine ruhende Klinge sehen und dann im nächsten Bild – nachdem das Signal vom Schalter durch das Kabel übertragen wurde – würde sie beginnen, sich zu drehen. Um also solche Probleme zu vermeiden (und noch viel kompliziertere, bei denen mehrere Geräte, Zeitachsen usw. beteiligt sind), zeigen wir die Objekte nicht im ersten Bild, in dem sie gespendet werden. In diesem Bild generieren sie keine Physik und führen keine Logik aus (Auslösezonen/Raycasting usw.).

Außerdem gibt es ein weiteres cleveres Element im zweiten Bild, in dem das Objekt erscheint. Wenn sich der Spender ebenfalls bewegt, bemerkt man das Verzögerungsbild, da das Objekt hinter dem Spender erscheint (denkt beispielsweise an Geschosse, die aus Schiffen kommen). Um das auszugleichen, bewegen wir die Spender-Objekte im letzten Augenblick an die Stelle, an der sie erscheinen würden, wenn der Spender sie in diesem Bild gespendet hätte! An diesem Punkt werden auch alle Geschwindigkeiten neu berechnet.

Bei „Wildfire“ verliert der Charakter beim Tod zwei Leben. Das liegt daran, dass der Respawn des Charakters über einen Spender stattfindet. Die Logik im gespendeten Charakter kommuniziert nicht im ersten Bild, was dazu führt, dass das System ihn erneut tötet.

Spender-Zeitachsen: Hierfür haben wir noch kein Beispiel in den Community-Inhalten gefunden, es ist aber bei uns selbst schon aufgetreten und eine Folgewirkung dieses Verzögerungsbilds. Es ist außerdem das beste Beispiel, um das Verhalten des Spenders darzustellen.

Ein Gerät (z. B. ein NICHT-Gatter) im ersten Bild einer Zeitachse, das gespendet wird, wird nichts auslösen.

Wenn ihr wisst, dass ihr vor diesem Problem steht, ist es am einfachsten, das NICHT-Gatter aus der Zeitachse zu nehmen, sodass es jedes Logik-Ereignis auslöst, sobald diese Logik aktiv wird. Solltet ihr diesen Auslöser als Impuls benötigen, müsst ich eventuell einen Signalmanipulator hinzufügen.

Info – eingekreist

Das Dreams-Benutzerhandbuch ist ständig in Arbeit. Achtet auf Aktualisierungen, da wir im Laufe der Zeit weitere Lern-Ressourcen und Artikel hinzufügen werden.