maziacs1Im Jahre 1982 entwickelte Don Priestley ein kleines witziges Labyrinthspiel für den Sinclair ZX81: Mazogs. Als wackerer Held musste man sich durch einen Irrgarten voller Riesenspinnen (den Mazogs) kämpfen um eine Schatztruhe zu finden. Das Spiel ist gewonnen, sobald man mit der Truhe das Labyrinth verlässt. Hilfreich sind dabei Schwerter, Nahrung und Gefangene im Labyrinth, die einem den Weg weisen können, wenn man sie befreit. Wird der Spieler von den zahlreichen Mazogs getötet, ist das Spiel selbstredend verloren.

Bereits ein Jahr später entwickelte Don Priestley das Remake Maziacs für den ZX Spectrum, das die besseren technischen Möglichkeiten des Homecomputers ausnutzte und eine bessere (höher aufgelöste) farbige Grafik bot. 1987 hat der (höchstwahrscheinlich deutsche) Programmierer Dietrich Raisin eine eigene Version von Maziacs in der Programmiersprache Omikron-BASIC geschrieben, dem damals schnellsten BASIC-Interpreter für den Atari ST. Seine Version hatte eine schöne comicähnliche Grafik, die das Spiel sogar noch witziger machte, allerdings immer noch keinen Ton. Außerdem hat er seine Version als Public Domain freigegeben.

maziacs2Maziacs war eines der Spiele, mit denen ich als Kind unzählige Stunden verbrachte. Da das Spiel in Form des Quellcodes vorlag, erzeugte ich sogar zahlreiche eigene Maziacs-Modifikationen, die das Spiel schwerer machten oder die Sprites austauschten, damit der Spieler als Spinne spielen konnte. Kürzlich habe ich diesen Schatz auf einem Backup meiner alten 20 MB Atari ST-Festplatte wiederentdeckt. Ein Glück, dass ich wirklich alles aufhebe. So kann ich nun in einem Youtube-Video das Gameplay dieses echt tollen Spiels präsentieren.

Nebenbei kam mir die Idee, den Quellcode vielleicht einfach mal für eine moderne Programmiersprache zu portieren, wobei das Spiel selbst eine 1:1-Umsetzung sein sollte. Nach kurzer Überlegung dachte ich mir, dass das doch eine wunderbare Gelegenheit wäre, mich in HTML5/Javascript-Programmierung zu üben. Während ich dies hier schreibe, habe ich bereits damit begonnen, wichtige Teil des Quellcodes zu analysieren, so z.B. den Algorithmus zur Erstellung eines Labyrinths oder den Pathfinding-Algorithmus.

Fremden Quellcode zu lesen ist oft eine schwierige Sache, noch dazu wenn er in einem BASIC-Dialekt geschrieben ist, den man selbst nie verwendet hat und dessen Spezifikationen man auch nicht mehr nachlesen kann, aber ich habe erstaunlich schnell Fortschritte gemacht. Sobald ich die Algorithmen verstanden und das Grundgerüst in Javascript geschrieben habe, geht der Rest fast von alleine. Mal schauen ob was daraus wird.