Fragestellung: Ist es möglich ein Basic-Game zu entwickeln, das auf den meisten 8Bit-Homecomputern wie C64,MSX,MS-DOS,ZX81 etc läuft? Läuft bestenfalls mit keinen! bis kleinen Änderungen?
BASIC war die Sprache der 8Bit Homecomputer. Sie war alt (Darthmouth 1964), klein, eine Interpretersprache und dadurch relativ einfach zu implementieren.
Erste Erkenntnisse zur „Lingua-Franca“ BASIC
Es würde also nahe liegen sie als die Lingua-Franca zu benutzen über alle 8bit-HomeComputer hinweg. Und das trifft mehr oder minder für den ersten Darthmouth-Standard auch zu. Mehr oder weniger läuft alles dadrauf – nimmt man es nicht so genau mit Strings (Definierte Stringlänge bei Atari400/800, kein einfaches Concat mit +, Input) oder dem RND-Befehl (RND(4) QW-Basic).
Leider war Basic aber auch auf Input-Output-Programme für die frühe Entwicklung von Programme entwickelt worden, das heisst letztlich die Shell. Und so fehlt der Sprache per Standard jede Art von Keypressing-Funktionalität oder auch Grafikmöglichkeiten. Und hier legten sich die verschiedenen Computerhersteller wirklich ins Zeug Inkompatibilität aufzubauen. Allein die Geschichte um das Atari Basic zeigt auf was die Probleme waren: Der normale Interpreter brauchte schon 8k (Rom-Grösse mit akzeptablen Preis) – Atari wollte aber logischerweise auch Grafik-Commandos im Basic haben. Wie also reduzieren das Ganze? Indem man Befehle strich und anschliessend Befehle zusätzlich ins ROM verlagerte (wo es anscheinend unendlich langsam war).
All dies zeigt auf, dass diese Homecomputer letztlich zuerst als Hardware-Software-Paket verkauft wurden (obwohl Atari sein Basic zuerst seperat verkaufte). Die Kompatibilität war zuerst einmal da, indem man die meisten BASIC Lernkurse damit machen konnte. Danach wollten alle einzeln brillieren. Damit liessen sich natürlich de facto keine Platform übergreifende Software entwicklen und verkaufen, zumal auch keine Compiler existierten. Natürlich hatte auch jede Platform ihren eigenen Zeichensatz mit eigenen GrafikChars.
LineJeweled – Game in der Lingua-Franca „BASIC“
Um überhaupt eine Game über verschiedene Plattformen entwickeln zu können, musste also benutzt werden, was im Standard-Output möglich ist. Und das ist Print und Print ; (Lineprinter waren mal sehr in Mode). Ein Grafikaufbau mit CLS (Clearscreen) ist wegen Geschwindigkeit und Verfügbarkeit des Befehls oder seiner Simulation (30x Print „“) leider nicht möglich.)
Das heisst letztlich musste eine Spielmechanik gefunden werden, die ein einfaches Actiongetriebenes Game doch möglich macht und auch funktioniert, wenn man nicht auf dem Bildschirm zeichnen kann. Nach vielen Experimenten stellte sich heraus, dass man am Besten sich mit einer Variante von BeJeweled oder 3+ Gewinnt bedient. Das Spiel schreibt fortwährend das Spielfeld fort und der Spieler kann bei der Cursorposition einen zufälligen Edelstein einfügen. So kann der Spieler* 3+ Reihen in jede Richtung generieren und Punkte sammeln. Technisch muss auch nichts im Spielfeld geändert werden. Und das Spiel lebt vom Printen von Linien und verlängert das Spielfeld automatisch gegen oben. Dadurch entsteht ein für die Verhältnisse komplexes Spiel.
Auf dem C64 sieht das wie folgt aus:
Da die Anzeigen nicht immer neu gezeichnet werden, müssen sie einmal pro Linie geschrieben werden. Dadurch schreibt das Spiel auch seine eigne History per PRINT ins Fenster.
Weiterlesen