Donkey Kong und ich
Im Herbst 1981 trat ich in die Universität ein und wurde süchtig nach den Spielen Centipede und Tempest auf Atari-Arcade-Automaten. Ich war ein wenig mit der Hardware von Atari 400/800-PCs vertraut und entschied mich für einen verheerenden Kauf für das Studentenbudget - Atari 400 und einen Schwarzweißfernseher (ich konnte mir keine Farbe leisten). Nachdem ich genug mit Basic gespielt hatte, kaufte ich mir eine Kassette mit Assembler / Editor und begann, über den Centipede-Klon nachzudenken. Ich hatte nicht die Möglichkeit, mich auf die Erfahrungen früherer Spieleprojekte zu verlassen, und ich musste alles selbst verstehen. Genau wie bei Schulaufgaben: Sie müssen eine Lösung finden, indem Sie nur kleine Tipps aus Lehrbüchern und Vorlesungen verwenden.
Jeder, der mit Asm / Editor gearbeitet hat, trägt höchstwahrscheinlich die gleichen tiefen emotionalen Narben wie ich! Der Editor war unglaublich langsam, der Debugger lief trocken und ich musste Kommentare löschen und Überlagerungen in einigen Kilobyte verwenden ( es gab nicht viele RAMs und alle Variablen passten nicht, daher wurde die Überlagerungstechnik verwendet - verschiedene Gruppen von Variablen wurden an denselben Adressen platziert. Es ist klar, dass Gleichzeitig konnten Variablen aus verschiedenen Abschnitten nicht verwendet werden, und nicht nur Variablen mit derselben Adresse, sondern im Allgemeinen Variablen aus verschiedenen Überlagerungsabschnitten.), um den gesamten Code anzupassen. Die Erstellung des Spiels, das ich Myriapede nannte, dauerte drei Monate. Ich habe immer noch Skizzen und Skizzen: Millimeterpapier, mit bunten Stiften und hexadezimalen Farbwerten bestrichen, sorgfältig auf die Felder geschrieben. Ich nahm zufällig Farben auf: Ich hatte nur einen billigen Schwarzweißbildschirm und ging für ein paar Stunden zu meinem Freund, um die Farbwerte auf seinem Fernseher zu überprüfen und anzupassen.Atari Program Exchange (Taschenverlag) hat einen Wettbewerb mit einem Hauptpreis von 25.000 US-Dollar angekündigt. Während des gesamten Semesters habe ich Universitätsklassen übersprungen und nur Myriapede studiert. Ich beendete das Spiel mit einem Vorsprung von ein oder zwei Wochen und schickte es zum Wettbewerb.Ein paar Wochen später kam ein Brief von Atari, in dem sie berichteten: Erstens waren sie sehr beeindruckt von meiner Arbeit, aber zweitens war sie Centipede sehr ähnlich (na ja, das war es) und deshalb sind sie gezwungen, sie abzulehnen. Der Untertext war, dass sie mich wahrscheinlich verklagen würden, wenn ich versuchen würde, das Spiel zu verkaufen. Ich war niedergeschlagen. Er schloss dieses Thema für sich und brachte ein paar Exemplare zur örtlichen Hobbygruppe. Ich denke, dass sich das Spiel von dort aus verbreitete, und ich habe gehört, dass es den Leuten gefallen hat ("das beste Programm von 1982" oder so ähnlich).
Einige Zeit später erhielt ich einen Anruf von Atari: Sie luden mich zu einem Interview ein. Ich war vor Aufregung erschüttert. Ich flog zu ihnen und zeigte jedem Interviewer Myriapede. Und immer an diesem Ort fror das Gespräch ein. Vor dem Start des Spiels schienen sie mir nur Aufmerksamkeit zu schenken - "Okay, Mann, du hast das Spiel geschrieben" -, aber nach dem Start wurden sie in den Prozess involviert und ich erinnerte sie daran, dass wir tatsächlich beim Interview waren! Einer der Befragten war der Autor des ursprünglichen Hundertfüßers und er sagte sofort an Ort und Stelle, dass meine Version besser ist.Ein Jobangebot kam in ein paar Wochen. Atari versprach, meinen gesamten Müll, der den gesamten Raum einnahm, nach Kalifornien zu transportieren. Und ich flog sofort und verbrachte zwei Wochen im Hotel, während ich auf die Ankunft meiner Sachen wartete. Die Firma wollte mich wirklich unbedingt haben!Zu dieser Zeit gab es zwei beliebte Arcade-Spiele, die ich einfach nicht ertragen konnte - Zaxxon, ein dummer und langweiliger Scroll-Shooter, und Donkey Kong - laut, bedeutungslos und nervig. Und der Grund, warum sie mich in Kalifornien brauchten, war natürlich, Donkey Kong zu portieren! Nachdem ich Hoffnungslosigkeit (und vorgetäuschte Begeisterung für die Bosse) durchgemacht hatte, biss ich die Zähne zusammen, nahm eine Viertelröhre und verbrachte viel Zeit vor einem kleinen Arcade-Automaten im Hotel, um DK zu spielen und dieses Spiel sehr, sehr gut zu lernen.
Hier muss erklärt werden, wie die Abteilung für das Portieren von Spielen von Arcade-Automaten in Atari funktioniert hat. Im Wesentlichen einigten sich die Mitarbeiter der Marketingabteilung auf eine Lizenz zum Vertrieb von Imenyrek von Igrodel auf Kassetten für Atari-Computer. Das ist alles. Das war der ganze Deal. Wir hatten keine Hilfe von den Entwicklern des Originals. Keine Auflistungen, keine Gespräche mit Ingenieuren oder Projektdokumentation - nichts. Tatsächlich mussten wir unseren eigenen Arcade-Automaten kaufen und lernen, wie man dieses Spiel spielt (übrigens, deshalb habe ich im Hotel gespielt - wir haben noch nicht einmal unsere Kopie des Spiels mitgebracht!).Also spielte ich so viel ich konnte Donkey Kong und fing an, Ideen zu schlagen. Ich schrieb ein 25-30-seitiges Designdokument, in dem das Spiel in Module unterteilt war und die Entwicklungszeit auf 5 Monate geschätzt wurde (dies war im November 1982), und brachte es besorgt meinem Chef Ken. War das Dokument gut genug? Oder schicken sie mich als Laien-Designer und Amateur-Programmierer, um ihre Sachen zu packen?"Wir sind total begeistert von Ihrer TK", sagte Ken. Und ich habe gerade die Objekte im Spiel aufgelistet, einen kleinen Pseudocode für einige wichtige Spielmodule geschrieben und angenommen, dass dies nur ein Rückstand für diese TK ist! Aber alle um uns herum empfanden dieses Dokument als vollständig fertig. Und anscheinend muss ich nur den Code entsprechend schreiben. Es war beängstigend."Die Marketingabteilung wartet bis Weihnachten auf das Spiel", sagte Ken. Und nachdem ich genaue Berechnungen durchgeführt hatte, ging ich zur Marke von 150 Arbeitstagen. In ein paar Wochen gab es keine einzige Chance, das Spiel zu portieren, aber ich spürte deutlich den Druck. Aus Müßiggang (von allen Sorgen musste ich nur nach einer Wohnung suchen und meine Sachen bei der Ankunft abstellen) verbrachte ich fast meine ganze Zeit bei der Arbeit. Das erste Mal verbrachte ich die ganze Nacht ohne Schlaf und legte die Messlatte immer höher, um mit dem Mann im Büro gegenüber Schritt zu halten, der auch die ganze Nacht arbeitete. Der Speisesaal bot drei Mahlzeiten am Tag.
Das Tolle ist, wenn man sich so sehr auf das Projekt einlässt, beginnt es irgendwann von selbst zu schreiben und man schwimmt einfach daneben. Ihr Leben ist unterteilt in Arbeit und langweiligen Unsinn - Schlafen und Essen. Ja, ich weiß, es klingt höllisch, aber es macht wirklich Spaß. Ich war ungefähr 21 Jahre alt und selbst wenn ich nicht bezahlt worden wäre, würde ich immer noch etwas Ähnliches kostenlos machen.Für die Cross-Entwicklung verwendeten wir Minicomputer MV / 8000 von Data General. Über genau dieselbe Maschine schrieb Tracy Kidder das Buch Soul of a New Machine. Trotz der Tatsache, dass es sich nicht um VAX mit Unix an Bord handelte (was für mich vorzuziehen wäre), war die Umgebung immer noch recht praktisch und enthielt mehrere gute Dienstprogramme (obwohl es keine Emacs gab!). Wir haben die für MV / 8000 portierte Version von Atari Macro Assembler verwendet, und sie war viel besser als der unbeschreiblich langsame Assembler / Editor, in dem ich Myriapede geschrieben habe. Wir mussten jedoch den gesamten Code mit einer Geschwindigkeit von 9600 Baud auf Entwicklungssysteme hochladen. Daher wurde die Verarbeitungszeit meiner Anfragen an das System kurz vor Abschluss des Projekts zu einem ernsthaften Problem, insbesondere angesichts der Tatsache, dass 40 oder 50 meiner Kollegen tagsüber MV / 8000 gemeinsam genutzt haben .Ich erinnerte mich an den geladenen Mainframe an meiner Universität. Ich blieb oft lange auf und irgendwann gegen sechs Uhr abends begannen die Autos ziemlich schnell zu arbeiten (5 Minuten Wartezeit statt etwa eine Stunde).
Am ersten Tag meiner Ankunft im Büro, nachdem ich mich auf den neuesten Stand gebracht hatte, fand ich den verpackten Atari 800. Ich baute ihn schnell zusammen, überprüfte, ob er funktionierte und ging Kaffee trinken.Als ich zurückkam, stand das Mädchen aus der Versorgungsabteilung in der Tür. "Wow", keuchte sie, "Sie wissen, wie man einen Computer zusammenbaut!" Und ich musste es einfach tun. “Ja, danke, aber sollte hier nicht jeder eine solche Fähigkeit haben? Das Anschließen und Konfigurieren von Atari ist nicht die einfachste und naheliegendste Aufgabe, aber auch überhaupt nicht schwierig.Eine Alarmglocke ... Der erste Büronachbar wusste nicht, wie er seinen Computer einrichten sollte. Tatsächlich wusste er nichts, wie sich später herausstellte. Er wurde angeheuert, um an Dig Dug zu arbeiten, und war völlig ratlos. Ich musste ihm alles beibringen, einschließlich der Programmierung von Assemblersprachen, der Arbeit mit Atari-Hardware, dem Herunterladen verschiedener Informationen und dem Debuggen. Es war traurig.Diese Situation ging durch den roten Faden durch meine Arbeit bei Atari. Anfänger mussten nicht wissen, wie sie ihre Arbeit machen sollten, aber ich habe Zeit damit verschwendet, Dinge herauszufinden, die sie bereits wissen sollten, bevor sie mit der Arbeit beginnen. Die Einstellungstaktik war unvollkommen.Ich schreibe seit mehreren Jahren in C und habe daher so etwas wie einen C-Dialekt entwickelt, um die Funktionsweise von Modulen zu beschreiben. Zuerst skizzierte ich mehrere Seiten dieses Pseudo-C auf hoher Ebene und verbrachte dann einen halben Tag damit, es in Assembler 6502 zu „kompilieren“. Manchmal stellte sich heraus, dass ein ziemlich großer Codeabschnitt beim ersten Mal funktionierte! Aber im Allgemeinen war es eine ziemlich beängstigende Erfahrung.Eine weitere Erfahrung war das Verständnis, dass Kommentare irgendwie wichtig sind. Ich habe Codeteile für Atari-Betriebssysteme gesehen (einschließlich des Quellcodes für 400/800 OS) und sie waren ziemlich klar und schön. Aber die meisten Spielquellen aus der Abteilung für Consumer-Software waren schrecklich, jede Menge Müll: fast kein Kommentar, ohne zu verstehen, was geschah. Nur Einträge, die aus LDA / STA / ADD, einer Reihe von Buchstaben und möglicherweise einem zufälligen Etikett mit einem aussagekräftigen Namen bestehen. Mit anderen Worten, völlig nicht unterstützter Code! In den meisten Situationen für die Spielebranche ist dies ganz normal: Fast kein Code wurde jemals wiederverwendet oder in Bibliotheken ausgegeben (mit Ausnahme von gut debuggten Verfahren der Atari Coin-Op-Einheit, die mathematische Operationen ausführen und mit Münzmechanismen in Arcade-Automaten arbeiten).Ich denke, dass DK unter allen von Atari veröffentlichten Konsumgütern am besten kommentiert wird (Super Pacman ist noch cooler, aber es wurde nicht zum Verkauf angeboten). Benutzer sehen keine Kommentare, im Gegensatz zu anderen Ingenieuren, die es nützlich finden, das zu studieren, was Sie geschrieben haben. Zum Beispiel werden Marios Sprünge nach den einfachen physikalischen Bewegungsgesetzen berechnet, und die Gleichungen werden in den Quellen geschrieben, gut formatiert, und Sie können immer verfolgen, woher diese magischen Ausdrücke im Code stammen. Nach der Veröffentlichung von DK bekam mein Kollege eine Kopie des Codes, las eine Woche lang und sagte, er sei schockiert ("Ich weiß nicht, wie man alles drucken kann. Nicht genau in fünf Monaten! Als ich den Code sah, der sich auf die Bewegung bezog, fiel mir der Kiefer herunter auf den Boden. ”). Es hat mich in die Farbe getrieben! Der Quellcode sollte sowohl Unterhaltung als auch Bildung dienen.Donkey Kong wurde Mitte März 1983 in den Handel gebracht. Ich erinnere mich vage an eine kleine Party bei der Arbeit, aber in diesem Moment war ich sehr froh, dass alles vorbei war.Technische Details Kong verwendet den Grafikmodus $ E (192 Zeilen pro 160 Spalten). Beim Laden des Levels wurde der Hintergrund einmal gezeichnet. Fässer und andere Kreaturen wurden über xor angezeigt (ich hatte Code, der für das Erstellen von Masken und das Neuzeichnen verantwortlich war, aber es stellte sich als zu langsam heraus). Mario bestand aus mehreren Spielobjekten (ich glaube, es gab drei davon). Preisgegenstände (Regenschirme, ...) gehörten ebenfalls zu Spielobjekten. Die Ausgabe der Grafiken mit xor hat mich verärgert, aber die meisten haben nicht gebadet, und einige fanden es sogar cool, dies zu tun! (Beim Rendern entspricht die Hintergrundpixelfarbe xoder der Pixelfarbe des Objekts, wenn das Objekt an dieser Position entfernt werden musste (nur xor oder zurück, und die Hintergrundfarbe wurde wiederhergestellt ).Brad Fuller hat alle Sounds erstellt. Mona Lundstrom hat an einem bedeutenden Stück Grafikdesign gearbeitet (aber ich habe die meisten neu gezeichnet). Ein anderer Ingenieur war für die „Zwischensequenzen“ verantwortlich, deren Code ich komplett neu schreiben musste (er wollte zunächst das Fort verwenden und verstand nicht, dass das Spiel es sich nicht leisten konnte, dem Dolmetscher des Forts die Hälfte des Platzes auf der Kassette zu geben, um ihm das Leben zu erleichtern).In seiner Spitze nahm DK 20 Kilobyte ein, aber es war notwendig, es auf Diät zu setzen, da die Patrone 16 KB enthielt. Viele Bilder wurden komprimiert (beachten Sie beispielsweise, dass Kong symmetrisch ist). Am Ende nagte ich nur ein paar Bytes pro Tag heraus und das Spiel kam mit einem Spielraum von nur vielleicht einem Dutzend freien Bytes heraus.Ich habe Pascalha verlassen, aber sie ist die Mühe nicht wert, sie zu finden. Außerdem kann ich mich nicht erinnern, wie ich genau dahin gekommen bin (so etwas wie das Sterben auf der Ebene des Sandhaufens mit drei Leben und Punkten, die über 7000 verdient wurden).Ich habe die Komplexität angepasst, das Spiel verlangsamt und nur sichergestellt, dass es passabel ist. Einige Trajektorien der Objekte sind zufällig, aber so begrenzt, dass Sie sie trotzdem durchlaufen können, wenn Sie schnell genug sind.Ich ging zum ersten Treffen in der Abteilung mit Vertrauen in die Zukunft von Atari. Obwohl ich nicht viel verstanden habe, war die Hauptidee des Managements, dass sich der Umsatz verlangsamt, die Gewinne stark reduziert werden und das Unternehmen eine Umstrukturierung durchlaufen muss, um profitabel zu bleiben.Das gegenüberliegende Gebäude war das erste Zeichen: Atari stellte damit 2600 Spielekonsolen her. Sie verlegten die Produktion ins Ausland und entließen die meisten Leute aus der örtlichen Fabrik.Kleinere Reduzierungen in der Marketingabteilung. Eine kleine Portierungsgruppe von 8 Programmierern, darunter ich, wurde in ein kleines Gebäude verlegt, das ziemlich weit von allen Hauptgebäuden von Atari entfernt war, und wir waren tatsächlich von dem, was geschah, isoliert. Aber selbst aus dieser Entfernung haben wir gesehen, dass die Dinge nicht sehr gut liefen. Die Spielebranche war atemberaubend und Atari lud Millionen nicht verkaufter Patronen auf Mülldeponien. All diese Fehler, die vorerst von wildem Erfolg gedeckt waren, flammten plötzlich auf und trafen das Unternehmen hart.Mein Kollege hat schließlich seinen Abschluss bei Robotron gemacht. Auf Anfrage erstellte sie drei Versionen des ROM-Images, die sich in der Adressierung im ROM unterschieden. Leider konnte die Q / A-Abteilung nur zwei davon überprüfen. Ratet mal, welche Version Atari an die Produktion gesendet hat und welche Version einen kritischen Fehler hatte? Ich habe gesehen, wie die Eiseningenieure gelitten haben, als ihnen klar wurde, dass ein billiges Logikgatter das Spiel reparieren kann. In diesem Fall waren nur wenige Bytes falsch. Infolgedessen warf Atari Patronen im Wert von 200.000 US-Dollar in den Papierkorb.Ich hatte das Gefühl, dass ständig ähnliche Fehler auftraten. Darüber hinaus wurde dies durch die Tatsache ergänzt, dass sich die Spiele einfach nicht verkauften. Atari Marketing konzentrierte sich auf Time-to-Market-Kennzahlen und zwang die Ingenieure, unpolierte, langweilige Spiele zu schreiben. Und diese Praxis wandte sich gegen sie! Die Leute haben es aus alten Gründen satt, die gleichen Spiele zu spielen.Alle paar Monate fanden Massenentlassungen und Umstrukturierungen statt. Unsere Gruppe wurde für Coin-Op in die Ecke des Gebäudes verlegt: Konsolidierung aus Kostengründen. Ich habe zu dieser Zeit an Super Pacman gearbeitet, aber es hat niemanden interessiert, also bin ich kopfüber in den Prozess gegangen und habe einen guten Job im Spiel gemacht.Letztendlich kaufte Jack Tramiel die Atari-Teile aus, die er brauchte, und ich wurde in den Atari ST gezogen, aber das ist eine andere Geschichte. Source: https://habr.com/ru/post/de397971/
All Articles