Christian Huberts, Sebastian Standke (Hrsg.)
Atmosphären im Computerspiel
セw「@
Fachverlag für Medientechnik und ·Wirtschaft
C. Huberts/S. Standke (Hrsg.): ZwischeniWelten
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen
Nationalbibliografie; detaillierte bibliografische Daten sind im Internet unter
http://dHnb.de abrufuar.
©Verlag Werner Hülsbusch, Glückstadt, 2014
V \AJ 1-.. Verlag Werner Hlilsbusch
I
J Fachverlag fUr Medientechnik und ·Wirtschaft
www.vwh-verlag.de
Einfache Nutzungsrechte liegen beim Verlag Werner Hülsbusch, Glückstadt
Eine weitere Verwertung im Sinne des Urheberrechtsgesetzes ist nur mit
Zustimmung der Autorlinn/en möglich.
Markcnerklärung: Die in diesem Werk wiedergegebenen Gebrauchsnamen, Handelsnamen, Warenzeichen usw. können auch ohne besondere Kennzeichnung geschützte
Marken sein und als solche den gesetzlichen Bestimmungen unterliegen.
Korrektorat und Satz: Werner Hülsbusch
Umschlag: design of media, Lüchow
Druck und Bindung: SOWA Sp. z o. o., Warszawa
Printed in Poland
ISBN: 978-3-86488-063-6
Sprachregeln und Spielregeln
Von Computerspielen und ihren Programmierfehlern
von Stefan Hältgen
Der vorliegende Text stellt eine medienarchäologische Perspekti ve auf das
Thema Atmosphäre im Computerspiel dar. Da es der Medienarchäologie als
Forschungsmethode zentral um das Medium als Kanal und nicht um dessen
Inhalt, Nutzungsweisen und Wirkungen geht, streifen meine Ausführungen
diese Ebenen auch nur am Rande (wiewohl ich davon ausgehe, dass die anderen Forscher und Beteiligten an diesem Sammelband diese Themen viel
angemessener analysieren, als ich es könnte). Dies bedeutet jedoch nicht,
dass die Medienarchäologie nichts zu ästhetischen Phänomenen im Allgemeinen und dem Thema der Atmosphäre im Besonderen beizutragen hätte.
Es soll sich vielmehr zeigen, wie - in einer dialektischen Wendung - die Generierung von Atmosphäre im Computerspiel gerade durch ihre Bedrohung
und Zerstörung auch - ja, vor allem - von technischen Aprioris abhängt. Im
Moment des (Programmier- oder Design-) Fehlers wird der Spieler nämlich
aus seiner immersiven Spielerfahrung und der Atmosphäre des Spiels
herausgerissen und förmlich gewaltsam auf die technischen Bedingungen des
Spiel s zurückgeworfen: Er wird zur Reflexion über das Wesen des Spiels als
Computerhardware sowie -Software aufgefordert - was wiederum ganz andere und weiterführende Paratexte aufruft und Handlungen generiert (die vom
frustrierten Abschalten über das Beschädigen der Hardware bis hin zum Erlernen des Debuggings reichen, mithin also eine hochproduktive und emanzipierte Mediennutzung inaugurieren können). 1
Nicht unerwähnt darf bei einer solchen Betrachtung auch das Phänomen
des provozierten und inszenierten Fehlers bleiben, der sich gerade in den
letzten Jahren und mit zunehmender Konzentration auf alte Spielhardware
und -Software als Glitch Art zu einer medienepistemologisch hochinteressan-
I ln einer der eher seltenen Untersuchungen des Fehlers im/beim Computerspielten unterstreicht Philipp Boj ahr diesen Zugri ff, unter den sich auch eine "Suche nach Fehlern"
wie meine vorliegende (als nicht bloß akademische Beschäftigung) verstehen ließe:
" Der Spieler bleibt [ ... ] die letzte Wertungsinstanz, die beurteilt, ob eine Störung vorliegt" ( Bojahr 20 12, 158). Mit anderen W orten: Wer nach Fehlern sucht, kann darin
eine alternative Art des Spielens entdecken.
296
Stefan Höltgen
ten Beschäftig ung durch unterschiedliche Kunst- und Spiel(er)szenen etabliert hat. Diese bewusste Auseinandersetzung mit dem Programmierfehler
als Kunstform generiert dabei ganz eigene Atmosphären, die sich im Sinne
einer pestmodernisti schen Ästhetik der Entgrenzung, Zitati on und Ironisierung von tradierten Spielkonzepten abhebt und den Spieler auf die Metaebene seines eigenen Tuns und dessen Bedingungen verweist.
"Are you able to Iead Tom through a 178 screens big pyramid to get
Manilo's treasure?" Diese Frage, die am oberen Bildschrimrand während des
ganzen Spiels Tom Thumb ( 1986) durchscrollt, ist weniger eine Frage als ein
Versprechen auf ein Abenteuer. Sie gibt die Erwartung und die Atmosphäre
des Spiels vor: Eine 178 Bildschirme große Pyramide wirkt gewaltig gegenüber der Spielfigur, die gerade einmal ei nen Bruchtei l nur eines einzigen
Bildschirms einnimmt. Der Erhabenheit dieses Spielesetting steht allerdings
Ernüchterung gegenüber, denn die Frage ist in einem doppelten Sinne rhetorisch gemeint, da man sie etwa zur Hälfte des Spiels konsterniert mit "No, I
am not!" beantworten müssen wird (Abb. I).
Abb. I
Die fehlplatzierte BitmapGrafik macht eine Fortsetzung der CommodoreC l 6-Version des Spiels
hier unmöglich.
(Tom Thumb, Kingsoft
1986, Screenshot)
Tom Thumb gleicht zahlreichen Jump' n' Run-Spielen seiner Zeit - mit
dem Unterschied, dass die meisten davon (wie beispielsweise Montezwna's
Revenge, 1984, oder aber Prince of Persia, 1989) nicht auf dem Commodore
C 16 verfügbar waren. In Tom Thwnb muss man seine Spielfigur durch Labyrinthe steuern , über gefahrliehe Abgründe springen, Monstern ausweichen
und immer wieder Leitern erklimmen und Türen öffnen, deren Schlüssel zuvor eingesammelt werden müssen. Nach etlichen der angepriesenen 178
Screens gelangt man dann an eine Leiter, an deren oberen Ende der Weg zum
nächsten Schlüssel freigegeben wird, mit welchem d ie T ür zum Weiterkom-
Sprachregeln und Spielregeln
297
men geöffnet werden soll. Am oberen Ende der Leiter dann die Überraschung: Jene Pfähle, die überall im Spiel aus dem Boden hochfahren und
übersprungen werden müssen, wachsen auch aus der obersten Leitersprosse.
Dies führt dazu, dass man die Leiter nicht bis zum Ende erklimmen kann einen anderen Weg zum nächsten Schlüssel gibt es jedoch nicht. Das Spiel ist
damit zu Ende, oh ne dass man sein Ende jemals zu sehen bekommen würde.
Grund für dieses Ende ist ein Programmierfehler, der hier keinen Abbruch
(und Aufbruch der Immersion), sondern im Gegenteil die endlose Gefangenschaft der Figur im Setting nach sich zieht. Bei der Level-Konstruktion wurden in einem unachtsamen Moment zwei Bitmap-Grafiken neben- bzw.
übereinander gelegt: Das eine für die Leitersprosse, dessen Kollision mit dem
Bitmap der Spielfigur ein Erkl immen der Leiter und Erreichen der Position
oberhalb des Leiter-Bitmaps zur Folge hat; sowie das andere für die aus dem
Boden fahrenden Pfähle, deren Kollision mit dem Bitmap der Spielfigur
normalerweise den Abzug eines Lebens zur Folge hätte, wenn die Kollision
hierbei nicht von unten her stattfinden würde. Wahrscheinlich erkennt die
Subroutine des Programmcodes hier lediglich ein für die Figur undurchdringliches Hindernis. Die Frage, wie solch ein Programmierfehler entsteht, zu
welcher Klasse von Programmierfehlern er zählt, welche anderen Programmierfehlerklassen es (insbesondere in Computerspielen) gibt, welche Konsequenzen sie für das Spiel und das Spielen haben und nicht zuletzt, wie Programmierfehler produktiv nutzbar gemacht wurden und werden, ist das
Thema dieses Beitrags.
Syntax-Terror
Zunächst wäre zu klären, was überhaupt ein Programmierfehler ist. Handelt
es sich lediglich um einen Regelbruch bei der Sprachverwendung, der wie
bei natürlichen Sprachen auf verschiedenen Ebenen (Orthografie, Syntax,
Semantik) stattfinden kann ? Oder kommt durch die Tatsache, dass an einem
Ende der Sprache die Signalverarbeitung der Maschine und am anderen
Ende eine formale Grammatik steht, etwas zum Phänomen des Fehlers hinzu? Historisch gesehen sind Programmierfehler so alt wie die Programmierung selbst. In dem Sinne, in dem ein Computerprogramm aus der universellen Turingmaschine eine spezielle Maschine baut, verweisen sie auf e ine
Dysfunktionalität, die erst durch den Hardware-Software- Verbund auftreten
298
Stefan Höltgen
kann. Insofern ist der Bug (als Problem der Hardware) vielleicht vom Glitch
(als Problem des Verbundes) zu unterscheiden.
Damit aber würde einer der Ursprungsmythen des Programmierfehlers
desavouiert: Jene Anekdote von der Motte, die Grace Hopper am 9. September 1945 zwischen den Relaiskontakten des Mark li gefunden und als Bug
identifiziert hat, und di e deshalb gar nichts mit dem Programmieren des
Rechners zu tun hat, sondern als Unterbrechung des Signalflusses ausschließlich mit dessen Hardware-Funktionalität. Der Terminus Bug wäre mithin für
j ene Störung reserviert, unter die heute (Hardware-) Desig nfehler subsumiert
werden. Programmierfehler sind demgegenüber etwas anderes, denn es gab
sie schon vor der Motte - seit die W ebstühle Joseph-Marie Jacquards im
ausgehenden 18. Jahrhundert mit fehlerhaft gestanzten Lochstreifen programmiert wurden. Bis heute sind Programmierfehler nicht seltener geworden. Man geht davon aus, dass ein gutes Programm - das heißt eines, das
mehrere Prüfstadien (Alpha- und Beta-Versionen) durch laufen und vielleicht
sogar schon mehrere Versionssprünge hinter sich hat - nur noch zwei Fehler
pro 1000 Zeilen Code enthält. Normale Programme hingegen enthalten bis zu
25 Fehler in derselben Menge Code.
Syntaxfehler
Semantikfehler
Logikfehler
キイゥエセョH
GJ I[@ statt キイゥエセョH
GJI[@
a = (b = c); statt a = (b = c);
l 0 INPUT J , 2 oder 3 ,A
20 IF A<=4 THEN GOTO 10
statt
20 IF A>3 THEN OOTO 10
II
II
Fehlertypen und Beispiele aus PASCAL (o.), C (m.) und BAS IC (u.)
Die offensichtlichsten Programmierfehler sind diejenigen, die den Programmablauf (durch Absturz und/oder Ausgabe einer Fehleranzeige) unterbrechen: Syntax-Fehler, also solche, die in der Falschverwendung der Orthografie oder der Syntax der Programmi ersprache entstehen - erstere, wenn
etwa ein Wort falsch geschrieben wird; zweitere, wenn man gegen die syntaktischen Konstruktionsvorgaben der Sprache verstößt (Schleifen nicht
schließt, Sprungziele nicht/falsch definiert, Befehlszeilen nicht korrekt abschließt, etc.). Dann ko mmen die semantischen Fehler, welche dazu füh ren,
d ass das Ergebnis eines Programmteils unerwartet ausfällt, wenn man z. B.
eine falsche Funktion. korrekt aufgerufen hat, so nutzen einige Programmiersprachen zur Wertübergabe an Variablen das ,=' , für den logischen Identitätsvergleich j edoch ,=='. E ine Verwechslung beider durch Vertippen führt
Sprachregeln und Spielregeln......______
299
regelmäßig zu unerwartetem semantischen Verhalten des Codes. Diesen Fehlern ähnlich sind logische Fehler, die einen Widerspruch im Algorithmus
erzeugen. Das geschieht beispielsweise, wenn das Programm etwa die Eingabe einer Ziffer zwischen 1 und 3 verlangt, danach jedoch zur Eingabe zurückspringt, solange die Eingabe kleiner als 4 ist- dann bleibt das Programm
in dieser Eingabeschleife hängen.
Programmierfehler lassen sich auch danach klassifizieren, wann sie auftreten. Syntax-Fehler offenbaren sich mit dem ersten Aufruf des Programms,
Semantik- und Logik-Fehler können noch in der Testpha5e gefunden werden.
Lm4zei{f'ehler hingegen zeigen sich oft erst viel später und führen zu den
größten Problemen bei der Ausführung des Codes. Auch sie haben zumeist
nicht einen Abbruch des Codes zur Folge, sandem eine unerwartete Funktion
desselben. Sie entstehen erst, wenn dieses Programm mit vom Programmierer nicht berücksichtigten Daten zur Lmd'zeit arbeitet: Das kann ein Sensorwert sein, der außerhalb des definierten Bereiches liegt, eine Eingabe, die zu
einem Rechenfehler führt, eine konfligierende Software (Treiberkonflikte),
eine falsche Betriebssystemversion und Ähnliches. Diese Art von Fehler
zeugt am deutlichsten vom Scheitern der Lösung dessen, was Programmieren
eigentlich zum Ziel hat: die Reduktion eines weltlichen Problems auf einen
Algorithmus, was natürlich voraussetzt, dass er alle maßgeblichen Facetten
des weltlichen Problems auch (er)kennt. Leider zeigen sich die meisten dieser Facetten erst in der ,freien Wildbahn', nachdem das Programm veröffentlicht wurde.
Zur Vermeidung von Programmierfehlern ist intensiv geforscht und gelehrt worden. Da Programmiersprachen zu den formalen Sprachen zählen, ist
das Verhalten der aus ihnen formulierten Programme stets vollständig determinierbar. Es existieren sogar Sprachen wie beispielsweise Ada, deren Programm-Effekte mathematisch beweisbar sind, Programme, die bei der Fehlersuebe helfen, indem sie automatische Fehlertests durehführen2 und Tools
zur Überwachung des Programmablaufs zur Verfügung stellen (Debugger)bis hin zum schrittweisen Durchlaufen des Codes (Single Step und andere
Tracing-Verfahren). Auch Fehlertoleranz ist in gewissem Umfang programmierbar, etwa durch Anweisungen, was zu tun ist, wenn bestimmte Fehler-
2 "Aber auch diese Methode garantiert nicht den hundertprozentigen Erfolg[, weil] Tests
immer nur die Anwesenheit, nie aber die Abwesenheit von Fehlern beweisen können"
(Grams 1990, 4).
300
Stefan Hältgen
meldungcn erscheinen. Das Vermeiden und Entfernen von Programmierfehlern stellt allerdings das Hauptziel dar und erl{>rdert zunächst das Einhalten
von programmierpragmatischen Regeln (vgl. Grams 1990, 5 f.) wie dem
Auskommentieren des Codes, der Codeerstellung in Hinblick seiner Wartbarkeil durch andere und der regelmäßigen Prüfung auf neuere Anforderungen von Systemen und Umgehungen.
Die meisten Programme entstehen nicht an einem Tag und werden nicht
von nur einem Programmierer entworfen und umgesetzt. Das bringt gleich
mehrere Probleme mit sich: Dokumcntiett man die bisherigen Überlegungen
und Entscheidungen (etwa in Kommentarangaben) nicht nachvollziehbar, so
wird es bei größeren zeitlichen Abständen zwischen den Programm.iersessions immer schwieriger, sich in die vorherigen Arbeit zurück- und damit in
den Code hineinzuversetzen. Ist dieser Code dann noch das Werk eines oder
mehrerer anderer Programmierer, werden solche Ungenauigkeiten zu oft onüberwindbaren Hürden, denn jeder Programmierer besitzt beim Entwurf von
Algorithmen und Routinen einen eigenen Stil (vgl. Hagen 1997). Solche
pragmatischen Hürden steHen allerdings die unterste Ebene und die vielleicht
amieich testen zu vermeidenden Programmierfehler dar.
An Programm.ierfehlern zeigt sich so deutlich wie sonst nirgends, wie unterschiedlich formale und natürliche Sprachen sind: Semantische Mehrdeutigkeiten oder gar Homofonien existieren in Programmiersprachen nicht, Onschärfen (etwa in der Orthografie) können nicht korrekt interpretiert werden
und führen rigoros zum Absturz des Programms bzw. zum Abbruch des
Compiliervorgangs. Aufgrund dieses Unterschiedes führen uns logische und
semantische Fehler aber auch das maschinelle Sprachverständnis deutlich vor
Augen, weil sie zu Resultaten führen, an die der Programmierer nicht gedacht hat: Die unmissverständliche Deutung einer aus der Perspektive der
Außenwelt unsinnigen Anweisung hat einmal dazu geführt, dem Computer
eine gewisse Doofheit 3 nachzusagen. Das ist a11erdings eine Haltung, die
dem Anwender auf der anderen Seite, dem Frontend, der Oberfläche zugestanden werden kann. Bei der tiefergehenden Fehlersuche ist von solcher
Evokation (vgl. Grams 1990, 9) dringend abzuraten. Vielmehr gilt, dass uns
Programmierfehler mindestens ebenso viel über uns selbst wie über Computer lehren.
3 Vgl. den einschlägigen Popsong Computer sind doqfvon 1982, in welchem die Band
SPLIFF alle Arlen von Programmierfehlern besang.
LsBGー」イ。ᄋjNエセM・ァャョ⦅ゥQ
301
Programmierfehler in Computerspielen
Eigentlich sind Computerspiele fehlertolerant, sofern die Fehler vom Spieler
ausgehen. Falsche Eingaben und Regel verstöBe werden vom Code abgefragt
und führen zu symbolischer Bestrafung (Punkt- oder Lebensabzug). Zumeist
geschieht aber gar nichts, wenn der Spieler einen nicht definierten Spielzug
unternimmt: "Games providc room for error" (Krapp 2011, 76). Damit sind
allerdings nicht die Fehler der Unterfläche gemeint. Diese müssen vermieden
oder schnell behoben werden. Heutige Computerspiele werden dazu regelmäßig gepatcht, das heißt, fehlerbereinigt, neuen Betriebssystemanforderungen angepasst und mit zusätzlichen Features versehen. Das ist besonders
deshalb möglich, weil Spielcomputer heute oft über einen Zngang zum Internet verfügen, der die Prüfung auf neue Versionen, deren Download und die
Installation problemlos macht. Das war jedoch nicht immer so. Noch vor
wenigen Jahren mussten fehlerhafte Spiele vom Hersteller zurückgenommen
und gegen fehlerbereinigte getauscht werden, oder aber es erschienen p。エ」ィセ@
Disketten bzw. Anleitungen, in denen der Spieler das Spiel selbst debuggen
konnte. In den l970er- und -80er-Jahren war jedoch selbst dies eine absolute
Ausnahme: Fehlerhafte Spiele blieben fehlerhaft. Das lag einerseits daran,
dass sie oft in Hardware verbaut waren (etwa als ROM-Module), die sieh gar
nicht nachträglich korrigieren ließen,' andererseits, weil die Fehler aufgrund
der vergleichsweise kleinen Spielereommunity und der Schwierigkeit der
Spiele nicht selten erst sehr spät entdeckt wurden. Da existierte ein Distributor manchmal schon nicht gar mehr oder hoffte darauf, dass das niedrigpreisige Spiel den Aufwand nicht wert erscheinen ließ. Das eingangs erwähnte
Tom Thumb kann als Beispiel für die letzten beiden Gründe dienen.
Tom 177Umb zeigt ein sehr deutliches Beispiel von semantischem Fehler:
Das Programm bricht aufgrund der Falschprogrammierung nicht ab, es bliebt
auch nicht in einem Codeti'agment (etwa einer Schleife) hängen, sondern
führt im Gegenteil zu einem jeder Turingmaschine immanenten Halteproblem. Der Computer selbst kann nicht erkennen, dass das Ergebnis der Kolli-
4 Für die Spiele der Atari-VCS-Konsolc sind etliche Bugs bekannt, die nicht entfernt
wurden (vgl. 2600 Connection o.J.). Ein interessanter Designfehler befindet sich auf
dem Pong-Chip A Y -3-8500: Wenn man den Auswahlregler für die Spielwahl zwischen
zwei Spiele stellt, zeigt sich ein Soccerfor 5, das nicht etwa programmiert wurde, sondern durch die Brückung von Kontakten entsteht und spielbar ist (vgl. Hältgen 2012).
302 ------------------------"S",te"-ü'"u"-1'"H"'ö"'lt;;g"""en
sionsabfrage 5 an dieser Stelle zur ewigen Wiederkehr des Immergleichen
führL Das grafische Labyrinth der Spielsemantik ist für ihn (und offensichtlich auch für den Programmierer) nicht in Gänze überschaubar und dies hat
den Fehler provoziert, der erst im Nachhinein und beim Blick auf das Spielganze sichtbar wurde. Epistemologisch schließt Tom Thurnh damit an eine
Tradition an: Bereits Claude Shannon war 1952 in seinem Theseus-Spicl auf
einen ganz ähnlichen Fehler ァ・ウエッョセ@
den er bei der Konstruktion seines
Digital-Labyrinths 6 entdeckte: In bestimmten Situationen lief die Maus oberflächlich betrachtet zwischen immer denselben vier Positionen hin und her.
Unter der Oberfläche (und also auf der Unterflächc) 7 sorgten vier Relais dafür, dass der Richtungswechsel zu einer Rückkopplung führte, bei der das
Ausgangssignal des ersten Relais (sichtbar gemacht durch die Maus Theseus)
zum Eingangssignal des zweiten Relais wird, das daraufhin das Eingangssignal des dritten Relais liefert, welches die Maus das vierte Relais ansteuern
lässt, das sie dann aber zurück zum ersten führt. Der obuflächlich sichtbare
Effekt ist, dass die Maus im Kreis herum läuft. Shannon erkannte den Fehler
5 Auch wenn an anderer Stelle von Ober- und Unterfläche des Spiels gesprochen wird,
sei hier hervorgehoben, dass Pixelkollision durchaus programmatisch zu verstehen isL.
An ihr zeigt sich, dass die grafische Oberfläche eines Computerspiels nicht immer bloß
ein semantisierender Rahmen sein muss, sondern konstitutiv für den Fortgang des
Codes sein kann: Das gesetzte Bit auf dem Bildschirm ist zunächst eines, das im Bi Ieischirmspeicher gesetzt wird, nach den Regeln der Hardware aber gleichzeilig zum Signal für dem Monitor wird und darauf als Pixel erscheint. Wenn im Grafikspeicher der
Zustand dieses Bits geprüft wird, ist das nichts anderes als die Frage, ob ein Pixel an
der entsprechenden Stelle dargestellt wird oder nicht.
6 Hier zeigt sich, dass ein Glitch auch dann auftreten kann, wenn ein Code für den Ablauf
nur implizit vorhanden ist, also gar nicht ausformuliert wurde: Die wortwörtliche Logik
des Spiels enthält einen Logik-Fehler, der zu einer Endlosschleife führt. Im Gegensatz
zu Hoppers Bug mit der Motte ließe sich dieser G!irch auch als Software nachprogrammieren.
7 Frieclcr Nake fasst dies in einem Vortrags-Abstract gekonnt zusammen: ,,Alles, was aus
dem Computer kommt, existiert doppelt: es existiert als sinnlich wahrnehmbare Oberfläche (vornehm: surface) und als symbolisch manipulierbare Unterfläche (subface).
Die Oberfläche ist für uns da, für die Menschen. Die Unterfläche ist für sie da, für die
Computer. Für uns fängt alles mit den Sinnen an. Für die Maschine aber mit dem Code.
Wenn jemand programmieren will, dann muss er oder sie lernen, so zu denken, wie
eine Maschine denken würde, wenn sie es könnte" (Nake, nach NODE r'orum for Digital Arts 2010; vgl. Nake 2006).
Sprachregeln und Spieiregehl
303
auch erst nach der Implementierung (also zur Latifzeit) des Spiels und nannte
ihn singing condition (vgl. Shannon, zitiert nach Pias 2003, 474 f.).
Zur ihrer Vermeidung fügte er eine Abfrage ein, nach der beim sechsfach
wiederholten Anlaufen des immer selben Relais eines dieser Relais irregulär
schaltet und die Maus so aus dem circulus vitiosus entlässt. Gegen die ursprüngliche Spielregel, dass die Maus beim Auftreffen auf ein Hindernis eine
90"-Kehre vollführen soll, wurde so vorsätzlich (man könnte auch sagen
programmatisch) verstoßen. Eine ganz ähnliche Problemlage trat bei der
Herstellung des Spiels Breakout (1976) auf8 Die einfache Regel, nach der
ein Ball von einem via Paddle gesteuerten Schläger gegen eine Ziegelwand
geschlagen wird, aus der so die Ziegel nach und nach verschwinden, lautete
Einfallswinkel = punktsymmetrischer Ausfallswinkel. Die Flugbahn gehorcht
also scheinbar den außenweltliehen Gesetzen physikalischer lmpulserhaltung.9 Tatsächlich wurden die Ausfallswinkel jedoch vom Programmierer
exakt definiert: So prallt der Ball bei den ersten sechs Schlägerkontakten in
nur sieben unterschiedlichen Winkeln von diesem ab Ge nachdem, wo er den
Schläger trifft). Danach wechselt er dann alle sechs Schlägerkontakte seinen
Winkel. Der Grund für dieses für den Spieler unberechenbare Verhalten war
einerseits, die Spielschwierigkeit durch das Einbringen von Unwägbarkeiten,
die ja auch in außenweltliehen Spielen existieren, zu erhöhen. Andererseits
wurde der Ball so vor der singing condition bewahrt, die angesichts der
Hardware-Beschränkungen der Spielfeld-Rasterung leicht auftreten konnte.
Fliegt der BaU nun einmal auf immer der gleichen Bahn zwischen Schläger
und Wand hin und her, ändert er nach sechs Kontakten automatisch seine
Richtung.
Für softwarebasierte Computerspiele, um deren fehlerhafte Programmierung es hier gehen soll, sind solche Glitches in mehrfacher Hinsicht bedeutsam. Computerspiele entwerfen eine Welt mit eigenen (Spiel-) Regeln, die
sich bereits im Code repräsentiert finden, der wiederum auf der Basis dezidierter Sprachregeln erstellt werden muss. Vom Programmierer sind also
zwei Regelsysteme miteinander in Einklang zu bringen und die Frage zu stel-
len: Wie formuliere ich meine Spielregeln nach den Regeln der Programmier.\]Jrache? Dass sich der Programmierer dabei nur in einer ideellen Welt
8 Breakout erschien zuerst für einen Spielhallen-Automaten und war deshalb nicht als
Software, sondern gleich als Hardware in Form einer TIL-Schaltung implementiert
9 Reim Berühren der orangencn Schicht verdoppelt er jedoch seine Geschwindigkeit.
304
Stefan Höltgen
aufhält, 10 führen seine Programmierfehler vor Augen. Schließlich zeugen sie
quasi vom Ei ndringen externer Bedingungen in das scheinbar geschlossene
Regelwerk. Solche Programmierfehler machen daher nicht selten ideologische, psychologische und ähnlich subtile Blindstellen sichtbar: Im Flugzeugkampf-Spiel Blue Max (1984) hat es der Programmierer nicht für möglich
(denkbar) 11 gehalten, dass der Spieler am Ende eines Levels nicht auf dem
eigenen Areal landet, um Treibstoff und Munitio n aufzunehmen, sondern
dieses stattdessen bombardiert. Das Ergebnis dieser Blindstelle ist, dass die
zuvor wohldefinierte Spielfeld-Oberfläche förmlich vor ihrer Code-Unterfläche wegbricht Anstelle der Wiesen, Bäume, Sträucher und Flüsse sind nur
noch Schriftzeichen zu sehen (s. Abb. 2).
Abb. 2
Nach dem Bombardieren
des eigene Hangars bricht
der Grafikbildschirm in
der Atari-800-Version von
Blue Max zusammen.
(Blue Max, Ariolasoft
1983, Screenshot)
Der schizoide Konflikt zweier Bedingungsabfragen ( I . Level-Ende erreicht? 2. Gebäude bombardiert?) führt dazu, dass eine Art synaptische Übersprungreaktion auftritt, durch die es seinen eigenen Code offenlegt und dem
Spieler das Material seiner Bitmap-lllusion vor Augen führt. Vor dieser Materialisierung des Codes soll der User immer schon geschützt werden, weshalb die GUI, das grafische User-Interface, die Unterfläche der Symbole von
der Oberfläche der Jeans trennt. Ihre grafische Oberflächlichkeit haben mo-
10 Nake nennt das in seinem Abstract das "abstrahierende, parametrisierende, rekursive
Denken [... ] Also [...] Programmieren" (Nake, nach NODE Forum for Digital Arts
2010).
II Die Gründe dieses Übersehens laden eine kulturwissenschaftliche oder diskurshistorisch orientierte Spielerforschung zur Interpretation ein.
305
Sprachregeln und Spielregeln
derneo Betriebssysteme von den alten Computerspielen geerbt - mit demselben Nutzen: "[T]he discoursive formation of computer games runs parallel to
that of the GUI: interaction revolves araund perception, hand-eye coordination, and discerning errors" (Krapp 20 II , 75).
ャ
セゥ
セ@
W ird man beim AtariVCS-Spie l Bautezone geAbb.
3 bricht die Grafiktroffen,
ausgabe zusammen.
(Ba/1/ezone, Alari 1983,
Screenshot)
Abb.4
Der Energiestreifen in der
Bildschirmmille der AlariVCS-Vcrsion des Spiels
besteht aus visualis iertem
Programmcode.
(Yar's Revenge, Atari
198 1, Screensho t)
An Computerspielen und ihren Fehlern zeigt sich also nicht nur sehr deutlich, was im Programmierer (unbewusst) vor sich ging, sondern auch, was in
Computern unsichtbar bleiben muss. So, wie GUis die Eingabefehler des
Users verzeihen und kompensieren sollen, 12 ignoriert Blue Max die Falsch-
12 Krapp schreibt über (feh lerlose) Spiele wei ter: "But although a typical GU t [...] aims
for visibility and patient acceptance (or even anticipation) of user error, games probe
the twitchy Iimits of reaction times and punish user error with loss of symbolic
energy" (Krapp 20 II , 75 f.). Beim fehlerbehafteten Blue Max hingegen brechen alle
symbolischen Dämme.
306
Stefan I-löltgen
eingabe der Bombe auf den eigenen Hangar und läuft nach dem GrafikZusammenbruch einfach weiter - nur fliegt man sein Pixel-Flugzeug nun
nicht mehr über eine isometrische Landschaftssimulation, sondern über eine
vertikal serailende Code-Halde. Schon zuvor haben Computerspiele sichtbar
gemachten Code ins Spielgeschehen gemischt: in Yar's Revenge (1981) auf
der Atari-VCS-Konsole bestehen der Schutzstreifen in der Bildschirmmitte
und das Explosionsbild am Ende eines Levels aus visibilisiertem Programmcode, der in den Grafik-Chip kopiert und dort durch Shift-Prozesse koloriert
und animiert wurde (s. Abb. 3). Im First-Person-3D-Panzerspiel Battlezone
(1980) für dieselbe Plattform besteht die Grafikanzeige, nachdem man einen
Treffer abbekommen hat, ebenfalls aus Programmcode (s. Abb. 4). Die Unterbrechung des Angriffsraums in Yar's Revenge und des Spielablaufs durch
Getroffenwerden in Battlezone zeigen sich hier jeweils als Durchbrechungen
zwischen Spielober- und -unterfläche. Das Resultat davon ist das Eindringen
eines technischen Moments in die Spielatmosphäre: Das Spiel, das wir spielen, ist eines mit einem Computer, der sich hier aus der extra- in die intradiegetische Welt drängt.
Das Spiel mit dem Code
Blue Max ist wie alle damaligen Spiele in Assembler programmiert worden.
Die Urversion wurde 1984 für die Atari-Heimcomputer veröffentlicht, in
welchen der populäre MOS-6502-Prozessor arbeitete. Auf diesem Mikroprozessor basierten die ersten Mikrocomputer: Apple I und li, Commodore PET,
VC-20, C64 sowie alle Atari-8-Bit-Systeme (auch in der VCS-Konsole arbeitet eine reduzierte Variante namens MOS-6507). Für Spielcomputer und
Computerspiele schien die MOS-Architektur nicht nur historisch die erste
Wahl zu sein. Daher war auch die Portierung des Spiels Blue Max auf andere
seinerzeit populäre 6502-Plattformen beinahe automatisch durchführbar: Der
Code konnte weitgehend übernommen werden; einzig die Adressen für das
RAM, die 1/0-Bausteine (zur Ansteuerung der plattformspezifischen Soundund Grafik-Chips) und andere Details mussten abgeände11 werden. Insofern
verwundert es auch nicht, dass in der Adaption des Spiels für den C64 derselbe Fehler auftaucht. Doch es gab einen Konkurrenten zum MOS-6502, das
Sprachregeln und Spielregeln
war der aus der Intel-Logik 13 hervorgegangene Z80-Prozessor von Zilog.
Beide Chips l_lnterscheiden sich in ihrer festverdrahteten Sprach-Implementierung zunächst nicht voneinander, wohl aber in der Materie, die ihren Maschinensprachen zugrunde liegt und deshalb auch im Vokabular derselben.
Schaut man sich die Unterschiede zwischen 6502 nnd Z80 allein quantitativ an, stellt man fest, dass den 131 erlaubten Opcodes des MOS-Chips 585
in der Zilog-Maschincnsprachc gegenüberstehen. Daran zeigt sich, dass der
6502 wesentlich orthogonaler angelegt ist und z. B. seine einzigen beiden
Indexregister für verschiedenste Zwecke einsetzbar sind. Im Gegensatz dazu
verfügt der Z80 über 22 hochspezialisierte Register (von denen sich einige
im vergessenen und im Schallenbereich der Hardware aufl1alten). Es werden
noch mehr, berücksichtigt man, dass durch "undocumented opcodes'" 4 die
vier reinen 16-Bit-Indexregister als je zwei 8-Bit-Register ansprechbar werden. Ähnliche Komplexitäten finden sich beim Z80 (im Vergleich zum 6502)
auch andernorts. Welche Rückschlüsse lässt dies nun für die Porticrung von
Blue Mnr auf einen Computer wie den Sinclair ZX Spectrum zu?
Denken wir zurück an die Regeln und Aufgaben des Programmiercrs zur
Vermeidung von Programmierfehlern, so scheint es evident, dass ein orthogonales Prozessordesign stärker zu idiosynkratischen Lösungen bei der
Spielprogrammierung einlädt als eines, das den Assembler-Programmierer
auf so vielfältige Weise gängelt, wie es der ZSO tut. Vielleicht übersteigt die
Anzahl der Spiele für 6502-Plattformen die de1jenigen für Z80-basierte
Computer bei Weitem, weil sich das Spielen bis in die Programmierung
13 Wortwörtlich: Das Akronym Intel steht für integrated electronics, während Zilog, der
Firmenname der von Intel abgewanderten Ingenieure, Z integrated logic bedeutet,
womit zwar zuvorderst aber ·- wie ich behaupten möchte - nicht ausschließlich das
letzte Wort in Sachen JCs gemeint war (vgl. Faggin et a!. 2007).
14 Sowohl der 6502 als auch der Z80 besitzen illegale bzw. undokumentierte Opcodes,
die durch emergente (6502) bzw. verschwiegene (280) Verdrahtungswege entstehen.
Beim Z80 führen diese Opcodes deshalb in den meisten Fällen zu sinnvolleren Funktionen, weil sie das Ergebnis der Prefix-Technologic sind, die Masatoshi Shima benutzte, um eine derartige Menge an Instruktionen im Prozessor zu implementieren.
Demgegenüber bringen die meisten der ca. 120 illegalen Opcodes des 6502 den Rechner zum Absturz oder besitzen keine Funktion (NOP) besitzen. Vgl. zu der Thematik
Young (2003).
308
durchschlägt. 15 Der Code für Jen ZX Spcctrum (respektive seinen Z80A)
musste aufgrund der großen Unterschiede zwischen den Prozessoren noch
einmal ganz neu geschrieben werden, auch wenn die Original-Sourcen dabei
vorgelegen haben dürften. Der illegale Spielpf(ul- das Zerbomben des eigenen Hangars- beim Atari konnte so durch Neuprogrammierung (in einer zudem sehr aufgeräumten Umgebung) gar nicht erst versehentlich betreten
werden.
Welche Auswirkungen der Prozessor auf den Programmierstil und dieser
wiederum auf die Funktion bzw. Dysfunktion eines Computerspiels haben
kann, zeigt ein anderes Spiel mit einem recht distinguierten Laufzeitfehler:
Ultima Il: Revenge of the Enchantress (1982) ist das erste Spiel der berühmten RPG-Reihe, das nicht in BASIC, sondern komplett in Assembler geschrieben wurde. Ebenfalls war es das erste Spiel der Reihe, das nicht mehr
ausschließlich für den Applc II, sondern auch für andere 8- und später l 6Bit-Plattformen portiert wurde. Der Urversion haftete jedoch ein Fehler an,
der sich allerdings erst einige Jahre nach dem Erscheinen zeigen konnte: Die
im Spiel benutzten illegalen Opcodes für den 6502-Prozessor des Apple II
waren auf den Nachfolgemodellen Ile/llc/IIgs mit ihrem 65C02-Upgrades
nicht mehr verfügbar, weswegen das Spiel zwar spielbar, aber wie schon
Tom 717Umb nicht mehr becndbar war. Die Software Ultima li: Revenge '!!'
the Enchantress wurde auf diese Weise zum Indikator für den Preis des
Hardware-Upgradings und konnte lediglich durch User-Eingriffe (hacking)
in den ins RAM geladenen Programmcodes wieder zum Laufen gebracht
16
wcrdcn.
15 Ein Beleg dafür könnte sein, dass man in zeitgenössischen Anleitungen für die
Assembler-Programmierung von ZSO-Plattformen lange nach Büchern über Spielprogrammienmg suchen muss, während sich solche für den 6502 geradezu aufdrängen. V gl. hierzu exemplarisch Zaks (1983 ).
16 "There is a Bug in thc old versinn of Ultima (non-remake) where it becomcs impossible to hit a target ship in space if you arc using an Apple Ile, Ilc or Ilgs (anything
beyond a li or II+ )."Details zum Fehler und seine Lösung finden sich unter Percival
( 1996) sowie Compgroups.nct (2005).
Sprachregeln und Spielregeln
309
Hacking & Cheating
Der Programmierfehler stört das ludisehe Moment des Spiels, bricht seine
Nurration auf, lässt die Immersion (also jene implizit 17 gestellte Frage des
Spielers nach dem Weg, den der Programmierer für ihn vorbestimmt hat)
platzen. Mit diesem Herausreißen aus dem Spielgeschehen durch die plötzliche Akzenturierung auf das Programmiertsein desselben stellt sich eine
gänzlich andere Atmosphäre ein, die dem technischen Moment jener cッ、・セ@
Offenbarungen aus Yar's Revenge und Batt/ezone vergleichbar ist. Das ist in
den meisten Fällen unerwünscht. Es gibt jedoch Spiele, bei denen sich die
Fehler als im Wortsinne gewinnbringend für den Spieler und Bereicherung
für die Spielatmosphäre erwiesen haben: Hält man beim Start von Space
Invaders (1978) die Reset-Taste der VCS-Konsole gedrückt, schießt das
eigene Raumschiff mit doppelter Frequenz. Wandert man bei p。」セmョ@
(1980) auf derselben Konsole in den Exil-Tunnel, bekommt man dort eine
Verschnaufpause von der Geistetjagd-' 8 Solche Effekte sind nicht mehr als
Programmierfehler klassifizierbm·. Hier handelt es sich vielmehr um vorsätzlich geöffnete Lücken im Spielregel-Set, realisiert durch nur zunächst
wenigen Spielern bekannte Code-Fragmente, sogenannte Cheats. Ob diese
Lücken vorsätzlich/werkseitig programmiert wurden, damit z. B. ein Spiel
vor dem Verkauf in Gänze getestet werden kann, oder sie auf einem Lapsus
beruhen, ist nur in seltenen Fällen entscheidbar. Wenn nach dem Programmstart etwa eine bestimmte Tastenkombination gedrückt werden muss, um das
Spiel zu erleichtern, lässt dies auf Absicht schließen: ln Lode Runner (1983)
gelangt der Spieler durch das Drücken von CTRL-E zu einem Extraleben,
durch CTRL-U ins nächste Level, kann aber seine auf diese Weise ergaunerten Punkte nicht mehr in die Highscore-Liste eintragen. In Tmn 7/uanb hat
der Programmierer es durch Bewegen des Joysticks nach Hinten (anstatt
17 In der Tat ließen sich hier die Iscr' sehen Modelle von impliziter Autorschqff und
Leserschqff applizieren, wie nicht zuletzt Claus Pias' medienarchäologisch motivierter
Perspektivenwechsel gezeigt hat, nachdem es immer auch das Spiel ist, das den sーゥ・セ@
ler spielt.
18 In der sーゥ・ャィ。」ョセvイウッ@
desselben Spiels ist es eine bestimmte Position auf dem
Bildschirm, an der man die Spielfigur abstellen kann, ohne dass sie dort von den sie
stetig suchenden und verfolgenden Geistern gefunden wird.
310
Stcfan Höltgen
Drücken des Feuer-Knopfes) ermöglicht, die Startposition der Figur nicht auf
den Anfang, sondern hinter die zuletzt passierte Tür zulegen.
Bei alten Computern werden Spiele nach dem Laden oft nicht gleich automatisch gestartet, sondern liegen zunächst latent im RAM. Damit öffnen
sie die immersionsstiftende suture zwischen dem 5lpie/enwo/len des Spielers
und dem Programmstart des S]Jiels und werden zugleich zugänglich für
Manipulationen: Mit einem Disassembler kann man ihnen zu Leibe rücken.
Dieser eröffnet dem Spieler die Möglichkeit, nach den Code-Stellen zu
suchen, die bestimmtes Spielverhalten steuern und damit die Spielregeln
definieren. Oft genug waren hier die Anzahl der Leben, Einsprungpunkte in
spätere Levels, Wahl und Anzahl der Waffen, Schiffe, etc. oder SpriteKollisionsabfragen das Ziel von Crackern. Entweder entwickelten diese sogenannte Trainer- Versionen, in denen man einzelne Cheats durch Tastendruck zuschalten konnte, oder veröffentlichten die RAM-Adressen, in denen
sich die Informationen für die entsprechende Spielregel befinden. Gibt man
bei Tom Thumb nach dem Laden und noch vor dem Starten den Befehl
POKE 13420,0 ein, so wird verhindert, dass die Kollision der Spielfigur mit
einem Gegner zum Verlust eines Lebens führt. So kann Tom aber selbst in
ausweglosen Situationen nicht mehr sterben, was denselben Effekt wie der
eingangs referierte Glitch hat.
Solche von Spielern und Crackern durchgeführten Cheats stellen eine der
frühesten emanzipatorischen Zugriffe auf den Mikrocomputer dar: Der Spieler begibt sich spielerisch auf eine Metaebene: vom "playing a game" zum
"playing with a game" (Krapp 2011, 77). Dieses Hacking unterläuft eben
deshalb "die Begriffe von richtiger oder falscher Verwendung, es dekonstruiert gewissermaßen den ,Missbrauch' selbst, indem es aufzeigt, dass ein Begriff von technischer Funktion, der an eine menschliche Intentionalität von
Zwecken gebunden ist, an Computern keinen Sinn macht" (Pias 2002, 84).
Cheats und Hacks öffnen damit den Weg für die professionelle Beschäftigung mit Computern, denn Hacking ist stets Programmieren- das ist bei frühen Mikrocomputern, denen Compiler und De-Compiler fremd waren, an das
Assembler-Lernen und Maschine-Verstehen gebunden.
Simulation als endloses Spiel mit dem Fehler
Tom Thumb ist ein Spiel ohne Ende- ohne, dass diese Aussage seiner spieltheoretischen Verortung bereits genüge täte. Der Programmierfehler schließt
Sprachregeln und Spielregeln
311
die Grenze: Aus dem Labyrinth-Spiel in spieltheoretischer Normalform, ohne
Erinnerung und ohne vollständige Beschreibung, wird hier ein Computerprogramm, das, sobald der Spieler vom Fehler weiß, nicht einmal mehr den
Minimal-Anforderungen an Spiele im Allgemeinen entspricht: Es ist nicht
gewinnbar und reizt deshalb auch nicht zum Spielen. Dennoch ließe sich das
derartig korrumpierte Tom 117umb spieltheoretisch klassifizieren und spielerisch retten: nämlich als die Iudische Simulation einer scheiternden Pyramiden-Exkursion. Abschließend möchte ich auf eine derartige systematische
Uminterpretierung vom Computerfehlern eingehen, wenn "glitches become
aestheticized, recuperating mistakes [ ... ]"(Krapp 2011, 76).
Computer können nichts anderes als Spielen: darauf und darauf, dass ihre
Spiele immer Simulationen (also durchgespielte Wirklichkeiten) darstellen,
hat Claus Pias hingewiesen. Insofern müssen fehlerhafte Spiele als misslungene Simulationen, Cracks und Cheats als programmierter Konstruktivismus verstanden werden: Ich mache mir die (Spiel-) Welt, wie sie mir gefällt. Ab einem gewissen Grad an (Spielregel-) Komplexität gerät allerdings
jede Simulation zu einem Computerspiel im engeren Sinne - dann nämlich,
wenn die Änderung der Simulationsparameter ein nicht mehr vorherseilbares
Ergebnis zur Folge hat. Je komplexer eine Simulation ist, desto reizvoller
erscheint dem Spieler der Umgang mit ihr, weil sie sich vom Spiel mit vollständiger Information hin zum sogenannten Boyes-Spiel bewegt, bei welchem dem Spieler nicht mehr alle Regeln bekannt und daher die Vorhersage
über die Wirkung eines Spielzuges nur noch statistisch möglich sind. Der
Reiz solcher Spiele steckt vor allem in der spielerischen Exploration ihres
Regelsystems und seiner möglichen Emergenzen.
Stellt man sich nun ein Computerspiel vor, bei dem an jeder beliebigen
Stelle das Regelsystem durch einen semantischen Programmierfehler unterminiert werden kann, kommt man einer so verstandenen Simulation schon
recht nahe. Nun sind solche Spiele wohl nur theoretisch möglich - oder
allenfalls im Rahmen eines Kunstprojektes wie dem im Berliner Computerspielemuseum ausgestellten ROM CHECK FAlL (2008). Einige der bisherigen Versuche, das Wirken von Programmierfehlern selbst im kleineren
Ausmaß als Simulationsspiel sichtbar zu machen, sind jedoch zu größerer
Popularität gelangt. Ganz technisch geht hier Bug Hunt ( 1987) vor: Der Spieler befindet sich in der Rolle eines Board-Designers bei Atari und will spätnachts die letzten Fehler aus seinen Game Circuits ausmerzen, als ganz plötzlich "real bugs" (wie es im Manual heißt) aus der Schaltung krabbeln
(s. Abb. 5). Diese sind nun vom Spieler abzuschießen, um sich den Ruf und
312
Stefan Höltgen
Rang eines "true Atari Game Designers" zu erwerben. Angesichts der Tatsache, dass das Spielsetting die Unterfläche eines Spiels beschreibt, müssen
die Bugs als von dessen Oberfläche stammend verstanden werden. Wie die
Motte im Relais setzten sie sich auf die signalverarbeitende Schaltung. Da
Bug Hunt nun aber diesen Prozess sozusagen durch Umdrehung der Platine
(und die Vertauschung von Spieler- und Programmiererrolle) ans Licht
bringt, ist es nur konsequent, dass die Bugs durch Licht beseitigt werden:
Mithilfe einer Lightgun wird der Spieler zum Debugger im emblematischen
Sinne.
Abb. 5
In der Atari-XE-Version
von Bug Hunt werden die
Designfehler als Käfer mit
Lightgun bekämpft.
(Bug Hunt, Atari 1987,
Screenshot)
Es geht jedoch noch postmoderner, wie das abschließende Beispiel Little
Computer People (1985) zeigt. Hier behauptet die Hintergrundgeschichte,
die Game-Designer David Crane und Sam Nelson hätten seltsame Glitches
beim Programmieren und Komponieren mit ihren Computern bemerkt und
sich entschlossen, das Innere des Rechners als ein Haus zu visualisieren, um
den Fehler auf diese Weise zu betrachten (s. Abb. 6). Sie seien selbst überrascht gewesen, als kurz nach dem Starten des Programms ein kleines Männchen in dieses Haus eingezogen sei. Sie fanden heraus, dass solche Little
Computer People in jedem Computer leben und für die Fehler verantwortlich
sind, die immer dann auftreten, wenn sie vom Besitzer des Rechners nicht
fürsorglich und nett behandelt werden. Crane und Nelson beschlossen daher,
das Hause on the Disk als Simulationsprogramm anzubieten, um so jedem
Nutzer zu ermöglichen, den kleinen Fehlerteufel in seinem Computer kennenzulernen und zu bändigen. Das Spiel Little Computer People kommt mit
diesem Paratext dokumentieJt als eine Art soziologische Feldstudie daher,
bei der man das Verhalten der Spielfigur untersuchen und protokollieren
313
Sprachregeln und Spielregeln
kann. Sie interagiert mit dem Nutzer über Kommandozeilen-Eingaben;
(angeblich) sei der gesamte interpretierbare Wortschatz der Fig ur jedoch
noch nicht bekannt und somit Gegenstand der U ntersuchung. Ein Ende hat
das Spiel nicht - selbst wenn die Spielfigur stirbt oder aus anderen Gründen
das Haus verlässt.
iii..l
Abb. 6
Liltle Computer People
(hier auf dem Commodore
C65) als anthropomorph isierte Programm ierfehler.
(Uule Computer Peopte,
Acti vision 1985, Screenshot)
Little Computer People ist die spieleri sche Rationalisierung und Visualisierung von Programmierfehlern, spielerseitigen Eingriffen ins System und
sogar Hardware-Designfehlern. U nd auch dieser sichtbar gemachte Fehler
spielt auf Grace Hoppers Tätigkeiten an. Hier (vgl. Höltgen 20 II ) ist es j edoch weniger der actual bug des Mark II als die Tatsache, dass Little Computer People einen der folgenreichsten Laufzeitfehler der EDV-Geschichte
enthält: Zu Beginn des Spiels wird man aufgefordert, das aktuelle Datum einzugeben, um zu r Steigerung der Authentizität die Zeit des Spiels mit der
Spielerzeit zu synchronisieren. M arkanterweise fordert der Code für die Jahreszahl aber nur die letzten beiden Dezimalstellen. Dieser Fehler wurde Jahre
später als Millennium Bug betitelt. ln die Welt gebracht hat ihn niemand geringeres als Grace Hopper selbst, als sie 1959 in der von ihr mitentworfenen
Programmiersprache COBOL aus Speicherpl atz-Gründen ebenso nur zwei
Ziffern für die Jahresangabe reservierte - ein Fehler, der sich über die Jahrzehnte in alle möglichen Systeme und Programme fortgetragen hat und
schließlich in Little Computer People dafür sorgt, dass der kleine simulierte
Programmierfehler das 20. Jahrhundert niemals verlassen kan n. A uf diese
Weise sperrt das Spiel den simulierten Programmierfehler in einen semantischen Laufzeitfe hler ein.
Stefan Höltgen
Ludografie
Atari (1987): Bug Hunt. Atari; Atari. System: Atari-8-Bit-Systcmc.
Bristow, Stcvc; Bushncll, Nolan (1976): Breakour. Atari; Atari. System: Areade
ct al.
Cnmc, David; Gold, Rich (1985): Litt/e Computer People. Activision; Activision.
System: Amiga, Applc ll, Commodorc 64 ct al.
Garriolt, Richard (1982): Ultima /1: Revenge of the Enchantress. Garriott, Richard;
Sierra On-l....inc, Origin Systems. System: PC, Mac, Commodorc 64 ct al.
Gertz, Udo (1986): Tom Thumb. Kingsoil; Anirog. System: Commodorc 16.
lwatani, Töru (1980): Pac-Man. Namco; Midway, Namco. System: Areade ct al.
Jacgcr, Robcrt (1984): Montezuma 's Revenge. Utopia Software; Parker Brothcrs.
System: Atari-8-Bit-Systcme, Commodorc 64, Scga Master System ct al.
Mcchncr, Jordan (1989): Prince of Persia. Brf)derbund; Br0dcrbund, Konami, Rivcrhillsoft, Ubisofl. System: Applc II, Amiga, Scga Master System et al.
Nishikado, Tomohiro (1978): S'pace Invaders. Taito; Taito, Midway. System: Areade
et al.
Polin, Bob (1983): Blue Max. Synapse Software; Synapse Software, U.S. Gold. System: Atari-8-Bit-Systeme, Commodore 64, ZX Spectrum.
Rotberg, Ed (1980): Battlezone. Atari; Atari. System: Arcade, Atari 2600.
Smith, Demglas E. (1983): Lode Runner. Smith, Donglas E.; Ariolasoft, Br;;derbund.
System: Commodore 64, PC, Mac et al.
Warshaw, Howard Scott (1981): Yar's Revenge. Atari; Atari. System: Atari 2600,
Nintendo Game Boy Color, Nintendo Game Boy Advance.
Woods, Jarrad (2008): ROM CHECK FAlL. Jarrad Woods; Jarrad Woods. System:
Browser, PC, Linux.
Bibliografie
2600 Conncction (o.J.): Scott Stilphen's Master ATARJ VCS/2600 Easler Egg Campend i um. http://www. 2 600co nnection. co m/ea stereggsteasterc ggs. h trnl ; vcri fizicrt
am 23.02.2014.
Bojahr, Philipp (2012): Störungen des Computerspiels. In: GamesCoop (Hrsg.):
Theorien des Computerspiels zur Einfiihmng. Hamburg: .Junius Verlag, S. 147
bis 178.
r
I
Sprachregeln und Spielregeln
315
Compgroups.net (2005): Ultima 2 strcngth increase bug. hllp://compgroups.net/
comp.sys.apple2/ultima-2-strcngth-increase-bugll123840;
verifiziert
am
23.02.2014.
faggin, Federico et al. (2007): Zilog Oral History Panel of the Cornpany and thc
Develpment of the Z80 Microproccssor. hup://archivc.computcrhistory.org/rcsou rccs/tcxt/Orai_History/Zilog_ZS0/1 02658073.05.01 .pdf;
verifiziert
am
23.02.2014.
Grams, Tim (1990): DenkjQlfen und ProgrammieJfehler. Bcrlin u. a.: Springer.
Hagen, Wolfgang (1997): Der Stil der Sourcen. Anmerkungen zur Theorie und Geschichte der Programmiersprachen. In: Coy, Wolfgang; Tholen, Georg Christoph;
Wamkc, Mattin (Hrsg.): Hyperkult. Geschichte, Theorie und Kontext digitaler
Medien. Basel: Strocmfeld Verlag, S. 33-68.
Höltgen, Stefan (2011 ): Vom bオァセッョM。」ィゥー@
zum 1-Iouse-on-a-Disc. "Li tUe Computer Peoplc" und die Archäologie des Computcrfchlers. In: Retro Magazin 21
(Hcrbst201l),S.12-14.
Höltgcn, Stefan (2012): Pongs'n'Chips. http://www.simulationsmum.de/blog/2012/
03118/pongsnchips/; verifiziert am 23.02.2014.
Krapp, Peter (2011): Noise Channels. Glitch and Error in Digital Culture (Electronic Mediations). Minncapolis, London: University of Minneseta Press.
Nake, Frieder (2006): Das doppelte Bild. Bildwelten des Wissens. ln: Kunsthistorisches Jahrbuchfür Bildkritik 3.2, S. 40-50.
NODE Forum for Digital Arts (2010): Oberllächc & Unterlläche I Vom Zeichnen
aus großer Ferne. http:/lnodclO.vvvv.orglcvents/lccture-day; verifiziert am
23.02.2014.
Percival, Mark (1996): Original Ultima Space Ace Patch. https:llgroups.google.coml
forum/'lhl=en# !msg/comp.sys.apple2/rEwRhM5hsHI/Z7knStM vS vUJ; verifiziert
am 23.02.2014.
Pias, Claus (2002): Computer Spid Welten. Zürich, Berlin: diaphanes.
Pias, Claus (Hrsg.) (2003): Cybernetics - Kybernetik !. The Macy-Conferenas
1946-!953. Transactions I Prowkolle. Zürich, Berlin: diaphanes.
Young, Sean (2003): The Undocumcntcd Z80 Documentcd. Version 0.6.
http: Ilrainem u .s wish party. co. u klh tml/arch i veldc v/z8 0-docu mcn ted. pdf; veri fi ziert
am 23.02.2014.
Zaks, Rodnay (1983): 6502 Games. Boston: Sybex.