Wer Videospiele so programmieren möchte, dass die Bewegungen der Spielfiguren, Raumschiffe oder Kletterseile überzeugend aussehen, muss drei Dinge erlernen:
Physik:Welchen Gesetzmäßigkeiten unterliegt ein Fass, das auf einer Schräge rollt? Wie prallt ein Squashball korrekt von der Mauer zurück? Oder eine Billardkugel von einer zweiten Kugel? Wie lasse ich ein Spielmännlein realistisch hüpfen? Und wie setze ich die üblichen Reibungseffekte, Fliehkräfte, usw. um...?
Mathematik:Okay. Ich kenne nun das physikalische Gesetz, das hinter dem Sprung eines Männleins oder hinter der Reflexion der Billardkugel steckt. Ich muss dann dieses Gesetz mathematisch korrekt formulieren, um es dann mit den Mitteln der...
Informatik:...korrekt dem Computer in einer Programmiersprache beizubringen.
Vieles davon werden die Teilnehmer am W-Seminar zur "Physik in Videospielen" lernen. Auf dieser Webseite kann man sich allerdings ein paar Tipps für zusätzliche Literatur holen: Wer selbst weitermachen möchte, wird vielleicht in dem einen oder dem anderen Buch aus der folgenden Liste fündig.
Die Bücher sind in der Regel ab der 10. Jahrgangstufe verständlich.
Die Bücher kann man natürlich kaufen oder bei mir fast immer ausleihen!
Ian Millington: Game Physics Development
Dieses Buch entwickelt - Zeile für Zeile - eine komplette, sehr brauchbare Physikengine in C++. Das heißt, dass man mit der fertigen Physikengine nur noch die beteiligten Objekte in die Welt setzen und die wirkenden Kräfte angeben muss. Die Engine betreibt dann die Physik in dem Spiel automatisch. Das Buch wurde bisher nicht ins Deutsche übersetzt.
Im W-Seminar werden eigentlich genau das gleiche machen. Allerdings geht dies Buch in mehreren Teilgebieten tiefer ins Detail. Es bietet sich damit als tolle Quelle an weiterzulesen!
Ein Besuch unseres W-Seminars ist sehr empfehlenswert zum Verständnis.
Nötiges Vorwissen: Fortgeschrittene in C++ mit soliden Physikkenntnissen
Themen: Mathematik & Physik der Videospiele
Ulrich Kaiser, Philipp Lensing: Spieleprogrammierung mit DirectX und C++
Dieses Buch verwendet die Sprache C++ und DirectX, um zwei- und dreidimensionale Spiele zu programmieren.
Im W-Seminar werden wir allerdings keine Spiele mit DirectX programmieren. Das Buch ist aber eine der verständlichste Einführung in die Spieleentwicklung mit Hilfe von Direct3D-Grafik. Wer also DirectX kapieren will, der kann ziemlich gut mit diesem Buch anfangen!
Nötiges Vorwissen: Fortgeschrittene Kenntnisse in C++
Themen: Mathematik der 3D-Grafik, Programmierung von DirectX, Computerspiele
David Scherfgen: 3D-Spieleprogrammierung mit DirectX9 und C++
(Teil der Wahlkursbibliothek)
Um 3D-Spiele zu entwickeln, braucht man eine Menge Erfahrung. Dieses Buch liefert das Rüstzeug dazu. Es wendet sich an Programmierer mit fundierten C++-Kenntnissen. Das Buch bietet eine der lückenlosesten Beschreibungen der manigfaltigen Möglichkeiten von DirectX, insbesondere Direct3D. Es ist für DirectX-Anfänger nicht ganz so leicht lesbar wie das Buch von Kaiser/Lensing. Andererseits stellt es für Geübte in Sachen "DirectX" die nötigen Kenntnisse deutlich übersichtlicher dar.
Im W-Seminar werden wir allerdings keine Spiele mit DirectX programmieren. Wieso ist dann dies Buch dennoch nützlich? Es gibt eine Einführung in die Vektormathematik (Kap. 2). Weiter hinten behandelt es die Erkennung von Kollisionen zwischen zwei Kugeln (Kap. 8.8.3), zwischen Linie und Kugel (Kap 8.8.4) und die Reflexion zweier Billardkugeln nach deren Kollision (Kap. 8.8.15.3).
Ein Besuch unseres W-Seminars ist sehr empfehlenswert zum Verständnis.
Nötiges Vorwissen: Sehr Fortgeschrittene
Themen: Mathematik der 3D-Grafik, Programmierung von DirectX, Computerspiele
Bettina Lechner: GIMP
Dies Buch gibt eine gut verständliche Einführung in das kostenlose Malprogramm GIMP. Ein solches Malprogramm werden wir beim Entwurf eigener Spiele auf jeden Fall brauchen - und da bietet sich ein frei downloadbares Programm wie GIMP geradezu an!
Nötiges Vorwissen: ab 7. Klasse
Themen: Erklärung des Malprogramms GIMP
Zhigang Xiang u.a.: Computergrafik
Dieses Buch stellt (fast) vollständig die mathematischen Konzepte dar, die hinter der 2D- und 3D- Grafikdarstellung an einem Computer stecken. Im Prinzip steckt die analytische Geometrie der gymnasialen Oberstufe als Anwendung drin. Das Buch lässt eigentlich überhaupt kein Thema aus: Linien, Kreise in 2D; Spiegelungen, Drehungen, Streckungen in 2D; die analogen Transformationen auch in 3D; Projektionen von 3D auf 2D; Ansichten und "Clipping" im 3D-Raum; Verdeckte Oberflächen-Algorithmen ("Hidden Faces"); Farb- und Schattierungsmodelle; Raytracing
Nötiges Vorwissen: ab 10. Klasse
Themen: Mathematik der 2D- und 3D-Grafik, Darstellende Geometrie, Computergrafik, Raytracing
Michael Bender, Manfred Brill: Computergrafik
Obwohl dieses Buch fast genau so heißt, wie der entsprechende Titel von Zhigang Xiang, behandelt es doch einige andere Themen. Es zeigt unter anderem auch das "geometrische Modellieren mit Kurven und Flächen": Wenn man Spielfiguren oder Gegenstände mit Hilfe von Drahtgittermodellen entwirft, sind sie in der Regel ziemlich eckig und kantig. Das Modellieren mit Kurven ermöglicht es nun, die Figuren oder Gegenstände dennoch "rund" erscheinen zu lassen. Die Mathematik dazu ist an mehreren Stellen sehr schwierig.
Nötiges Vorwissen: Sehr gute Kenntnisse in Mathematik
Themen: Geometrisches Modellieren mit Kurven & Flächen, Raytracing
Heinz Seyringer: Spieleprogrammierung für PC, Handy und PDA
Mit Hilfe dieses Buchs und der mitgelieferten Software auf CD kann man Spiele für Handys entwickeln, die mit dem Betriebssystem "Windows Mobile" arbeiten. Dabei nimmt der Autor die (auf CD enthaltene) Programmiersprache PPL her.
Im W-Seminar werden wir keine Spiele für Handys erstellen - insbesondere auch nicht in der Sprache PPL. Wer jedoch ein Mobiltelefon mit "Windows Mobile" besitzt und Spiele oder Software dafür schreiben möchte, hat mit PPL ein recht gutes Hilfsmittel in der Hand. Interessanterweise ist in die PPL-Entwicklungsumgebung auch eine Physikengine integriert. Viele physikalische Gesetze muss man also gar nicht mehr programmieren, sondern kann auf die Physikengine zurückgreifen.
Nötiges Vorwissen: Fundierte Kenntnisse in einer objektorientierten Sprache
Themen: Spieleprogrammierung auf Handys
Thomas Wagner: Mobile Games mit Flash
Dies Buch erklärt, wie man auf Flash-Lite-Basic Spiele für Handys programmieren kann.
Im W-Seminar werden wir keine Flash-Spiele erstellen - sondern mit C++ arbeiten.
Was gibt's dennoch in dem Buch zu finden? Beispielsweise gibt es in Kap. 4.3 viele Ideen, wie man Kollisionen von Spielfiguren mit dem Spielfeld erkennen kann. Auch das Verfahren wird vorgestellt, Spielfelder aus lauter Raster-Kacheln zusammenzusetzen und so die Kollisionsabfrage zu vereinfachen (Kap. 4.4).
Ein Besuch unseres W-Seminars ist sehr empfehlenswert zum Verständnis. Die Beispiele in Flash muss man leider irgendwie in C++ "übersetzen".
Nötiges Vorwissen: Fähigkeit, Flash in C++ zu "übersetzen"
Themen: Spieledesign auf Handys, u.a. Kollisionserkennung