Blog Info Screens Videos Impressum/Datenschutz

Vor ziemlich genau 2 Jahren

Liebe Adventurefreunde,

auch wenn wir mittlerweile mit der Entwicklung der "Geistfrei-GmbH" ziemlich weit fortgeschritten sind und unsere Engine seit über einem halben Jahr fertig gestellt ist, möchte ich Euch unsere Anfänge bei der Programmierung nicht vorenthalten.

Als wir mit dem Projekt anfingen (Sommer 2013) haben wir uns zunächst über das "wie" Gedanken gemacht. Sollten wir eine fertige Engine nehmen? Wir hätten dann direkt mit der Planung der Story starten können. Oder sollten wir selbst eine Engine schreiben? Natürlich haben wir uns erst die fertigen Engines angeschaut, die es auf dem Markt gibt und damit etwas herum probiert. Uns war dann aber doch ziemlich schnell klar, dass wir das Programmieren viel zu sehr lieben und deshalb schließlich die Herausforderung in der Erstellung einer eigenen Engine suchten.

Vorbilder waren für uns natürlich die alten Classic-Adventures und deshalb trug unser Projekt zunächst auch den Arbeitstitel "Monster Mansion" ;-). Zur Entwicklung einer Adventure-Game-Engine gehört natürlich eine eigene Scriptsprache und ein Parser. Aber wie sollte die Sprache aussehen? Wir hatten keine Ahnung. Also suchten wir im Internet nach Beispielen, wie die damaligen Adventures von Ron Gilbert gescriptet wurden, um zumindest einen Anhaltspunkt zu haben, wie die Befehle aussehen sollten. So richtig fündig wurden wir aber nicht. Also haben wir uns im Internet den Aufbau von Drehbüchern angeschaut, weil Schauspieler ebenso wie die Charaktere in einem Adventure (vereinfacht gesagt) von A nach B "geschubst" werden und zu bestimmten Zeiten etwas sagen - je nachdem, wie es im Drehbuch steht.

PEGGY sitzt auf dem Sofa.
AL kommt zur Tür herein und setzt sich dazu.

AL
Mein Gott, war das wieder ein anstrengender Tag.
PEGGY
Meiner war auch nicht besser.

AL steht auf und geht zum Kühlschrank.

Wir fanden, dass der Aufbau eines solchen Drehbuches sehr einfach und gut zu lesen ist. Und genauso einfach sollten auch unsere Scripte aufgebaut sein, mit denen wir unsere Spielszenen erstellen wollten:

PEGGY: SetToPosition(COUCH);
AddActor(AL, DOOR);
AL:    Goto(COUCH);
AL:    PlayAnimation(SitDown);

AL:    Say("Mein Gott, war das wieder ein anstrengender Tag.");
PEGGY: Say("Meiner war auch nicht besser.");

AL:    PlayAnimation(StandUp);
AL:    Goto(REFRIGERATOR);

So weit die vage Idee. Und wie haben wir nun angefangen? Nun ja, wir haben zunächst versucht, einen sehr einfachen Parser zu schreiben, der nur zwei Befehle beherrschte: AddActor und MoveActor. Nach einigen Stunden hatten wir unser Programm endlich so weit, dass es aus einer Textdatei diese Befehle interpretieren konnte und die beiden Strichmännchen auf dem Simulatorbildschirm zu den eingegebenen Koordinaten bewegte (siehe Video und Bild unten). Programmierer, die sich tagtäglich mit Parsern herumschlagen, werden sicher nur müde gähnen. Aber hey, wir hatten vorher noch nie einen Parser programmiert und waren dementsprechend happy, dass der Test geklappt hat.
Also dachten wir uns: Wenn wir DAS programmieren konnten, dann schaffen wir den Rest auch noch ;-)

Grüße, Roland


Blog-Archiv

Labels