Archiv des Autors: admin

Digitalisierung – Phasen [Draft] Version 1.1

Digitalisierung ist eigentlich ein komplexer Prozess, bei dem es vermutlich immer darum ging, weg zu kommen von den Constraints des Analogen hin zum Gestaltbaren und damit Kontrollierbaren. Oder anders gesagt: zu selbstläufigen Prozessen, unabhänig vom Menschen (vgl. dazu Turing Maschine etc). Dabei nutzte selbstverständlich – die nächste Schicht immer auch die Schicht darunter, um damit abstrakter und unabhäniger zu werden. Der Begriff Digitalisierung ist auch irreführend, weil er nahelegt, dass Nicht-Digitales digitalisiert wird, also umgewandelt. Dabei ist das nur eine Teil – denn es entstehen auch neue oder zumindest nur noch entfernt verwandte Techniken mitsamt ihren Kulturtechniken. Diese sind dann nicht mehr unbedingt rückübersetzbar. Das Web als Hypertext etwa, wo man tatsächlich Ähnlichkeiten sieht etwa zu Fussnoten, der Link aber dies interaktiv ermöglicht ohne den Gang in die Bibliothek quasi die „Defiktionalisierung“. Und dann gibt es immer ganz neue Dinge. Das Ganze ist vergleichbar mit der „Gutenbergisierung“ – wo auch ganze neue Formate entstanden – etwa das Buch. Aber natürlich auch weit mehr, da die Digitalisierung letztlich nicht mehr auf Menschen als Prozessor bauen muss, sondern eben den Computer erfunden hat, die unabhängig vom Menschen Dinge prozessieren kann und so Server bis zu AI ermöglicht. Dadurch ist es auch möglich sehr viele Dinge, die vormals nur sozial möglich waren oder nur als psychische Prozesse da waren zu defiktionaliseren, also anders gesagt: als Software zu realisieren. Es geht also auch um die Erweiterung der auf Menschen laufenden Medien zu einem Konglomerat von auf Menschen- und Computer-laufenden Medien und der damit verbundenen Gesellschaft.

Interessant ist selbstverständlich auch (siehe L.) das gerade die eigentliche Digitalisierung auch in verschiedene Abschnitte eingeteilt werden muss, die jeweils „ganz andere“ Voraussetzungen hatten (etwa 8Bit Homecomputer vs 16/32Bit Homecomputer).

CrossPlatform-BASIC-Game (8-Bit Homecomputer) – Möglich? LineJewels/LineJewls 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.

Taschenrechnergames – ein fast vergessenes Genre

In den 80er bis Anfang 90er war der Taschenrechner oft auch ein Taschencomputer. Rechnen war dabei seine erste Funktion mit den Sonderfunktionen wie Sin/Cos/Tan/Wurzel etc. Dazu waren sie meist programmierbar und wurden in den Gymnasien auch benutzt, um etwa ins Programmieren einzuführen. Meist BASIC. Ein Beispiel mit weiterer Verbreitung war etwa der PC-1401/1402 von Sharp (1983+)

Auch er war programmierbar und in einem gewissen Sinn noch ganz im Fahrwasser des Darthmouth Basic nämlich vorallem auf Input/Output ausgerichtet.

Und viele Schüler* mussten darauf programmieren, aber haben aber auch selbst dann eigene Software entwickelt oder abgetippt. Die Möglichkeiten waren natürlich auch begrenzt: 1 Zeile, wenig Zugriff auf die Display-Matrix.
Das meiste dieser Software scheint (leider auch schwierig etwas aus diesen Taschencomputern herauszubringen) allerdings für immer verloren zu sein und so finden sich selbst im Netz leider nicht besonders viele Beispiel dazu .-(

Sollte aber dennoch jemand etwas gerettet haben, meldet euch! Oder es ist Zeit wieder anzufangen: Handbuch >

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

Werbung für GameMakingTools – Garry Kitchens Gamemaker 1986

Es gibt drei Arten von Werbung in Computerheftchen der 80er Jahre, die heute fast interessanter sind als in ihrer Entstehungszeit: Die Suche nach Games zum Veröffentlichen (Publisher), Personal für Gamedevs 1985 (heute Gamestudios) und die Werbung für GamedevTools wie Arcade Machine 1982, AdventureKonstructionKit (1984),, SEUCK 1987, STOS, AMOS oder eben Garry Kitchens Gamemaker. Alle drei Typen waren eher selten und fielen oft gar nicht aktiv auf, weil sie sich des grafischen Universums der Games bedienten und damit im Gameuniversum untergingen.

Werbung für GameDevTools

Warum sind Letzte noch spezieller? Sie möchten meist Metaware in die Spielentwicklung bringen oder das was wir heute Autorensysteme oder dann „Engines“ nennen. Dabei ist etwa um 1986 klar, dass es zwar Editoren für Visuals etc braucht, aber um ein professionelles Spiel herzustellen mehrheitlich Assembler das Mass der Dinge ist (Spezialistentum, Geschwindigkeit). Und dennoch gibt es einige Tools, die sich klar an eine neue Zielgruppe richtet. Nennen wir es, die Leute, die keine Technik Cracks sind und dennoch Games machen wollen. Es ist also ein ähnlicher Approach wie wir dies mit dem Aufkommen von GameEngines in den 90er Jahren (mit Doom und co, die nun mehr und mehr von 3D-Spezialisten entwickelt wurden, was eine zusätzliche Spezialisierung voraussetzt) oder dann wieder um Mitte der 2000er Jahre (auch mit neuen Tools, die auf diese Szene abzielt wie Flash und dann Unity3d) sehen. Grösstes Problem ist in den 80er Jahren selbstverständlich die Performance von nicht massgeschneidertem Code in Kombination mit wenig Speicher in der 8Bit Welt.

Garry Kitchens Gamemaker

Garry Kitchens Gamemaker lässt das schon anklingen im Namen: GameMaker – Mache Spiele! Darüber wird schnell klar, es ist ein Set von verschiedenen Editoren, die in einem Tool vereint sind.

Diese Werbung findet man unter anderem hier im COMPUTE! July 1986.

Das Heft selbst präsentiert sich als „The Leading Magazine Of Home, Educational, And Recreational Computing“. Wobei natürlich sehr interessant der letzte Teil ist „Recreational Computing“.

Werbung

Die konkrete Werbung. Titel: „DESIGNING YOUR OWN COMPUTER GAMES JUST BECAME EASY“.

Der Titel verschiebt schon den Fokus vom Entwickeln aufs „Designen“ und macht damit klar: Es ist eher ein Visueller und dann eher offener Design Begriff, der das ganze Design eines Computer Games abbildet – also das gesamte Spiel in einem. Das ist besonders bemerkenswert, da damals der BottleNeck noch viel mehr die Technik und damit vorallem die Programmierung war.

Weiterlesen