Spielewelten mit Raycasting: Vorwort

Aus Wikibooks

Herzlich willkommen zu Spielewelten mit Raycasting.

In den 1990er Jahren war Raycasting sehr populär. Die dahinterstehende Technik machte es möglich, mit einfachen Computern dreidimensionale Landschaften und Welten darzustellen.

Heute redet kaum noch jemand vom Raycasting, sind Computer längst so leistungsfähig, dass sie kompliziertere und realistischere Darstellungen ermöglichen.

Zur Zeit gibt es kaum noch Literatur über das Thema, selbst im Internet findet man nicht mehr viele Quellen, die das Verfahren umfassend beschreiben. Grund genug, das Thema einmal bei Wikibooks anzugehen.

Worum geht es?[Bearbeiten]

Raycasting ist ein mathematisches Verfahren, um eine möglichst schnelle 3D-Ausgabe einer Computerspielewelt zu bekommen[1]. Eine Spielewelt fassen wir auf als eine kariertes Blatt Papier. Auf diesem Papier malen wir in die Mitte eine Spielefigur und den Rand malen wir bunt aus. Schon befindet sich die Figur zum Beispiel in einem Zimmer. So einfach, wie wir es hier hingeschrieben haben, ist es tatsächlich.

Wenn wir nun diese kleine Kästchenwelt räumlich darstellen wollen, also in 3D, dann bauen wir alle Wände gleich hoch. Steht man direkt mit der Nase vor einer Wand (probieren Sie das ruhig einmal aus), scheint die Wand viel höher zu sein, als wenn man 100 m von ihr entfernt steht. Das werden wir uns zu Nutze machen, wenn wir die Mauern der Spielewelt darstellen.

Eine solche Szene der Kästchenwelt schauen wir uns wie auf einer Leinwand oder wie mit einer Digitalkamera an. Wir betrachten also nicht die Welt an sich, sondern sehen sie wie durch einen Bilderrahmen. Jetzt ist Ihre Aufgabe, sich einen leeren Bilderrahmen zu nehmen und einmal alles in der Wohnung dadurch anzuschauen. Auf diese Geschichte mit dem Bilderrahmen kommen wir später noch einmal zurück.

Wenn Sie nun ein Blatt Papier vor sich, die Nase an der Wand plattgedrückt und einen Bilderrahmen in der Hand haben, sind Sie für alles in diesem Buch ausgezeichnet bewaffnet. Ach ja, einen Computer brauchen Sie auch noch. Mit dessen Hilfe stellen wir die Kästchenwelt ja dar.

Wo gibt es das?[Bearbeiten]

Raycasting findet man hauptsächlich in Egoshootern, die zwischen 1990 und 2000 entwickelt wurden. Beispiele dafür sind Spiele wie Doom und Wolfenstein. Nichts würde einen aber daran hindern, Pacman mit dieser Technik zu programmiere, hat man doch die zweidimensionale Ansicht eines Pacman-Spielfeldes schon vor Augen.


Wie geht das?[Bearbeiten]

Bei Raycasting „lebt“ eine Spielfigur in einer zweidimensionalen Welt einer bestimmten Größe. Es geht darum, diese Welt dreidimensional darzustellen. Die Spielfigur hat eine Blickrichtung und schaut in jede Richtung auf eine Wand, ein Fenster oder ein anderes Objekt in ihrer Welt, vielleicht ein Monster. Die Spielfigur kann sich in ihrer Welt bewegen. Um nun die Welt dreidimensional darzustellen, benötigen wir etwas Mathematik. Jedes Kästchen, auf dem sich die Spielfigur bewegen kann, hat eine bestimmte Größe. Im Idealfall, den wir hier betrachten, sind alle Felder Würfel. Steht eine Spielfigur sehr nahe vor einer Wand, dann wirkt diese sehr groß. Wir müssen also berechnen können, wie weit die Spielfigur von einem Objekt entfernt steht, um dann die Höhe dieser Wand, wie die Spielfigur sie sehen würde, berechnen zu können. Diese Höhe wird auf einen Bilderrahmen projiziert, in dem Fall ist das unser Computerfenster, in dem wir die ganze Welt abbilden wollen. Aus der Entfernung der Spielfigur zum Objekt berechnen wir also die Höhe der Zeichnung auf dem Computerbildschirm.

Nun blickt eine Spielfigur nicht nur in eine Richtung, sondern in einen ganzen Bereich. Wenn Sie mal versuchen, einen Punkt im Zimmer anzustarren, fällt Ihnen auf, dass Sie noch weitere Dinge rings um diesen Punkt wahrnehmen. Sie haben also ein gewisses Blickfeld. Dieses Blickfeld drücken wir durch einen Winkel aus. Unsere Spielfigur sendet eine bestimmte Anzahl an „Sehstrahlen“[2] aus, es wird die Entfernung zu einem Objekt ermittelt und dann bestimmt, wie hoch dieses Objekt ist, und das für jeden Sehstrahl innerhalb unseres Blickfeldes. Das ist schon alles.

Wir benötigen also Mathematik, Kenntnisse darüber, wie man Objekte findet, die in einem gewissen Winkel vom Spieler entfernt stehen, Programmierkenntnisse und einige wenige weitere Eigenschaften der Spielewelt. Davon werden die Kapitel in diesem Buch handeln.

Aufbau des Buches[Bearbeiten]

Die Kapitel bauen aufeinander auf, Sie erfahren etwas über Mathematik, soweit sie das Raycasting betrifft, wir geben Hinweise zur Programmierung mit Grafiken und beginnen zweidimensionale Welten zu erzeugen, die wir anschließend dreidimensional gestalten. Zu einigen Kapiteln stellen wir als Anregung Übungsaufgaben, die von uns in diesem Buch nicht gelöst werden – und wir bitten auch Abstand davon zu nehmen, Lösungen bereitzustellen. Betrachten Sie diese Aufgaben wirklich nur als Anregungen, sich individuell mit Raycasting und den vorgestellten Methoden zu befassen. Selbstverständlich geben wir im Anhang unsere Quellen und weiterführende Literatur an.

In eigener Sache[Bearbeiten]

Nutzen Sie die Gelegenheit, uns Rückmeldung zu geben. Loben und kritisieren Sie unsere Arbeit auf der Projektseite.

Wir wünschen Ihnen viel Spaß mit dem Buch und mit Raycasting.

Das Autorenteam

Anmerkungen[Bearbeiten]

  1. Wir weichen hierbei von der offiziellen Definition von Raycasting ab und verschweigen, dass es noch andere Anwendungsgebiete gibt. Was gibt es wohl für schönere Anwendungsgebiete als Computerspiele? :-)
  2. Etwa so wie Superman es mit seinem Hitzeblick kann.