Spieleprogrammierung mit Delphi und GLScene: Einleitung

Aus Wikibooks

Einleitung[Bearbeiten]

Sie beherrschen die Grundkenntnisse von Delphi und wollen nun ein 3D-Spiel schreiben? Dann ist dieses Buch das richtige für Sie. Der Weg über GLScene ist ein sehr einfacher. Für GLScene benötigen Sie keine tiefgehenden Kenntnisse über Delphi, vielmehr ein paar Kenntnisse in Mathematik und Physik - oder ein gutes Gefühl.

Haben Sie bereits ein 2D-Spiel geschrieben? Das ist wirklich einfach. Viele Leute meinen, es sei dagegen verhältnismäßig schwer, ein 3D-Spiel zu schreiben. Doch mit GLScene ist dies dem Programmierer wirklich einfach gemacht - fast so einfach wie ein 2D-Spiel zu schreiben. Nur gibt es eine Ausnahme: Sie müssen sich um eine weitere Achse kümmern. Weiterhin ist es absolut einfach, eine Kollisionskontrolle durchzuführen (und das gilt nicht nur für GLScene, sondern auch für eine Vielzahl weiterer Engines).

So gut wie alle Engines basieren auf einer Library, die für das Anzeigen verantwortlich ist. Und da gibt es zwei große Konkurrenten: DirectX und OpenGL. Sie funktionieren auf zwei unterschiedliche Weisen. Das Ergebnis ist Geschmackssache - mir persönlich gefällt das Ergebnis von OpenGL sehr viel besser. Jedoch basieren die meisten Spiele auf DirectX.

Wenn Sie jetzt denken „Wozu brauche ich eine Engine?“, lautet die Antwort: Wir benötigen keine Kavaliersperspektive - welche recht einfach mit dem Canvas-Objekt zu implementieren wäre - sondern eine Zentralprojektion aus unterschiedlichen Winkeln. Was ist da der Unterschied? Sie wissen folgendes aus Erfahrung: Wir stellen uns zwei völlig identische Bäume vor. Sie können sich genauso eineiige Zwillinge oder zwei identische Häuser vorstellen - wichtig ist nur die Größe. Baum, Zwilling oder Haus - Objekt 1 sehen Sie aus 2m Entfernung. Objekt 2 steht hinter Objekt 1 - dieses sehen sie allerdings aus 20m Entfernung. Sie sehen Objekt 2 kleiner als Objekt 1. Das wäre in jeder Art von Parallelprojektion anders: beide Objekte sähen gleich groß aus. Eine Zentralprojektion ist aber sehr schwer zu implementieren. Und außerdem wollen wir uns nicht um die Darstellung, sondern um das Geschehen kümmern.

Ob man nun eine Engine wie GLScene (auf OpenGL-Basis), Genesis 3D (auf DirectX-Basis) oder OpenGL / DirectX selbst nehmen möchte, ist Geschmackssache und hängt auch von der Komplexität des Spiels ab (obwohl komplexe Spiele von bekannten Firmen meistens in DirectX entwickelt werden).