Grafikadventures entwickeln mit SLUDGE
Nichts wie raus hier
Zum Schluss soll noch ein Ausgang eingebaut werden. Der Protagonist soll auf Kommando in den Turm hineinlaufen, dann soll das Spiel beendet werden. Das funktioniert, ähnlich wie bei der Wolke, mit einer Kombination von ScreenRegion und Objekt. Dazu fügt man unter die bereits vorhandene addScreenRegion-Zeile in sub outsideRoom() die Zeile
addScreenRegion (intoTower, 75, 351, 115, 384, 127, 388, WEST);
ein. Ganz am Ende der Datei muss man dann noch das neue Objekt intoTower einfügen:
objectType intoTower ("Turmeingang") { event oneCursor = arrowEast; event onlyAction { forceCharacter (ego, 108, 382); forceCharacter (ego, 60, 382); pause(40); quitGame (); } }
Die forceCharacter-Befehle bewirken, dass der Charakter aus seinem angestammten Fußbodenbereich heraus in die rechte Tür und dann etwas nach links läuft. Doch halt, nun scheint er vor dem Turm herumzufliegen. Hier wird ein Z-Buffer benötigt, damit der Charakter nur durch die Türöffnungen zu sehen ist, ansonsten aber hinter dem Turm verschwindet.
Es muss ein TGA-Bild mit schwarzem Hintergrund erstellt werden, in dem verschiedene Bereiche, hinter denen der Charakter verschwinden soll, einfarbig ausgemalt werden. Dieses Bild wird mit dem Z-Buffer Maker geöffnet und jeder Ebene wird eine y-Koordinate zugeordnet. Steht der Charakter mit den Füßen unterhalb dieser Koordinate, wird er vor der betreffenden Ebene gezeichnet. Sobald er die Linie überschreitet, wird er von dem entsprechenden Teil des Hintergrundbildes verdeckt.
Fazit
Nun sollte es dem geneigten Leser möglich sein, anhand der Dokumentation von SLUDGE und dem Beispielcode auch die Spielfigur zu ersetzen und vielleicht sogar ein eigenes kleines oder auch größeres Adventure zu verwirklichen. Das hier im Artikel vorgestellte Beispiel kann zusammen mit allen wichtigen Projektdateien und Bildern als Archiv heruntergeladen werden.
Autoreninformation
Tobias Hansen spielte 2004 »Out Of Order« und nennt das SLUDGE-Spiel seitdem als eines seiner Lieblings-Fanadventures. Anfang 2010 stieß er zufällig wieder auf das inzwischen quelloffene SLUDGE und beschloss, es nach Linux zu portieren.
Dieser Artikel ist in freiesMagazin 12/2011 (ISSN 1867-7991) erschienen. Veröffentlichung mit freundlicher Genehmigung.