III. Ein ™REDPILL Game
Um das, was wir im Folgenden besprechen werden zu verstehen, müssen wir zunächst klären wie ein ™REDPILL Spiel aufgebaut ist. Das Thema ist gar nicht so wahnsinnig umfangreich, aber ich denke es ist gut wenn wir einmal darüber gesprochen haben.
ZIELE
Wenn Du mit ™REDPILL ein Spiel bauen willst, musst Du Dich zunächst für eine Plattform entscheiden: ECS/OCS für AMIGA500, AMIGA500+, AMIGA600 und AMIGA 1000 ... oder aber AGA für AMIGA1200, AMIGA4000 und das CD32. Für alle Plattformen gilt: Es werden 1MB ChipRAM und eine kleine Portion FastRAM benötigt. Du solltest natürlich immer daran denken: Je mehr Farben, umso mehr Leistung wird ™REDPILL abverlangt. Da ™REDPILL niemals ein Spiel so performant laufen lassen kann wie es ein nativ programmiertes Spiel täte, ist es wichtig im Hinterkopf zu behalten dass man mit Grafiken, Sounds, Berechnungen und Farben haushalten sollte. Auch wenn ein Spiel wie "Turrican" in ™REDPILL nicht möglich ist, so muss es das auch gar nicht. Ein Spiel wird nicht durch möglichst viele Objekte und absurd schnelle Action gut. Oft ist es eine Geschichte oder cleveres Gameplay was ein Spiel aus macht und zum Klassiker werden lässt. Es ist Deine Entscheidung.
ANATOMIE
Ein ™REDPILL Game ist stets aus Leveln aufgebaut. Es beginnt mit Level 0 (in Worten Null, in Zahlen auch) und endet mit Level X. X heißt hier nicht "10", sondern: Irgendein Level jenseits von Null. Ein Level ist nicht groß genug um daraus ein unendlich scrollendes Game zu bauen. Das heißt: Dein Game-Design muss berücksichtigen dass es einzelne Level mit klar definierten Grenzen gibt. Wobei diese Grenzen erstmal erreicht werden müssen. Ein ™REDPILL Level ist nämlich bekloppt groß. Vielleicht passt Dein Spiel in ein einzelnes Level. Wenn nicht: Plane Dein Spiel so dass es seine Welt in diese Levels (Welten, Orte, Räume) aufteilen kann. Ein Adventure hat verschiedene Orte die man aufsuchen kann. Ein Jump'n'Run besteht aus verschiedenen Welten. Ein Top-Down Shooter (The Chaos Engine, R-Type etc.) kann auch in Level aufgeteilt werden.
Ein Level in ™REDPILL ist aber nicht nur ein Level wie ein Gamelevel. Es kann auch ein Menü sein, ein Handelsbildschirm um Items zu verticken, ein Bildschirm in dem man mit einem Alien redet. Ein Level in ™REDPILL ist schlicht eine Bühne. Deren Aufbau entscheidest Du. Du bist Bühnenbauer, Beleuchter, Architekt, Regisseur und Toningenieur in Einem. In diesem Level zeigst Du ein Bild, in jenem arbeitest Du mit einer Tilemap. Alles ist möglich und für jede, noch so absurde, Idee gibt es sicher eine Lösung.
Sobald Du Dich mit dem Level-System von ™REDPILL angefreundet hast, musst Du sehen dass ein Level eine Karte (Map) sein kann. Diese besteht aus Tiles (Kacheln) welche widerum einem Tileset (Kachelsammlung) entspringen. Stelle Dir Dein Level, und damit Deine Map, als einen Kachelfußboden vor. Jede Kachel ist gleich groß und alle Kacheln zusammen ergeben ein stimmiges Bild. ™REDPILL sorgt sich um das Scrolling Deiner Map und um viele andere Dinge, um die Du Dich in anderen Engines (oder gar einer Programmiersprache) selbst kümmern musst.
Tiles dürfen auch animiert sein. Eine Fackel an der Wand muss kein Objekt (wir kommen gleich dazu) sein. Die Fackel kann zucken und zappeln weil das Tile des Tilesets einfach mehrere Frames besitzt. Soll heißen: Eine Kachel besteht einfach aus mehreren Bildern. Es gibt viele Einsatzmöglichkeiten für dieses Feature. Lass Wasser oder Lava schwappen. Vielleicht blubbert ein Sumpf in Deiner Welt oder Kristalle ändern ihre Farbe.
Neben den Tilemaps gibt es auch noch so genannte Objekte. Der Spieler ist ein Objekt. Ein Gegner ist ein Objekt. Ein sammelbares Ding (Münzen, Steine, Stöcke, etc.) ist ein Objekt. Diese Objekte werden immer vor Deiner Map gezeichnet. Der Spieler wird also immer erst dann angezeigt wenn das Level gezeichnet wurde. Die Münze, die unbedingt gesammelt werden möchte, ebenfalls. All diese Objekte können animiert sein, einer Physik unterliegen und sich auf der Map bewegen. Sie können auf Tiles, andere Objekte (wie z.B. den Spieler) oder auf viele verschiedene andere Dinge reagieren. Ein unfassbar komplexes System.
FIRST THINGS FIRST
Im Folgenden möchte ich einen straffen Überblick über die wichtigsten Menüs in ™REDPILL geben. Zumindest wichtig für den ersten Teil dieses Tutorials.
[1] Im "Game Setup" definieren wir Dinge die für das gesamte Spiel gelten. Die Gravitation (gibt es ein Oben und Unten?). Die Bilder pro Sekunde mit denen unser Spiel laufen soll. Sollen Gegner mit anderen Gegner kollidieren können? Mit welchem Level startet unser Spiel? Vielleicht ist ja Level Nummer 0 nicht das erste Level, sondern das Menü, welches wir in Level Nummer 5 gestaltet haben. Die anderen Optionen lasse ich hier erst einmal unbeachtet.
[2] Das "Screen Setup" legt eindeutig fest für welche Plattform wir unser Spiel konzipieren. Soll ein AMIGA500 reichen, oder darf es eher ein AMIGA1200 sein? Wieviele Farben nutzen wir insgesamt für das Spiel? Malen wir unseren Hintergrund komplett mit einem Tileset selbst, oder soll ein Copper-Verlauf uns hier und da helfen? Soll die Kamera einem bestimmten Objekt auf Schritt und Tritt folgen, oder bewegen wir die Kamera selbst? Soviele Möglichkeiten.
[3] Jedes Spiel sollte auf einem potenten System, wie dem Amiga, bewegte Objekte darstellen. Einer Spielfigur, die eine tatsächliche Laufanimation besitzt, glaubt man das Laufen eher als einer Grafik die einfach nur durch das Level rutscht. Einen Gegner erkennt man früher wenn er sich bewegt. Eine zuckende Fackel macht eine Spielewelt glaubhafter. In den "Sprite Sheets" lädt man eben jene Animationen um diese später bei Objekten benutzen zu können.
[4] Wie eben, bei den Spritesheets, bereits erwähnt, machen Objekte einen nicht irrelevanten Teil eines jeden ™REDPILL Spiels aus. Objekte sind die lebende Essenz eines Spiels. Sie können der Spieler, Gegner, Schüsse, Items und noch viel mehr sein. Objekte können mit anderen Objekten und Tiles kollidieren. Sie können einer Gravitation unterliegen und sie können, mittels eines Sprite Sheets animiert sein. Desweiteren können Objekte so genannte "Trigger" besitzen. Das sind quasi Schalter die auf bestimmte Ereignisse im Spiel reagieren. Der grüne Schleim stößt links gegen eine Wand? Dann drehe den grünen Schleim um und lasse ihn wieder nach rechts laufen, bis er dort gegen eine Wand läuft. Der Spieler will seine Spielfigur springen lassen? Prüfe ob er nicht bereits in einem Sprung ist ... spiele die Sprung Animation ab ... ziehe ihn wieder auf den Boden! Das alles, und noch sehr, sehr, sehr viel mehr, können Trigger.
[5] Wiederholung schult! Aber man muss es immer wieder erwähnen. Ein ™REDPILL Level ist, in der Regel, der Kachelfußboden Deines Badezimmers. Alle Kacheln sind gleich groß und Du kannst drauf malen was Du magst. Jede Kachel ist ein Tile. Ich weiß auch schon dass DeepL dieses Kapitel sehr lustig übersetzen wird. Tiles kommen aus einer Sammlung von Tiles, einem Set ... einem Tileset. Eine Grafik die viele dieser kleinen, lustigen Tiles enthält.
Während man offensichtlich in diesem Menü eine Tileset-Grafik laden und die Größe der Tiles bestimmen kann (8, 16, 32), befähigt uns dieses Menü, unter "Tile Properties", festzulegen wie die einzelnen Tiles unseres Sets mit Objekten reagieren. Kann ein Objekt vor dem Tile entlang laufen? Kollidiert das Objekt mit dem Tile? Ist das Tile vielleicht eine Plattform auf die man von unten hinaus hopsen kann? Aber vielleicht ist das Tile auch eine Rampe, bzw. Treppe!
[6] Wie oben beschrieben, besteht jedes ™REDPILL Spiel aus einzelnen Leveln. Selbst wenn Dein super cooles Spiel mit einem Level klar kommt: Zumindest dieses musst Du gestalten! Außerdem platzierst Du hier Deine zuvor gebastelten Objekte. Map aus Tiles malen, Objekte platzieren und andere, für dieses Tutorial nicht relevante, Dinge konfigurieren. Ein Place To Be für engagierte Leveldesigner.
[7] Was könnte man nicht alles über diesen Button erfinden? Trilogien wie über einen jungen Brillenträger der von einem Bahnsteig fiel und sich hernach für einen Zauberer hilt. Oder man bleibt bei der Wahrheit und sagt: Der Butten tut nicht mehr als er sagt: Er lässt Dich Dein Spiel spielen. Ganz rational, ohne Hintergedanken. Geradeaus!
[8] Der wichtigste Button der gesamten Software. Mit dieser Funktion steht und fällt Dein Projekt. Darum habe ich es in der Grafik auch besonders gefärbt. Speichere früh und oft! Egal wie gut Du bist, diesen Tipp solltest Du annehmen. Es ist nicht leicht ™REDPILL in die Guru Meditation zu schicken, aber es geht. Schaut in meine Leid geprägten, faltigen Augen.
Also: Wann immer Du in einem der oben aufgeführten Menüs eine Änderung vornimmst, klicke auf "Save". Lass es zu einem Fetisch werden!
DU BIST IM RECALL!
Solltest Du es bis hier her geschafft haben, bist Du bereit für das was folgt. Lass uns das Projekt konfigurieren, Bilder laden und Level malen. Später hopst ein, zunächst unsichtbarer, Spieler durch das Bild und alles wird einfach und nachvollziehbar. ™REDPILL erscheint Dir vielleicht super komplex und undurchdringbar. Aber glaube mir: Ein Spiel in einer Programmiersprache zu schreiben ist zwar effektiver und bringt mehr Performance ... aber es ist auch um Welten komplexer und aufwändiger.
Let's go. Wir bauen ein Spiel!