

Hallo, mein Name ist Cyrus Preuss und ich bin der Technical Director bei Reakktor Media. Bevor ich diese Position einnahm war ich zuständig für die Integration der Spielphysik in die Spielengine. Im Grunde bin ich das als Physikprogrammierer immer noch, auch wenn der Großteil dieser Arbeit bereits abgeschlossen ist.
In meinem Developer Diary möchte ich Euch erläutern wie die „mechanische“ Seite unseres Spiels funktioniert und einen groben Überblick darüber geben wie die einzelnen Bereiche Hand in Hand zusammenarbeiten, um ein Gesamtbild zu erzeugen. Naturgemäß sind viele Begriffe in englischer Sprache, aber ich versuche diese so gut wie möglich zu erläutern, bzw. gegebenenfalls zu übersetzen.
Aber eins nach dem anderen. Wo fängt also alles an?
Ein bekannter Spieleproduzent hat irgendwann einmal sinngemäß gesagt: „Hey – Was soll denn eigentlich so schwierig dabei sein Physik in ein Spiel zu integrieren? Es ist doch total einfach. Zum Beispiel: Ich klatsche in die Hände – Kollision - und es funktioniert…“. Soweit ich weiß erntete er einige Verständnis- bzw. ratlose Blicke der anwesenden Programmierer. Wenn das so einfach wäre, dann hätten so einige Programmierer nichts mehr zu tun. In der Tat funktioniert Physik auf den ersten Blick einfach. Daraus abzuleiten, wie einfach oder schwierig es ist Physik in ein Spiel zu integrieren ist natürlich schlichtweg falsch.
Um zu verstehen, worum es bei Spiele Physik geht kommt man nicht daran vorbei einige Begrifflichkeiten wenigstens kurz zu erklären.
Rigid Bodys (Starre Körper)
Ein Rigid Body (starrer Körper) beschreibt das physikalische Modell eines nicht verformbaren Körpers. Die wesentlichen Eigenschaften eines solchen Körpers werden beschrieben durch sein Massenzentrum, seine Masse, sowie seine Massenverteilung. Die Massenverteilung wird im Idealfall aus der sogenannten Kollisionsgeometrie abgeleitet. Vereinfachungen der Massenverteilung finden als Approximation durch einfache Primitive z.B. Sphären oder Boxen statt.
Ein einzelner Rigid Body ist weder in seiner Bewegungsrichtung, noch in seinen Rotationsachsen beschränkt. Die Bewegungen eines Rigid Bodys werden einerseits durch Kollisionen mit anderen Rigid Bodys bestimmt. Andererseits hat der Programmierer die Möglichkeit Kräfte und Drehmomente in unterschiedlicher Ausprägung am Rigid Body anzubringen. Rigid Bodys im Zusammenhang von Black Prophecy sind zum Beispiel Spielerschiffe oder Projektile.
Constraints (Beschränkungen)
Rigid Bodys können durch Constraints miteinander in Beziehung gesetzt werden. Diese schränken die beteiligten Rigid Bodys in ihren Freiheitsgraden ein. Das einfachste Beispiel ist ein Fixed Constraint, welches zwei Rigid Bodys fest miteinander verbindet. Diese beiden Körper können sich folglich nicht mehr gegeneinander verdrehen oder ihre relative Position zueinander verändern. Da Constraints für Black Prophecy zurzeit keine Rolle spielen, können Constraints im Weiteren vernachlässigt werden. Ragdolls und die Ausformulierung ihrer Gelenke sind ein populäres Beispiel für den Einsatz von Constraints unterschiedlicher Art.
SEITE 1 - SEITE 2 >>