Hintergrundinformationen

Hier werfen wir ein paar Blicke auf die Internas von Starbirds.

Als erstes sollen die Schwierigkeitsgrade beleuchtet werden. Bei sehr vielen Spielen sind die Schwierigkeitsgrade eine reine Mogelpackung, denn meistens werden bloss einige wenige Parameter verändert, welche die Gegner stärker oder das eigene Raumschiff schwächer machen. Bei Starbirds ist das anders, dort können in höheren Schwierigkeitsgraden ganz neue Gegnerformationen auftreten oder die Gegner verhalten sich etwas aggressiver. Jedenfalls werden bei einigen Leuten, welche von niedrigen zu höheren Schwierigkeitsgraden wechseln, bestimmt einige Überraschungen auftreten.

Der Grundgedanke hinter dem Gameplay von Starbirds ist der, dass es schlecht ist, ein Spiel zu kreieren, welches jedesmal nahezu identisch abläuft, so dass man es nach kurzer Zeit mit links löst und das Interesse verschwindet. Deswegen ist das Spiel sehr geschicklichkeitsorientiert, d.h. es verlangt vom Spieler permanent eine grosse Konzentration. Trotz diesen Elementen spielt die Erfahrung natürlich eine wichtige Rolle, denn mit der Zeit lernt man immer mehr Techniken kennen, wie man die eine oder die andere Stelle meistern kann. Aber man lernt keine Bewegungsläufe auswendig, sondern man lernt Taktiken.

Eine sehr simple Technik, welche aber nahezu den grössten Einfluss auf das Gameplay hat, ist die Art, wie die Gegner das Raumschiff des Spielers beschiessen. Die meisten stationären Gegner, welche am Vordergrund angemacht sind, zielen immer auf das Raumschiff des Spielers, so dass es zwangsläufig zerstört würde, wenn der Spieler sich nicht bewegen würde. Also muss der Spieler immer in Bewegung bleiben und dadurch entstehen auch immer wieder neue Situationen und immer wieder Abwechslung. Und vor allem: der Spieler bleibt konzentriert, er bleibt beschäftigt. Sobald nämlich ein Spieler sich bei einem Spiel zurücklehnt und das Spiel nahezu automatisch meistert, setzt sofort die Langeweile ein.

Abwechslung ist ein sehr wichtiger Punkt bei Spielen. Bei Starbirds sind hier vor allem die Extrawaffen-Symbole entscheidend. Je nachdem, welche Waffen man im Options-Bildschirm gewählt hat, erscheinen andere Waffensymbole, wenn dieselbe Gegnerformation eliminiert wird. Dadurch ändert sich auch die Charakteristik des Spiels und oftmals muss die Taktik angepasst werden. Dadurch bleibt das Spiel interessant, selbst wenn man es sehr oft spielt. Empfehlenswert für Fortgeschrittene ist die Möglichkeit, sich zufällig Waffen zuteilen zu lassen, dann erhält nahezu jedes Spiel seinen eigenen Charakter.

Ein Ziel bei Starbirds war es, die Anzahl der gleichzeitig auf dem Bildschirm sich bewegenden Objekte möglichst hoch zu halten. Da Starbirds zudem noch den 2-Spieler-Simultan-Modus unterstützen sollte, war es technisch unmöglich, diese Anforderungen in einem 50fps- Spiel zu realisieren. Deswegen läuft Starbirds mit 25 Bilder pro Sekunde und schafft es in der Regel, diese Frequenz auch zu halten, ausser in extrem stark bevölkerten Szenen. Bei gewissen High-End- Systemen kann die Frequenz oft nicht gehalten werden, was am schlechten Chip-RAM-Zugriff dieser Systeme liegt.

Beim horizontalen Scrolling wird die Grafik immer nur um 1 Pixel gescrollt, somit entsteht kein 'Ruckeln' in horizontaler Richtung. Da die Levels 3 Screens hoch sind, muss auch in vertikaler Richtung gescrollt werden, was mit mehreren Pixeln pro Bild geschieht, da merkt man den Unterschied zu 50fps-Spielen wesentlich stärker.

Starbirds verwendet einen Vorder- und einen Hintergrund, wobei der Hintergrund als Copperhimmel realisiert ist. Beim vertikalen Scrolling bewegt sich der Copperhimmel halb so schnell in vertikaler Richtung wie der Vordergrund, womit ein Tiefeneffekt erzielt wird. Die Vordergrund- grafik wird mit 16 Farben dargestellt, während beim Copperhimmel theoretisch soviele Farben zum Einsatz kommen können, wie Zeilen vorhanden sind.

Grundsätzlich werden für die Starbird-Raumschiffe, Gegner und gegnerischen Schüsse BOB's verwendet (Blitter-Objekte). Die Waffen der Starbird-Raumschiffe werden mit Sprites dargestellt, was auch an den kontrastierenden Farben gut ersichtlich ist. Die Anzahl der gleichzeitig auf dem Bildschirm sich befindenden Sprites wurde mit einer ganzen Anzahl von Tricks extrem hoch gehalten. Zum einen werden die Sprites in vertikaler Richtung vervielfacht und zum anderen wurden die Anzahl der in horizontaler Richtung möglichen Sprites von 8 auf 10 erhöht, indem praktisch mitten während der Rasterzeile das erste Sprite 'wiederverwendet' wird. Durch den Einsatz der Sprites kann im 2-Spieler-Modus die 25fps-Rate selbst bei vollem Waffeneinsatz meistens gehalten werden, auch wenn die Anzahl der BOB's einen hohen Wert erreicht.

Starbirds ist in der Lage, schwankende fps-Raten zu kompensieren, d.h. wenn das versteckte Bild fertig aufgebaut wurde, wird bereits mit dem neuen Bild angefangen, bevor die Bilder umgeschaltet werden. Dabei wird sichergestellt, dass jegliche Zeichenoperationen im sichtbaren Bereich immer oberhalb der Rasterzeile passieren, damit es nicht zu Flackereffekten kommt.

Ein Knackpunkt bei Shoot'em Up-Spielen ist die Kollisionsabfrage der Gegner bzw. gegnerischen Schüsse mit dem Raumschiff des Spielers. Eine ganze Menge von Action-Spielen hat dieses Problem unzureichend gelöst, was die Qualität solcher Spiele massiv nach unten gedrückt hat. Oftmals werden nämlich einfach die Objekte, welche kollidieren können, übereinander gelegt und überlappende Pixel gesucht. Falls eines gefunden wird, gilt die Kollision als erkannt. Dieser Ansatz ist an sich schlecht. Wenn z.B. jemand mit einem Auto ein anderes Autor frontal rammt, ist das was anderes als wenn das andere Auto seitlich gestreift wird.

Starbirds verwendet bei der Erkennung von Kollisionen zwischen dem Raumschiff des Spielers und anderen Objekte eine veränderte Maske des Spieler-Raumschiffs, welche etwas schmaler ist als das eigentliche Raumschiff. Das heisst, dass die Pixel am Rande des Raumschiffs bei Berührung mit anderen Objekten keine Kollision auslösen, also werden 'Streifkollisionen' nicht als echte Kollisionen gewertet.

Diejenigen, die Starbirds schon gespielt haben, werden schon bemerkt haben, dass die gegnerischen Schüsse nicht durch den Vordergrund fliegen, sondern beim Aufprall verschwinden. In Starbirds werden folgende Kollisions-Tests durchgeführt:

Wenn man nun jedes Objekt mit jedem anderen Objekt testen müsste, käme man auf eine Anzahl von Kollisions-Tests, welche die Geschwindigkeit des Spiels massiv reduzieren würde. Aus diesem Grunde wurde über das ganze Spielfeld eine Matrix gelegt, das Spielfeld wird somit in eine Anzahl Quadraten unterteilt. Für jedes Objekt, welches eine Kollision verursachen kann, wird vermerkt, in welchem Quadrat es sich befindet. Bei der Vordergrundgrafik wird ebenfalls vermerkt, welche Quadrate Vordergrundgrafik enthalten. Somit brauchen jeweils nur Kollisionen zwischen Objekten durchgeführt zu werden, welche sich im selben Quadrat befinden.

Ein weiteres Merkmal von Starbirds sind die extrem kurzen Ladezeiten (wobei zu sagen ist, dass bei einigen High-End-Systemen die Ladezeiten um eines höher sein können). Das konnte durch mehrere Techniken erreicht werden. Üblicherweise geht das Laden von Daten von Diskette so vor sich, dass erst der Motor positioniert wird, danach die Daten gelesen werden und dann decodiert werden (die Daten liegen im MFM-Format vor). Während Starbirds nun die Daten von eingelesenen Sektoren decodiert, lädt es bereits die Daten von den nächsten Sektoren. Da dies über die Disk-DMA erledigt wird, entsteht dabei sehr wenig Slowdown.

Desweiteren erscheinen die Ladezeiten auch deswegen so kurz, weil sie grundsätzlich asynchron zum restlichen Geschehen arbeiten. Beispielsweise wird der erste Level geladen, während der Spieler im Options-Bildschirm die Waffen auswählt, und die nachfolgenden Levels werden geladen während die statistischen Daten des Levels angezeigt werden. Dies wird dadurch erreicht, dass die ganze Logik für die Auswahl der Waffen im Options-Bildschirm als auch die Darstellung der Level-Statistiken in einem Interrupt-Handler vollzogen werden. Im Hauptprogramm werden die Disk-Operationen durchgeführt und regelmässig wird der Interrupt-Handler durchgeführt, welcher die anderen Aufgaben übernimmt. Das kann man sozusagen als Multitasking interpretieren.

Das ganze geht sogar noch weiter, am Ende eines Levels wird der Endgegner von Diskette nachgeladen, weil er nicht zusammen mit dem Level in den Speicher reinpasst (Starbirds verwendet 512KB RAM). Bei nahezu allen Spielen, die ein ähnliches Problem haben, wird das Spiel während dieser Zeit angehalten. Bei Starbirds ist das nicht der Fall, der Endgegner wird bei laufendem Spiel nachgeladen.

Starbirds verwendet übrigens eine OFS-kompatible Dateistruktur, d.h. das Spiel liegt in Form von konventionellen Dateien vor.

Die Musik wird von einem MED-Player-Algorithmus abgespielt, welcher leicht modifiziert wurde. Alle Musikstücke wurden mit dem MED erstellt, komponiert wurden die meisten allerdings vor noch längerer Zeit mit einem Keyboard (nicht zu verwechseln mit 'Tastatur').

Ein Highlight von Starbirds ist die Endsequenz, welche eine Technik verwendet, welche einem nackten AMIGA mit 68000-Prozessor 3D in 50fps bringt (leider läuft es wesentlich langsamer auf High-End- Systemen wegen dem sehr schlechten Chip-RAM-Zugriff solcher Systeme). Die Grafikqualität kann es natürlich nicht mit neuer Software aufnehmen, welche auf High-End-Systemen läuft, aber der Effekt, solch eine Technik auf einem derart alten System laufen zu sehen, ist dennoch sehr beeindruckend. Die in dieser Sequenz verwendete Technik setzt den Copper intensiv zur Grafikgestaltung ein, indem alle 8 Pixel der Farbwert geändert wird ('Copper-Chunky-Modus'). Dabei ist die Grafik in Form von gigantisch komprimierten Assembler-Statements abgespeichert. Manche Leute werden sich wohl fragen, wie diese Sequenz bloss neben dem ganzen restlichen Spiel mitsamt 11 Musikstücken auf diese eine Diskette passen kann...