Archiv der Kategorie: basic

Die Menge der Computer und ihre Untermenge ComputerArcadeConsolen – eine wichtige Differenzierung der Homecomputerzeit

Computer

Wer sich die Homecomputerszene und ihre Grundlage – die Microcomputer – anschaut, stellt schnell fest, dass es zwei Arten von Computern gab. Die ersten waren einfach „Computer“, sie konnten rechnen, verstanden Basic. Die Spiele, die auf ihnen liefen waren sehr früh schon CLI basierte Games, die Basic zu liess (siehe 101 BASIC GAMES). Später konnten die Computer selbstverständlich auch im Grafikmode zeichnen (sowohl in Basic wie auch in Assembler) – weitere Möglichkeiten für Spieldesigner*. Aber der Default-Computer war nicht auf Arcade-Games ausgelegt. Man könnte fast schon sagen, die ersten Computerspiele waren eigentlich CommandLine-Spiele.

ComputerArcadeConsolen

Eine zweite Linie von Homecomputern (hier genannt ComputerArcadeConsolen) kam aus der Ecke der Arcades und Consolen und stellte neben den ’normalen‘ Funktionen spezifische Funktionalität zur Verfügung für Games: etwa Sprites, Kollisionsabfrage, Hintergründe, Scrolling und Standard-Joystick-Interfaces. Diese Funktionalitäten waren als Hardware verfügbar – als Chips etwa bei der Atari-8Bit-Computer-Reihe oder dann auch beim C64. Die „normalen“ Computer mussten erst sehr viel schneller werden, um die Funktionalität quasi virtuell zu erfüllen oder prozessierbar zu machen. Konkret waren erst die 16/32 Bitter (68000) mit dem Atari ST (bzw. Macintosh eher teuere Workstation) da in der Lage mitzuziehen. Oder noch einen Schritt weiter, erst die Computer, die die Grundlagen der Workstations nutzen statt ‚erschwingliche‘ 8Bit-Hardware.

ComputerArcadeConsolen in der Entwicklung

Sicherlich ist nicht zu vernachlässigen, dass der Videogamecrash um 1984, die Hersteller von Consolen stark verunsicherte, allen voran Atari mit ihrem Atari 2600. Und so erstaunt es denn auch nicht, dass sie die geplante neue Console dann in einen Homecomputer oder konkreter eine ComputerArcadeConsole umbauten. Der Cartridge-Steckplatz war dabei immer noch Programm.

Der Mann der für die Atari 2600 wie auch für die Atari-Computer-Linie entwickelte war Jay Miner. Die Konkurrenz schlief natürlich nicht und so entwickelt Commodore den C64 ebenfalls zuerst als möglichst billige Console und stieg dann auch auf eine ComputerGameConsole um. Jay Miner verliess Atari und entwickelte (neben einem Balance Board) dann unabhänig eine neue Console den Amiga. Diese Firma in Geldnöten wurde wiederum gekauft und zu ComputerArcadeConsole Amiga umgewandelt, während gleichzeitig der Ex-Mitgründer von Commodore Jack Tramiel neu bei Atari das Preisspiel mit dem Atari ST gegen den Amiga trieb (wie zuvor mit dem C64).

Später dann versuchten beide Konkurrenten, die letztlich die ganze Armada von 8Bit-Computern und deren Nachfolger (Sinclair QL und co) gebodigt hatte je eine Workstation (oder Transputer) herzustellen und verlor gegen die nun viel billigern 3D-Konsolen wie PS1 oder dann gegen die immer noch teureren aber aufrüstbaren PC-Kompatiblen.

Gegenübergestellt sieht die unvollständige Liste etwa so aus:

TypComputer
Spez: Text Darstellung, Rechnen
ComputerArcadeConsole (Unterkategorie)
+ Spez: Multimedia Computer
8BApple II, ZX81,MicroBBC, PC1..Aquarius (Hybrid Console Computer), TI99?
SmakyAtari XL/XE
Commodore C64
16/32BMacintosh, PC x
Atari STCommodore Amiga
Workstation-
Power
(Zunehmende Virtualiiserung von
Game-Funktionalität)
Workstations
Multimedia-PCs
(Schnell, 3D-Grafikkarten)

// Todo: Upchecken aller Computer und ihrer Hardware

Der (Kybernetisch-)Digitale Space im Computerbereich – Approach 1 – Das Analoge digitalisieren

Räume werden letztlich durch Regeln definiert. Im Folgenden geht es nun danach zu fragen, nach welchen Regeln der entstehende digitale Space funktionierte, was er ermöglichte und verunöglichte, wie er gentutz werden konnte oder anders gesagt: Wie er missbraucht werden konnte.

Der digitale Space ist ein erstaunlicher Ort aus den verschiedensten Blickwinkeln – auch seine historische Entwicklung. Er enstand in den 50er/60er/70er Jahren. Dabei war der Output also das Display, der ‚Screen‘ minimal. Am Anfang war es lediglich Lämpchen oder ein Lineprinter. Also ein Outputgerät, das rein elektromechanisch funktionierte.

Lineprinter-Spaces

Die ersten „Programme“ waren quasi Schaltungen – meist Input-/Output-Programme und folgten damit auch den Computern als elektronische Verschaltungen – als eine Art Algorithmen in Abhängkeit von Schaltern. Die Interaktivtät war also vorgeschaltet als Parameter, wie wir sie es heute noch in Terminalprogrammen nutzen können.
Etwa Programm banner mit Parameter e beim Tool Banner, das Texte Printable macht und danach auch aufgehängt werden können. Endlospapiertext können so enstehen und aufgehängt weden.

> banner e

Spaces – Zeichen und Regelräume

Was ist das nun für ein Space? Vermutlich muss man anfangs unterscheiden zwischen 3 Arten von Spaces, die von den Usern auch wahrgenommen wurden:

Space 1: Terminal – Input (Tastatur)
Analoger Space (Wobei der Input wiederum auf dem Space 3 ausgegeben wird.
Space 2: Das eigentliche Programm im RAM
Space 3: Terminal – Output (Lineprinter anfangs danach Screens) – Analoger Space

Space 1 und 3 waren prinzipiell Spaces gebildet aus Zeichen bzw. anfangs Druckern wie LinePrintern. LinePrinter drucken einfach, all das was ein- und ausgeben wird.

Die Spaces 1 und 3 (Tastatur und Lineprinter) sind analog ‚endlos‘ – meist auch Endlospapier, das abgerissen wird. Dabei wird kein Platz überschrieben sondern immer nur angehängt, eine Art endlose analoge Rolle. Der entstehende Raum im Analogen, der besetzt wird wächst zwar immer mehr, ist aber wegen seines Papiersubstrats auch nicht besonders Platzfüllend und kann auch schnell entsorgt werden. Anders gesagt: Das Digitale benutzte nur vorrübergehend Platz für die Maschine und der Output war ‚temporär‘ analogen Platz besetzend. Sie kommen auch heute noch vorallem im Login-Bereich zum Einsatz. Jedes Programm besitzt heute noch den StdOut, das gelogt wird endlos im Hintergrund (falls die Software da was rausschreibt).

Space 2 hingegen ist von Anfang an interessant. Was die Computer simulierten in ihrem konkreten Programm aber konnte letztlich jeder mögliche Raum sein von 1d-4d etc. Eigentlich nicht anders als heute. Ein Programm konnte sogar 3D Objekte erstellen und konnte sie Raytracen. Denn der „Raum“ des Computerprogramms und seiner Möglichkeiten ist nur eine „Simulation“ – eine Untermenge jedes möglichen Raums. Und ein Raum ist letztlich nur ein bestimmtes Regelset mit Regeln. Man könnte sogar hingehen und jedes Programm als eigenen Raum bezeichnen.

Das unendliche Terminal

Mit dem Aufstieg der Grossrechner und ihren Multiusersystemen wurden immer mehr auch Monitore/Terminals als Ausgabegeräte benutzt. Dadurch konnten mehr Leute an einem Rechner gleichzeitig Arbeiten (VT-X). Diese Screens simulierten anfangs lediglich printbare Seiten und damit auch LinePrinters. Logischersweise gehört damit auch die Simulation des unendlichen Papiers dazu. Da der Screen fest bleibt, scrollt der Inhalt nach oben ins Nichts, bleibt dadurch aber auch unendlich oder anders gesagt: der Screen wird ‚überschrieben‘. Das Konzept bleibt dabei im ersten Moment gleich.

Interaktiver Space

Diese Geschichte seiner Herkunft und den technischen Bedingungen, sieht man noch heute am Dartmouth-Basic gut an. Dann kam die Möglichkeit, den Lineprinter anzuhalten und Fragen zu stellen, gut sichtbar in BASIC mit INPUT. Oder eben einfacher per „Monitor“. Direkt interaktiv und nicht nur vorgeschaltet.

CLS
10 PRINT "what is your name?"
20 INPUT "...(Enter Your Name)...", a$
30 PRINT
40 PRINT "hello, "; a$; ", I am your computer, nice to meet you."
60 END
https://en.wikibooks.org/wiki/BASIC_Programming/Beginning_BASIC/User_Input

Dadurch ist es nun möglich erste interaktive Games zu kreieren. Das bekannteste Beispiel ist bis heute natürlich Hangman (hier die Version aus BasicComputerGames). Dabei arbeitet auch dieses Spiel mit dem simulierten LinePrinter im Screen. Nach jeder Eingabe eines Buchstabens wird der ‚aktuelle‘ Hangman gezeichnet. Dabei wird per ASCII-Grafik eine ‚realistische‘ 2D Ansicht angehängt.

und es kann weitergehen. Das Spiel wäre also noch auf einem klassischen LinePrinter spielbar. Entspricht aber nicht mehr genau dem, was wir unter einem „Computerspiel“ ‚verstehen‘.

BASIC COMPUTER GAMES – Buch 1973

1973 kommt das Listing Buch BASIC COMPUTER GAMES auf den Markt und verkauft sich eine Million mal. Dabei ist der Titel offensichtlich doppeldeutig mit BASIC COMPUTERGAMES in BASIC. Zeigt aber auch auf, was der Spielbegriff damals alles beinhaltete: Von Textspielen, Haiku-Generatoren über Labyrinthgeneratoren, Simulationen bis zu ELIZA (KI). Die meisten der Spiele nutzen das klassische BASIC Commands Repertoir sind also wenn dann ASCII-Art.

Weiterlesen

CrossPlatform-BASIC-Game (8-Bit Homecomputer) – Möglich? LineJewels als eine Antwort [LinePrinterActionGame]

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

BASIC – Beginners‘ All-purpose Symbolic Instruction Code – Konzept: Eine Umgangsprogrammiersprache

Die Geschichte der Programmierung kennt einige Versuche Programmierung an den Mann oder die Frau oder die AI zu bringen. Tutor auf Plato Systems (ELearning System) war eine dieser frühen Versuche (Ein Befehl pro Zeile, keine Zeilennummern, verständliche Befehle).

Der mit Abstand erfolgreichste Versuch war aber sicher BASIC. Hier war von Anfang klar, dass man weg wollte von kryptischen Codings wie etwa Assembler oder ALGOL oder dann C ( if(){} ). Und so entstand eine Sprache die aus nur 26 alltagssprechenden Befehlen besteht (PRINT, IF …) und wo es pro Zeile nur einen Befehl gibt – dazu dann leider noch jede Zeile mit einer Nummer, zu der man Springen konnte (Zeilenlose Basics tauchten erst 20 Jahre später auf und wurden in den 16Bit Systemen propagiert). Aber alles in allem orientierte sich BASIC an der klassisch menschlichen Sprache und der Idee „Codende geben einer Maschine“ einen Befehl: ’10 PRINT „HELLO“‚. Und diese führt sie aus. Und eine Linie braucht eine eindeutige Nummer.

Um zu programmieren, muss man also hier nur die Perspektivenübernahme verstehen: „Ich sage du tust“. Computer: „Das sind meine Befehle, ich führe aus“. Und das war/ist es.

Der Erfolg gerade in der 8Bit-Area (C64, …) gab dieser Sprache mit ihren Beschränkungen recht. Die Idee war sicherlich Programmierung soweit wie möglich zu verbreiten. Ja selbst die Bedienung des Computers im Allgemeinen war BASIC.

Insofern gab es hier keinen Unterschied zwischen Programierung und Bedienung. Noch nicht, muss man aus heutiger Sicht sagen. Ohne Programmierung wie ‚Load „*“,8,1‘ keine Nutzung von Programmen, kein Spiel.

Die 16Bitter mit ihren GUIs zerstörten dann diese „Einheit“ und auch die Idee, alle müssten programmieren können. Seither ist diese Idee dahin und es gibt einen tiefen Graben, zwischen Nutzenden/Contentmacher und Medienmachern.

Und wie D. letzthin meinte: AI hat die Idee, dass Leute programmieren können müssen, endgültig begraben.

Micro BBC – ein schnelles BASIC und eine 8Bit Variante des LineRunners

In einer Aussage in Britsoft – An Oral History – gehen die Macher von Sentinentel darauf ein, dass sie unendlich viele 8Bit Ports machen mussten. Eine langweilige Arbeit, gerade auch weil sie von einem Micro BBC ausgingen. Einem an und für sich schnellen Computer im Vergleich zu anderen 8Bittern. Interessant sei die Umsetzung auf den C64 gewesen, der langsamer war aber viel RAM hatte. Und so hätten sie die Technik übernommen, die es schon im Medium „Mensch“ gab: Sie hätten einfach für die Berechnungen (!) LookUp-Tables genommen!

Angestiftet von dieser Aussage in Sachen Speed, habe ich mir das Micro BBC Basic genauer angesehen und bin auf eine wirklich schnelle Maschine gestossen (nicht nur auf dem Papier). Ich habe deswegen das Experiment mit dem einfachen BASIC-Spiel wiederholt (siehe hier):

Entwickelt wurde das Spiel auf dem OnlineEmulator bbcmic.ro (https://bbcmic.ro). Der Editor macht Spass, passt allerdings die Zeilenzahlen (bie GOTO etc) nicht automatisch an.

Weiterlesen

BASIC – eine (über)erfolgreiche adaptive Radiation (Anpassung in Ökosysteme) und ein Action-Game-Experiment

BASIC (mehr dazu hier >) erfunden in den 60er Jahre (noch weitgehend im CommandLine Input/Output Frame) hat eine lange Geschichte der Radiation hinter sich. BASIC fehlte strategisch so etwas wie inkludierbare Frameworks, die dann auf jedem System wieder anders implementiert werden mussten. Es war ja auch unter anderem als Programmiersprache fürs Lernen konzipiert worden.

Es entstanden deswegen eine Menge verschiedene Dialekte, in denen eigentlich nur noch die Grundbefehle gemeinsam sind, aber selbst die Nutzung dieser 26-Grundbefehle ist oft unterschiedlich (Dim-Defintionen etwa). Man kann sich sogar fragen, ob selbst Assembler-Programme ohne Zeilennummern ‚moderner‘ waren. Vor allem die 80er Jahre mit ihren Basic-HomeComputer-Interfaces waren prägend. Und so läuft fast kein Basic-Programm auf verschiedenen Plattformen. Noch einschneidender war selbstverständlich das Aufkommen von Zeilenlosen-Basics wie etwa GFA-Basic ab den 16/32Bit-Homecomputern, das eine Kompatibilität fast unmöglich machte.

Will man heute ein BASIC Programm schreiben, das auf so vielen Plattformen wie möglich läuft, muss man sich start beschränken auf die minimalen Befehle. Das schwierigste ist natürlich die Ausgabe, da BASIC in seiner ursprünglichen Form eigentlich auf LinePrinter ausgelegt ist (60er Jahre) bzw. Bildschirme als Lineprinter funktionierten. Grafikbefehle Fehlanzeige. Der Rechner war hier wirklich als „Rechner“ gedacht.

Noch schwieriger ist es, etwas im Action-Bereich zu machen. Also da, wo es um Keypressing geht und das optionale Nutzen von Input. Hier wird es sehr schwierig, da das Dartmouth-Basic, soweit ich das sehe, über kein eigenes Kommando verfügt und so jede Implementation dann selbst etwas „gewurstelt“ hat, um das zu ermöglichen. Ein weiteres Problem ist selbstverständlich die Möglichkeit irgendwie die Geschwindigkeit zu messen, bei heute im Vergleich zu damals unendlich schnellen Systemen.

Die letzten zwei Anforderungen muss man also auf jeder Installation – soweit ich das sehe – selbst implementieren.

Action-Angehauchtes „Be Jeweled“ oder 3+ gewinnt

Anbei wurde versucht ein einfaches BASIC-Spiel zu implementieren, dass ActionAspekte hat und dennoch auf allen Plattformen ohne grosse Anpassungen laufen wird (Zeilenbasiert).

Herausgekommen ist am Ende ein vereinfachtes „Be jeweled“ mit Lineprint als Ausgabe.

Das Spiel schreitet voran und fügt per PRINT neue „Edelsteine“ hinzu. Dabei wartet das Spiel eine Sekunde, bis der nächste Stein angehängt wird. In dieser Zeit kann der Spielende seinen Stein anfügen. Im vorliegenden Fall ist es ein „.“. Danach wird die Linie beeendet und abgerechnet.

Weiterlesen

(Zeilenbasiertes )BASIC – Überlegungen und wieder erste Erfahrungen

Basic war in den 70er(?) aber spätestens in den 80er Jahren das Ding in Sachen Programmierung für die Massen. Dies wie hier schon aufgezeigt wurde, weil BASIC bei den meisten 8Bit-Homecomputer die quasi „Betriebsystemoberfläche“ war und damit auch immer schon eingebaut war.

Verwendungszweck Computer > Programmierung zu Nutzung

Anders gesagt: Programmierung war die erste Anwendung. Der Rechner (mit Variablen) wie beim technischen Konzept und im Manual des ZX81 bis heute zu lesen ist . Der Prompt in der 8bit-Welt war ein Basic Prompt.

Einfach anschalten. Man* konnte Basic benutzen auch ohne Erweiterungen wie einem Disklaufwerk oder einem Printer. Mit der Einführung des GUIs endete auch die Kopplung von Betriebssystem und Programmiersprache. Der Computer wird als Instrument eher zu einem Programm-Consumer-Produkt als einer Programmiermaschine. Programmiersprachen werden noch mitgeliedert, wie das eher für grössere Computersystem üblich war (vgl. UNIX, Apple II, MS-DOS, CP/M).

Heute liefert niemand mehr eine Programmiersprache per default mit und sie ist schon gar keine Erstanwendung mehr. Die Programmierung ist in den Hintergrund getreten und Spezialanwendung. Interessanterweise kommt neu wiederum die „Natürlichsprachliche Programmierung“ per AI dazu und schliesst damit (wie auch schon erwähnt) den Bogen der 80er Jahre.

BASIC Hintergrund

Basic wurde bekanntlich schon in den 60er Jahren entwickelt, als einfach Möglichkeit Programmieren zu lernen und zu Coden. Die Programmiersprache lehnt sich am Alltag an, hat wenige Keywörter und vereinfacht die Programmierung gegenüber Platzhirschen wie ALGO oder FORTRAN. Es ist quasi ein Zwischending zwischen der Nicht-Programmierung und Hochschulrechnen. Die Hochsprachen wie ALGO oder FORTRAN sind nicht verwunderlich – auf 8Bit Rechnern eher selten aufgetaucht. Zur Konkurrenz von Basic entwickelte sich eher dann PASCAL von Wirth (ETH) und die Compiler Basic Varianten auf den 16/32 Bittern.

// ToDo: Gibt es Algo für c64? Fortran?)

BASIC Coding Praxis

Die Basics jener Zeit waren alle Zeilennummern basiert. Was sie bis heute abhebt von den Platos Tutor etc. die mit Labeln arbeiten.

Zeilennummern

10 PRINT "HALLO"
20 GOTO 10
RUN
Weiterlesen

Einfaches Action-Spiel in Basic (Experimentelle Archeologie)

Wie hier eingeführt verfügt der C64 ebenfalls über eine Basic-Schnittstelle als ‚Interface‘ für den C64 wie auch um zu Programmieren. Es ist mehr oder weniger die erste eingebaute Anwendung.

BASIC entstand bekanntlich 1964 als einfach erlernbare Programmiersprache, der man bis heute ihren klassischen Sprachansatz ansieht. Es ist eine Art Shellerweiterung mit Zeilen.

Viele 8Bit-Computer kamen ebenso wie der C64 mit Basic daher. Einige waren einfacher gestrickt als der C64 für Games andere mehr (vgl. Atari 400) in Sachen Farbe, Sprites, Scrolling. Diese Features wurden natürlich damals bis heute genutzt in BASIC-Aptippspielen, die zusätzlich noch oft auch Assemblerpasagen enthielten. All diese mache recht komplexe Spiele in Basic möglich. Am besten sieht man das bis heute etwa an Super-Marble-Boy des Amiga Game Design Veteranen Roman Werner.

Minimales Actionspiel in Basic?

Turnbasierte Spiele in Basic gibt es selbstverständlich viele. Eines der Kursspiele in den 80er Jahren war etwa HangMan. Simple und einfach und doch gut zu zeigen, wie eine Spielmechanik programmiert werden kann.

Standardbasic

Aber ist es möglich (eine Recherche steht noch aus) ein Action-Spiel zu machen, das allein in BASIC programmiert ist und auf allen Systemen läuft? Was natürlich jede Art von Spezialfeatures per se ausschliesst und das ausgehend vom C64 Basic.

Ausgabe: Print

In Sachen Ausgaben ist BASIC nicht gerade der Hit. Die meisten Basics aber besitzen sicher PRINT. Und was auch interessant ist – es gibt meist PRINT String und PRINT String Return. Einen allgmeinen Standard zum Positionieren des Cursors existiert – soweit bekannt – in Basic nicht. Es gibt nur sehr viele Hacks für jedes System. Und damit sollte sich doch auch ein Actionspiel machen lassen. Zudem bringt PRINT mit RETURN die Möglichkeit mit den Bildschirm zu scrollen.

Gamekonzept?

Ist es möglich in einer Linie ein Gamekonzept zu erschaffen? Ein einfaches Shoot-Em-Up oder Sammlerspiel? Diese Frage hat vor einigen Jahren eigentlich Robin Baumgarten beantwortet mit seinem Line Whobbler. Es ist ein eindimensionales Rollenspiel mit einem LED-Lichtstreifen und einem Extrakontroller. Das Konzept ist beeindruckend einfach und funktioniert sehr gut.

Ausgehend aus diesem Konzept liess sich schnell etwas entwickeln, was an Line whobbler erinnert, aber visuelle einen anderen Weg ging.

Version 1: ein kontrollierbarer Punkt – Endpunkt

Ein simple kontrollierbarer Punkt. Er kann nach links und rechts gesteuert werden und zieht automatisch gescrollt einen Schweif hinter sich her.

Technisch wird zuerst die Position per Space geschrieben und danach der Avatar hingehängt. Das Ganze ist je weiter links umso schneller (weniger Spaces), als gegen rechts. Das Ergebnis ist interessant.


Allerdings bricht das Spiel schon die erste Regel: Es nutzt einen Peek, um die Tastatur auszulesen. Basic war 1964 in dem damaligen Paradigma natürlich als Input/Output-Sprache (ohne Keypressed-Abfragen – sondern mit Return als Abschluss einer Eingabe – Input) designed.

Version 2: Fange ein Zeitextra

Die zweite Version addierte einen Extra, das man holen musste, um weiterspielen zu können. Sobald es gefangen war, wurde es per Zufall wieder anderswo ‚gespawnt‘. Im gesamten eine minimale Gamemechanik. Idee: Läuft die Zeit aus, ist das Spiel zu Ende. Wie weit bist du gekommen?

Weiterlesen

C64: Der ShellEditor – ein mysteriöses Interface (aus Darthmouth?) – Starting up mit Basic für alles

Viele der 8Bit-Homecomputer kamen mit einem Basic als Entwicklungsumgebung und auch als eine Art Betriebssystem daher. Disketten ansehen & Programme laden lief letztlich alles über Basic. [Siehe auch andere BlogEinträge in diesem Blog] So auch beim C64.

Basic war so quasi ein Verkaufsargument: Du kannst auch selber etwas mit dem Computer machen. Vergleichweise gut kann man das gerade beim ZX81 sehen. Da wird der Rechner als erweiterter Taschenrechner verkauft vom Design bis zur mitgelieferten Anleitung.

Das Basic ist beim C64 im ROM vorhanden und wird in den Speicher geladen beim Aufstarten. Und ist anscheinend 64k – 38911 Byte gross. Es ist ein schon damals uraltes Basic von Microsoft (siehe dazu Blogeintrag um Jack Tramiel).

Computer Handling in Basic

Der Text-Bildschirmspeicher (Textmode) ist dabei eine Art Editor. Lädt man etwa das Listing einer Diskette mit

LOAD "*",8,1

So befindet sich danach das Listing im Speicher. Und mit List lässt es sich ausgeben.

LOAD "TEST.PRG",8,1

Danach tippt man ein load „test.prg“,8,1 und lädt das Programm oder man fährt mit dem Cursor zur entsprechenden Zeile und hängt davor ein ‚load „‚ und danach ein ‚“,8,1″ und drückt RETURN. Schon wird das PRG geladen.

RUN

Mit dem ebenfalls Basic-Befehl RUN startet man das Programm. Und zwar egal ob, eine EXE oder ein Basic-Programm. Letztlich sind alle Binaries Basic Programme.

Mischung aus Shell und Editor (ShEd)

Das C64 Basic Interface ist eine Mischung aus Shell und Editor. Es ist eine Art Shell, weil man Befehle eingeben kann überall. Ein Editor, weil man konkret editieren kann. Dennoch ist es keine reine Shell (wie bei Unix, Apple II, MS-DOS, die ja eigentlich nur eine Zeile ist, in der Befehle eingeben werden können. Das Davor und das Danach ist der Output der Shell. Das ist im C64 Basic Editing fundamental anders. Hier ist alles gemischt. Hier führt das Return die aktuellste Zeile aus. Ein ähnliches Konzept findet sich auch noch in der Oberfläche der LILITH, wo auch jeder Text ausgeführt werden kann (soweit ich weiss, unabhängig vom Prg).

Tastatur

Im der Prä-GUI-Zeitalter ist die Tastatur, das wichtigste Eingabegerät. Sie ist tatsächlich qualitativ recht hochwertig für einen so ‚billigen‘ Computer (was ja im Design berücksichtigt wurde). Erinnert an die PC1-Tastatur. Auch die Höhe wirkt sich nicht, wie erwartet negativ aus, man kann damit gut arbeiten. Allerdings gibt es auch Unverzeihlichkeiten: etwa kein Cursorfeld (dadurch ist es wirklich schwierig zu navigieren auf der Oberfläche). Es muss mit Shift-Pfeil-Rechts nach links navigiert werden und dasselbe nach oben.

Die Tastatur übernimmt auch viele Dinge, die später dann ins GUI ausgelagert wurden und so strotzt sie wie fast alle 8Bit-Tastaturen vor Spezialktasten (Ebene Grafikblöcke, RUN/STOP etc).

Editing Basic

Das Basic nutzt nun diesen ShellEditor-Komplex auch massiv. Zusätzlich kommt hinzu, dass beim Editieren des Sourcecodes die Zeilennummern wichtig sind. Damit scheint der Editor zu erkennen: „Aha es gehört zum Source-Code“.

Weiterlesen

Erfahrungsbericht 1989: Listingspiel entwickeln und veröffentlichen

1988 hatten wir (mein Bruder 16, ich 17 und meine Schwester 15- wir lebten auf Bauernhof in der Ostschweiz Region Bodensee.) einen Atari 520 ST, den wir damals uns über den Musenalpexpress (eine weitverbreitete Sache wie man auch hier sieht) – einem papierenen Socialmedia aus heutiger Sicht (viele Gedichte und eigene Texte) – gekauft hatten mit eigenem Geld (zwei Jahre davor?).

Im Gespräch war auch noch ein Schneider CPC (mit 3.1 Zoll Disketten). Am Ende machte es aber (Gott sei Dank) ein Computer mit einer grafischen Benutzeroberfläche wie der Mac, den ich 2 oder 3 Jahre vorher in einem Computercamp in Romanshorn kennen gelernt hatte. Ein Ah-Erlebnis im Vergleich zur MS-DOS-Shell in der wir Basic starteten und programmierten in dem Camp und dem C128 in der Sekundarschule. Der Atari ST war günstig und mit bestem Preisleistungsverhältnis und er war vorallem modern: Grafik, GUI, Maus und schnell. Aber: Als Erstes mussten wir unser Single-Disk-Laufwerk (360kb) mit einem DoubleDisk (720kb) nachrüsten. Dieses besorgten wir uns ‚ennet‘ der Grenze in Konstanz.

Unser Haupttreffpunkt war aber der Computerladen „Rietman“ in der Frauenfelder Innenstadt. Wo man nach der Schule hinging und Dinge wie Spiele ausprobierte, die man sich nicht leisten konnte.

Aus einem Ricardo-Inserat, der Sticker auf einem Commodore PC.

Weiterlesen