Navigation

Seiten der Rubrik "Bücher"


Google Anzeigen

Anzeigen

Bücher

Game Physics Engine Development


Statistiken
  • 11195 Aufrufe

Informationen zum Buch
  ISBN
  Autor
  Verlag
  Sprache
  Seiten
  Erscheinungsjahr
  Extras

Rezension von

Tim-Oliver Husser

Game Physics Engine Development Bei Videospielen gibt es im Moment ein großes Thema, und das ist ausnahmsweise mal nicht noch realistischere Grafik. Es geht um etwas, das die meisten in der Schule gehasst haben, was Spiele aber doch so viel besser machen kann. Es geht um Physik. Genauer: um die physikalisch korrekte Bewegung von Objekten in Spielen. Dass dies nicht nur Half-Life 2 & Co vorbehalten ist, versucht Ian Millington mit seinem Buch "Game Physics Engine Development" aufzuzeigen. Gleich eines vorweg: den auf CD (und auf http://www.procyclone.com/) mitgelieferten Quellcode kann man verwenden, ohne auch nur den Versuch zu unternehmen zu verstehen, wie das Ganze funktioniert. Man kann sogar das komplette Buch durcharbeiten und dabei die Physik- und Mathe-lastigen Teile überspringen. Allerdings ist man dann dazu verdammt, mit einer Black Box zu arbeiten und Änderungen am System sind quasi ausgeschlossen. Ein zumindest rudimentäres Verständnis der Materie ist also durchaus von Vorteil. Und außerdem: so kompliziert ist es gar nicht! Und für die, die es dann wirklich genauer wissen wollen, führen die ersten drei Kapitel erst einmal in die Grundlagen ein. Sowol in die mathematischen, also Vektoralgebra und (kurz) Differential- und Integralrechnung, also auch in die physikalischen, insbesondere die Newtonschen Gesetze, also die Bewegungsgleichungen der klassischen Mechanik. Hier kommt allerdings auch der erste Stolperstein für Neulinge. Ein Mathe- oder Physik-Student wird wahrscheinlich irgendwann mal gesagt bekommen haben, dass Symbole nicht in Stein graviert sind. Alle anderen wird es jedoch wohl etwas verwirren, dass das Symbol für den Ort ploetzlich p ist (statt x). Insbesondere, da dadurch der Impuls als g dargestellt werden muss (statt p). In Kapitel 4 schließlich geht es erstmals um praktische Anwendung, in Form von einem einfachen Partikelsystem, welches in den folgenden Kapiteln weiter ausgebaut wird. Es werden Kräfte eingeführt, die auf die Teilchen wirken koennen. Federn werden zwischen zwei Partikel gespannt und „harte“ Randbedingungen werden eingeführt, auf gut deutsch: Kollisionen. Das hier vorgestellte System dürfte schon für Spiele reichen, die Physikberechnungen nur für optische Effekte einsetzen, also für Explosionen, Feuerwerke, Rauch, etc. Die meisten werden unter "Physik in Spielen" aber etwas anderes verstehen, und zwar die sogenannten "Rigid-Body Physics", also die Simulation von starren Körpern. Damit sind dann die wohlbekannten Rag-Doll-Effekte (korrekt fallende Leichen in Ego-Shootern) und die Physik-Rätsel im bereits erwähnten Half-Life 2 möglich. Die zugrundeliegene Mathematik und Physik ist allerdings ein Stück komplizierter als bei kugelförmigen Partikeln. Das groeßte Problem: Im Gegensatz zu einem Partikel kann ein starrer Körper rotieren. Und diese Rotation ist abhängig von der Form des Objekts, der Position der ansetzenden Kraft, der Stärke der Kraft, der Richtung der Kraft ... Eine Einfuehrung in das Thema geben die Kapitel 9 und 10. Ein Schwerpunkt liegt hier bei der beschreibenden Mathematik, in diesem Fall insbesondere Matrizen und Quaternionen, und der Erweiterung der Bewegungsgleichungen um Rotation. Vielleicht der härteste Teil des Buches, aber sicher auch der lehrreichste. Ein grundsätzliches mathematisches Verständnis sollte hier allerdings schon vorhanden sein. Der letzte Teil des Buches dreht sich dann um den programmiertechnisch wohl am schwierigsten umzusetzenden Aspekt, die Kollisionserkennung und -auflösung. Im Gegensatz zum Partikelsystem sind hier erheblich mehr Berechnungen nötig, und in der Regel muss ein Kompromiss zwischen Genauigkeit und Geschwindigkeit getroffen werden. Am Ende von Kapitel 15 ist man dann aber soweit, das vorgestellte Physiksystem auch wirklich einzusetzen, im Buch in Form eines Rag-Doll-Systems, eines zerbechenden Körpers und einer Explosion. Mittendrin diskutiert Kapitel 16 noch die Stabilität des Systems und mögliche Optimierungen. Schlussendlich behandelt Kapitel 18 kurz alternative Implementierungen eines Physiksystems. Ian Millington liefert mit seinem Buch eine gelungene Einführung in die Physik in Computerspielen. Der beigelegte Quellcode ist sofort einsetzbar und durchaus für einfache Spiele brauchbar. Allerdings erwähnt der Autor selber, dass es vor allem an zwei Stellen Erweiterungsbedarf besteht, und zwar bei der Kollisionserkennung und bei der Performance. Zu ersterem wurde ganze Bücher geschrieben (unter anderem in der gleichen Reihe wie das vorliegende), letzteres erfordert wohl mehr Eigenaufwand, auch wenn Millington ein paar Ansaetze zur Optimierung diskutiert. Ein Blick in freie Physiksysteme wie ODE oder Newton dürfte da allerdings weiterhelfen. Diese beiden (und andere) sind für einen Einsatz als Middleware wahrscheinlich besser geeignet als die Physik-Engine von Millington. Wer allerdings gerne besser verstehen möchte, warum die so funktionieren, wie sie es tun, dem sei das vorliegende Buch sehr ans Herz gelegt.

Bei Videospielen gibt es im Moment ein großes Thema, und das ist ausnahmsweise mal nicht noch realistischere Grafik. Es geht um etwas, das die meisten in der Schule gehasst haben, was Spiele aber doch so viel besser machen kann. Es geht um Physik. Genauer: um die physikalisch korrekte Bewegung von Objekten in Spielen. Dass dies nicht nur Half-Life 2 & Co vorbehalten ist, versucht Ian Millington mit seinem Buch "Game Physics Engine Development" aufzuzeigen.

weitere Rezensionen von Tim-Oliver Husser


Gleich eines vorweg: den auf CD (und auf http://www.procyclone.com/) mitgelieferten Quellcode kann man verwenden, ohne auch nur den Versuch zu unternehmen zu verstehen, wie das Ganze funktioniert. Man kann sogar das komplette Buch durcharbeiten und dabei die Physik- und Mathe-lastigen Teile überspringen. Allerdings ist man dann dazu verdammt, mit einer Black Box zu arbeiten und Änderungen am System sind quasi ausgeschlossen. Ein zumindest rudimentäres Verständnis der Materie ist also durchaus von Vorteil. Und außerdem: so kompliziert ist es gar nicht!

Und für die, die es dann wirklich genauer wissen wollen, führen die ersten drei Kapitel erst einmal in die Grundlagen ein. Sowol in die mathematischen, also Vektoralgebra und (kurz) Differential- und Integralrechnung, also auch in die physikalischen, insbesondere die Newtonschen Gesetze, also die Bewegungsgleichungen der klassischen Mechanik. Hier kommt allerdings auch der erste Stolperstein für Neulinge. Ein Mathe- oder Physik-Student wird wahrscheinlich irgendwann mal gesagt bekommen haben, dass Symbole nicht in Stein graviert sind. Alle anderen wird es jedoch wohl etwas verwirren, dass das Symbol für den Ort ploetzlich p ist (statt x). Insbesondere, da dadurch der Impuls als g dargestellt werden muss (statt p).

In Kapitel 4 schließlich geht es erstmals um praktische Anwendung, in Form von einem einfachen Partikelsystem, welches in den folgenden Kapiteln weiter ausgebaut wird. Es werden Kräfte eingeführt, die auf die Teilchen wirken koennen. Federn werden zwischen zwei Partikel gespannt und „harte“ Randbedingungen werden eingeführt, auf gut deutsch: Kollisionen. Das hier vorgestellte System dürfte schon für Spiele reichen, die Physikberechnungen nur für optische Effekte einsetzen, also für Explosionen, Feuerwerke, Rauch, etc.

Die meisten werden unter "Physik in Spielen" aber etwas anderes verstehen, und zwar die sogenannten "Rigid-Body Physics", also die Simulation von starren Körpern. Damit sind dann die wohlbekannten Rag-Doll-Effekte (korrekt fallende Leichen in Ego-Shootern) und die Physik-Rätsel im bereits erwähnten Half-Life 2 möglich. Die zugrundeliegene Mathematik und Physik ist allerdings ein Stück komplizierter als bei kugelförmigen Partikeln.

Das groeßte Problem: Im Gegensatz zu einem Partikel kann ein starrer Körper rotieren. Und diese Rotation ist abhängig von der Form des Objekts, der Position der ansetzenden Kraft, der Stärke der Kraft, der Richtung der Kraft ... Eine Einfuehrung in das Thema geben die Kapitel 9 und 10. Ein Schwerpunkt liegt hier bei der beschreibenden Mathematik, in diesem Fall insbesondere Matrizen und Quaternionen, und der Erweiterung der Bewegungsgleichungen um Rotation. Vielleicht der härteste Teil des Buches, aber sicher auch der lehrreichste. Ein grundsätzliches mathematisches Verständnis sollte hier allerdings schon vorhanden sein.

Der letzte Teil des Buches dreht sich dann um den programmiertechnisch wohl am schwierigsten umzusetzenden Aspekt, die Kollisionserkennung und -auflösung. Im Gegensatz zum Partikelsystem sind hier erheblich mehr Berechnungen nötig, und in der Regel muss ein Kompromiss zwischen Genauigkeit und Geschwindigkeit getroffen werden. Am Ende von Kapitel 15 ist man dann aber soweit, das vorgestellte Physiksystem auch wirklich einzusetzen, im Buch in Form eines Rag-Doll-Systems, eines zerbechenden Körpers und einer Explosion. Mittendrin diskutiert Kapitel 16 noch die Stabilität des Systems und mögliche Optimierungen. Schlussendlich behandelt Kapitel 18 kurz alternative Implementierungen eines Physiksystems.

Ian Millington liefert mit seinem Buch eine gelungene Einführung in die Physik in Computerspielen. Der beigelegte Quellcode ist sofort einsetzbar und durchaus für einfache Spiele brauchbar. Allerdings erwähnt der Autor selber, dass es vor allem an zwei Stellen Erweiterungsbedarf besteht, und zwar bei der Kollisionserkennung und bei der Performance. Zu ersterem wurde ganze Bücher geschrieben (unter anderem in der gleichen Reihe wie das vorliegende), letzteres erfordert wohl mehr Eigenaufwand, auch wenn Millington ein paar Ansaetze zur Optimierung diskutiert. Ein Blick in freie Physiksysteme wie ODE oder Newton dürfte da allerdings weiterhelfen. Diese beiden (und andere) sind für einen Einsatz als Middleware wahrscheinlich besser geeignet als die Physik-Engine von Millington. Wer allerdings gerne besser verstehen möchte, warum die so funktionieren, wie sie es tun, dem sei das vorliegende Buch sehr ans Herz gelegt.

geschrieben am 12.12.2007 | 700 Wörter | 4263 Zeichen

Kommentare lesen Kommentar schreiben

Kommentare zur Rezension (0)

Platz für Anregungen und Ergänzungen