Tutorial: Realistische Spielphysik by Codo

Die klassische Tomb Raider Engine ist weit davon entfernt, eine physikalisch korrekte Welt darzustellen. Lara springt weiter und höher als jede Olympiasiegerin, es werden riesige Felsquader mit Leichtigkeit verschoben, die Wasserwellen ähneln eher einer gespannten Folie als echtem Wasser…
Aber für gutes Gameplay ist auch nicht zwangsläufig notwendig, die natürliche Welt perfekt nachzubauen. Absichtlich gebrochene Regeln können einen besonderen spielerischen und atmosphärischen Reiz ausmachen.

Wer aber Wert darauf legt, ein möglichst realistisch erscheinendes Level zu bauen, sollte zumindest versuchen, einige grobe Fehler zu umgehen, sofern die Engine dies überhaupt zulässt. Vielen Spielern wird das womöglich nicht einmal auffallen, aber man kann Realismus beispielsweise sehr gut als Grundlage für Rätsel benutzen. Wie vieles ist dies eine persönliche Entscheidung. Dieses Tutorial ist keinesfalls als Belehrung zu verstehen sondern als Gedankenanstoß. Natürlich erhebt es auch keinen Anspruch auf Vollständigkeit.

Verbundene Wasserräume

Flüssigkeiten haben einige Eigenschaften, die uns intuitiv teilweise seltsam vorkommen. Eines davon ist das sogenannte Prinzip der Kommunizierenden Röhren.
Es besagt, dass alle Gefäße/Räume den gleichen Wasserstand einnehmen, wenn sie miteinander verbunden werden.

Das erscheint simpel, wird aber dennoch gerne vergessen. Der Grund für dieses Verhalten ist sogar ziemlich kompliziert: Der Druck am Boden eines wassergefüllten Gefäßes ist alleine abhängig von dem Füllstand, aber unabhängig von dem Füllvolumen und der Geometrie des Gefäßes. Aber wir wollen hier nicht zu sehr ins Detail gehen. Wichtig ist die Konsequenz: Selbst ein riesiger Wassertank wird mit einer verbundenen dünnen Röhre den gleichen Füllstand einnehmen.

Strömungen

Ein beliebtes Spielelement sind Strömungen. Aber wie bekommt man sie halbwegs realistisch hin? Auch hierbei ist es nicht unbedingt intuitiv klar, wie sich die Strömungsgeschwindigkeiten mit den Raumgeometrien verändern.
Nehmen wir zum Beispiel eine Röhre, die sich auf die Hälfte ihres Durchschnittes reduziert. Wird das Wasser gleich schnell, langsamer oder schneller strömen?

Es strömt schneller! Die Geschwindigkeit ist umgekehrt proportional zum durchströmten Querschnitt. Das ist merkwürdig, denn woher kommt diese Beschleunigung? Die Ursache ist, dass Flüssigkeiten (fast) nicht zusammendrückbar sind, daher fließt durch jeden Abschnitt des Rohres die gleiche Flüssigkeitsmenge. Ist der Strömungsquerschnitt verengt, kommt es daher zu einem Druck- und Geschwindigkeitsanstieg.

Wasser und Eis

Wie wäre es mit einem Rätsel, bei dem man einen im Wasser frei schwimmenden Eisblock schmelzen muss, um den Wasserstand zu erhöhen? Leider ist das komplett unrealistisch. Der Wasserstand wird nach dem Schmelzen absolut gleich bleiben. Der Grund dafür ist, dass das Eis zwar eine geringere Dichte und höheres Volumen aber genauso viel Masse wie im geschmolzenen Zustand hat. Der Auftrieb des Eises ist genauso groß wie die vom Körper verdrängte Masse.
übrigens ist der Dichteunterschied zwischen Eis und Wasser gar nicht mal so groß. Bei Eisbergen ragen nur 15% aus dem Wasser heraus!

Laserstrahlen

Hollywood zeigt uns gerne wunderschöne Laserstrahlen. In sauberen Galerien, sogar am helllichten Tag. Doch das ist totaler Schwachsinn. Man dürfte (abgesehen von einem Punkt an einer vom Lichtstrahl getroffenen Wand) eigentlich gar nichts sehen.
Es gibt schließlich einen guten Grund, weswegen in Diskotheken Nebelmaschinen zum Einsatz kommen. An den Partikeln wird das Licht gestreut, so dass ein Teil davon in unser Auge fallen kann. Ein nicht gestreuter Lichtstrahl fliegt einfach am Auge vorbei, d.h. er ist für uns unsichtbar.
Wie man in Tomb Raider Legend sieht, kann man diese Eigenschaften des Lichtes sogar für Rätsel benutzen.

Übrigens: Es ist nicht sehr schlau, Laserlicht aus dem sichtbaren Wellenlängenbereich für Bewegungsmelder zu benutzen. Es wird daher ausschließlich infrarotes Laserlicht verwendet. Macht das Gameplay mit Laserlicht dann völlig unmöglich? Natürlich nicht. Es ist alles eine Frage der Kreativität. Es gibt Spiele, die dies berücksichtigen.

Dekorative Lichtstrahlen

Das gleiche Problem wie bei Lasern findet sich auch bei Lichtstrahlen, die durch Dächer, Fenster oder ähnliches in Räume fallen. Die Räume sollten idealerweise staubig oder nebelig sein, damit der Effekt realistisch wirkt.
Auch sollten solche Lichtstrahlen innerhalb eines Levels, oder wenigstens innerhalb eines Raumes, immer aus der gleichen Richtung kommen. Die Sonne wird ja nicht plötzlich ihre Position ändern.
So etwas sieht zwar nett aus, würde aber nur auf Tatooine passieren können:

Die Energieerhaltung beim Rollingball

Der Rollingball ist einer der wenigen Bestandteile der klassischen TR-Engine, die so etwas wie eine echte Physik programmiert bekommen haben. Daher muss man häufig auch die Bodenstrukturen ausführlich testen, damit er seinen vorgesehenen Weg nimmt. Allerdings hat der Rollingball einen Haken: Er verliert nur auf ebenen Flächen Energie. In der Realität würde vor allem die ständige Reibung mit dem Untergrund überall dafür sorgen. Normalerweise fällt diese Eigenschaft auch kaum auf, in symmetrischen Bahnen dagegen sehr.

Da sich in der Mitte ein flacher Bereich befindet, verhält sich der Rollingball quasi realistisch, d.h. er wird mit jedem Durchgang an Höhe verlieren und in der Mitte zum Liegen kommen.

Hier wird der Rollingball dagegen unendlich hin und her rollen und dabei stets die gleiche Höhe erreichen. Das sieht schon sehr merkwürdig aus. Diese Eigenschaft ist aber auch überaus praktisch, denn so kann der Rollingball als Auslöser für zyklische Ereignisse verwendet werden.

Der Rollingball hat noch einige andere Merkwürdigkeiten. Es spielt beispielsweise keine Rolle aus welcher Höhe man ihn fallen lässt, seine potentielle Energie ist immer die gleiche. Daher wird er immer zur gleichen Stelle auf einer aufsteigenden Rampe rollen. Man sollte den Rollingball auf der Rampe liegend starten, wenn es realistisch aussehen soll.

Ein anderes seltsame Verhalten tritt auf symmetrischen Rampen ohne flache Bereiche und mit größer werdender Steigung auf. Ich habe beobachtet, dass er immer auf der drei-Click-Steigung umdrehen wird. Aber ich bin nicht sicher, ob das auch in jeder anderen Umgebung der Fall ist.

Dieser Content wurde im Rahmen des TRForge Adventskalenders 2011 erstellt.
Falls vom Autoren selbst nicht anders angegeben, respektiere bitte die allgemeinen Benutzungsrichtlinien zur Nutzung von TRForge-Inhalten.