Level 3 – Die Fahrt zur Basis

Das hat etwas von Moon Buggy

Bevor wir mit dem dritten Level endlich mal ein vollwärtiges Spiel erstellen (die beiden bisherigen Level waren eigentlich nur Fingerübungen) möchte ich noch ein (wie ich finde) sehr interessantes Fundstück mit euch teilen.

Erinnert ihr euch noch an das erste Prince of Persia? Jordan Mechner hat es Ende der 80‘er für den Apple II entwickelt und 1989 wurde es von Brøderbund veröffentlicht. Der Sourcecode galt für viele Jahre als verloren, aber 2012 wurden die Quellcodes auf einer alten Diskette wiederentdeckt. Jordan Mechner hat den Source und ein Tech-Dokument zu PoP öffentlich bereitgestellt.

Auch wenn es sich um den Source für den Apple II handelt möchte ich euch nahelegen, mal einen Blick zu riskieren. Immerhin war im Apple auch eine 6502 CPU verbaut.

Also, nichts wie ab zum Blog von Jordan Mechner oder direkt zum Prince of Persia Sourcecode-Download.


Nun, da Commander Rick Razor und PI-001 erfolgreich auf PB5-78841 gelandet sind, müssen sie sich zur Hauptbasis der Volour begeben. Dazu benutzen Sie den Space-Rover. Dieses Gefährt hat einen Doppel-Impulslaser und eine Schubdüse, um kleine Sprünge zu vollziehen.

Unser Vorbild ist das Spiel Moon Buggy, das (wie ihr auf dem Screenshot erkennen könnt) bereits 1983 entstanden ist.

Startbildschirm von Moon Buggy
Startbildschirm von Moon Buggy

Aufgabe für den Spieler

Der Spieler muss mit dem Space-Rover eine festgelegte Distanz bis zur Basis zurücklegen. Dazu bewegt sich das Fahrzeug über eine zufällig erstellte Stecke. Diese ist mit Gruben, die man überspringen und Hindernissen, die sich zerstören lassen, gespickt. Außerdem besteht die Gefahr von Angriffen aus der Luft, die mit dem Impulslaser vereitelt werden müssen. Der Rover besitzt einen Laser nach oben und vorne, die leider immer gleichzeitig feuern. Außerdem benötigt der Laser etwas Zeit um wieder feuerbereit zu sein.

Anforderungen an den Programmierer (also uns 😉 )

  • Zeichensatz ändern
  • zufällige Landschaft / Strecke erzeugen
  • Scrolling (auf mehreren Ebenen)
  • mehrere Sprites verwalten & animieren
  • Sound-Effekte wiedergeben

Anfangen werden wir aber damit, uns um die Speicheraufteilung zu kümmern. Wir wollen zukünftig Probleme, wie bereits am Ende von Landung 009 beschrieben, vermeiden.

Hinweis: Vor der Umstellung, gab es hier bereits fünf Beiträge. Ich habe mich aber entschlossen, nochmal von vorne zu beginnen. Ab jetzt möchte ich erst das komplette Spiel fertigstellen und anschließend das Tutorial schreiben, bisher geschah dies parallel.

ZurückWeiter

3 Gedanken zu „Level 3 – Die Fahrt zur Basis“

  1. Hi,

    ich werkel derzeitig an einem Shoot ‚em Up Game für den C64. So ein bisschen wie Katakis;-)
    Was die Programmierung angeht bin ich schon relativ weit, es fehlt allerdings einiges an Arbeit.
    Ich verwende einen Sprite Multiplexer mit max. 18 Sprites.
    Nun meine Frage: Wie verwalte ich am besten die angreifenden Sprites?
    Ich meine damit speziell die Koordinaten. Sollten sie für jeden Gegner im Speicher abgelegt sein oder als Algorithmus vorliegen? Wie macht man das eigentlich üblicherweise?

    Gruß
    Manuel

    1. Moin,
      damit habe ich mich auch noch nicht beschäftigt, daher kann ich leider nicht sagen, wie man dies üblicherweise löst.

      Ich würde aber zu einem scriptbasierten Ansatz tendieren:

      • Level-Script: Wann & wo treten welche Ereignisse auf
      • Angriffswellen-Script: Gegnertyp, Anzahl, Bewegungspfad und -muster, usw.
      • Bewegungsmuster-Script: Linear, Sinus, Rechteck, usw.

      Das ist jetzt aber nur reine Theorie! Umgesetzt habe ich so ein System für den C64 bisher noch nicht.

      Gruß,
      Jörn

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Protected by WP Anti Spam