Ambermoon
The Programmer's Point Of View

Bereits in der Ausgabe 10/92 konnten wir Euch die ersten Bilder zum Amberstar-Nachfolger von Thalion präsentieren. Nun nähert sich Ambermoon der Fertigstellung und wir konnten den Programmierer dazu überreden, die Entwicklung aus seiner Sicht darzustellen. Ein exklusiver Entwicklungsbericht ist das Ergebnis.

"Hier ist eine kurze Darstellung der Entwicklung von Ambermoon. Mein Name ist Jurie Hornemann. Ich bin ein 21-jähriger Programmierer aus Holland. Ich hoffe, dass der Artikel nicht zu technisch wird.

Mein Einstieg bei Thalion

1991 wurde ich Mitglied bei Thalion und ich begann sofort mit der Entwicklung von Amberstar. Die ganzen Editoren wurden von Karsten Köper geschrieben, die Grafiken wurden komplett von Monika Krawinkel und Erik Simon gezeichnet, und alles was noch fehlte, war das Programm. Ich habe niemals zuvor ein Computerspiel oder irgendein Programm dieser Größe geschrieben. Das war natürlich eine gute Möglichkeit, so etwas zu lernen. Weil fast die ganze andere Arbeit schon erledigt war, musste ich 'nur' noch das programmieren, was Karsten notiert hatte. Es gab keine Zeit für Änderungen oder Verbesserungen. Weil es die einzige Sprache war, die ich fließend sprechen konnte, wurde das ganze Spiel in Assembler geschrieben. Dies machte sicherlich einige Dinge schneller, jedoch brachte es einige Probleme mit sich. Es ist eine Genugtuung, zu sagen, dass Amberstar ziemlich pünktlich fertig wurde, nicht viele Bugs aufwies und ziemlich erfolgreich war. Wie auch immer, wir hatten keine Zeit, uns auf den Lorbeeren auszuruhen, denn die Produktion von Ambermoon, dem Nachfolger, begann sofort.

Die Arbeit an Ambermoon

Für Ambermoon hielten wir einige Brainstorming-Sitzungen ab, wo wir über viele Verbesserungen und radikale Änderungen nachdachten. Außerdem bekamen wir die Deadline von unserem Manager... Da warfen wir alle Ideen von Amberstar 2 auf ein Regal, wo sie bis Amberstar 3 friedlich ruhen werden. Wir beratschlagten uns, wie wir einen Nachfolger machen könnten (mit dem Arbeitstitel Amberstar 1 1/2), ohne zuviele technische Änderungen zu machen, jedoch diese mit der größten Effizienz. Natürlich haben wir das ganze Programm fast komplett neu designed und die Änderungen waren nicht nur kosmetischer Natur, haben aber die Komplexität und Vielfältigkeit bedeutend erhöht. Da wir Amberstar erweiterten und kein komplett neues Spiel schrieben, entschieden wir uns, den Original-Code erneut zu verwenden. Es gibt nichts Schlimmeres für einen Programmierer, als einen Code wiederzuverwenden, der mit dem Gedanken 'Ich werde diesen niemals wiederverwenden können, aber schließlich funktioniert er' geschrieben wurde. Außerdem entschieden wir uns, Ambermoon auf dem Amiga mit 32 Farben zu entwickeln, nachdem der Amiga-Markt größer als der des STs war. Das brachte mir ein neues Problem, denn die Editoren wurden auf dem ST geschrieben und benutzten den 16-Farben-Modus. Außerdem musste ich den Umgang mit einer ganz neuen Maschine lernen. So konvertierte ich selbst Ambermoon auf den ST, wo ich dieselbe Programm-Strukur wie in Amberstar verwendete. Da ich das Programm in einen maschinenabhängigen und -unabhängigen Teil aufteilte, ist die ST-Umsetzung lediglich eine Sache des Umschreibens des maschinenabhängigen Teils, und schon wird es klappen. Natürlich muss man noch mehr tun, diese Methode macht die Konvertierung jedoch deutlich einfacher.

Als ich meine vorbereitende Arbeit auf dem ST gemacht hatte und mich dem Amiga anvertraute, begann ich mit dem Schreiben der Hauptroutinen am 14. August 1992. Dies beinhaltet Sachen wie Speicherverwaltung, komplette Initialisierung und Wiederherstellung des Computers, einfache Textausgabe, eine Menge an Grafikroutinen, Raster-Interrupt-Management, Keyboard & Maussteuerung und File-Verwaltung. Da Ambermoon sowohl mit Diskettenlaufwerk als auch mit Festplatte laufen muss, musste ich das OS verwenden. Einerseits bewahrte mich dieses vor einer Menge von Problemen, andererseits verlor ich einiges an Kontrolle über den Computer, aber am Ende wandte sich alles zum Guten. Dafür benötigte ich fast einen Monat. Anschließend stand die nächste Reihe von Routinen an, die formatierte Textausgabe mit Wordwrapping und Zentrierung, Window-Verwaltung, Zahlenausgabe, allgemeinen Programmablauf und Standard User-Interface-Elemente wie Scrollmenüs und Knöpfe betraf. Erst dann begann die Arbeit an dem eigentlichen Programm. Nachdem ich Amberstar fertiggestellt hatte, wusste ich genau, was bei der Entwicklung eines so großen Programms schieflaufen konnte, deshalb machte ich den Code nun kompakter und zuverlässiger. Das Programm gibt dem User mehr Meldungen und ist allgemein bedienungsfreundlicher. Alles klappte hervorragend, bis ich mich diesem Monster gegenüber gestellt sah: 3D-Texture Mapping Dungeon. Michael Bittner hatte diese Routine bereits vor einem Jahr geschrieben, aber nun musste sie an das Amberstar-System angepasst werden. Das dauerte ziemlich lange, denn es ist äußerst schwierig, den Code von jemand anders zu verstehen. Noch nicht einmal mehr Michael verstand das komplexe Zeug nach der langen Zeit... Insgesamt brauchte ich für das gesamte Dungeon ungefähr zweieinhalb Monate. Anschließend lief alles wie geschmiert... Schneller als erwartet waren der Dialog-Bildschirm, der Automapper, die Kaufleute, die Saga, der Inn, die Enchantress, der Trainer, der Options-Bildschirm und der Heiler fertig. Derzeit arbeite ich an dem Combat-Screen, der bei Amberstar von Michael Bittner geschrieben wurde. So blicke ich nun wieder dem Code eines anderen ins Byte-Auge, aber dieser ist netterweise nicht so kompliziert wie der des 3D-Data-Managements der Dungeon-Routinen. Nach dem Kampfauswertungs-Screen und den Zaubersprüchen wird die meiste Arbeit getan sein. Dann begann das Playtesting, was für mich vielleicht bedeutet, dass ich eine ganze Menge von den Sachen, die ich im Angesicht meines Schweißes programmiert habe, aufgrund der Androhungen von fürchterlicher Meuterei durch ignorante Grafiker ändern muss. Aber so ist das Leben." Jurie Hornemann

Quelle: AMIGA GAMES 5/93