

Willkommen beim zweiten Teil meines Developer Diarys. Dieses Mal erkläre ich Euch etwas über die „Physics Engine" und wie diese bei Black Prophecy zum Einsatz kommt.
Viel Spaß beim Lesen!
Die „Physics" Engine bietet die Möglichkeit Instanzen der zuvor genannten Objekte innerhalb einer ‚Physik Welt' zu definieren und zu erstellen. Die ‚Physik Welt' selber muss ebenfalls als Objekt verstanden werden. Auf diesem Objekt wird wiederholt die ‚Update' Funktion mit einer gewissen festen Delta Zeit aufgerufen. Im Zuge der Abarbeitung dieses Funktionsaufrufes finden verschiedenen Dinge in fest definierter Reihenfolge statt.
Als Resultat eines jeden ‚Update' Funktionsaufrufes können alle eingeschlossenen Rigid Bodies veränderte Daten bezüglich Position, Orientierung, linearer und Rotations-Geschwindigkeit haben. Diese Daten werden innerhalb des Spiels dazu verwendet Rendergeometrien in Position und Orientierung zu aktualisieren. Die Spiellogik kann aufgrund der Datenveränderung weitere Aktionen bzw. Konsequenzen ableiten. Das wiederholte Aufrufen der Update Funktion wird häufig auch als ‚Physics Loop' bezeichnet.
Die einzelnen Abarbeitungsschritte innerhalb der Update Funktion werden aufgeteilt in:
Auf diese einzelnen Phasen und deren Bedeutung für das Spiel soll jetzt kurz eingegangen werden.
Wie der Name schon sagt, geht es um die Erkennung von Kollisionen einzelner Geometrien untereinander. Bei der Kollisionserkennung unterscheidet man zwei oder mehr Phasen.
Erstens die sogenannte Erhebungsphase, in der potentielle Kollisionspaare anhand stark vereinfachter Geometrie ermittelt werden. Zweitens die Kontaktberechnungsphase, in welcher exakte Kontaktdaten zwischen einzelnen zuvor ermittelten Geometrie-Paaren berechnet werden. Diese Phase ist wesentlich aufwändiger als die Erhebungsphase. Hierbei spielt die Art sowie Komplexität der Kollisionsgeometrien eine wesentliche Rolle. Zum Ende dieser Phase stehen Daten zur Verfügung, welche nicht nur für die Physiksimulation, sondern auch zur Ereigniserzeugung verwendet werden. So können z.B. Kollisionspartikeleffekte und Kollisionssounds durch Auswerten der Kontaktdaten erzeugt werden.
SEITE 1 - SEITE 2 >>