Login


 
Newsletter
Werbung
Do, 22. Dezember 2011, 15:00

Grafikadventures entwickeln mit SLUDGE

Adventure-Fans wird der Name SCUMM sicherlich etwas sagen. SLUDGE ist eine freie Alternative dazu und bringt selbst noch Entwicklerwerkzeuge mit. Mit diesem System kann man auf jeder Plattform Grafikadventures entwickeln und spielen. Der vorliegende Artikel soll einen kleinen Einblick in die ersten Schritte der Spielentwicklung mit SLUDGE geben.

Da die Geschichte von SLUDGE als Windows-Programm bereits mehr als zehn Jahre zurückreicht, sind schon einige relativ aufwändige Spiele entstanden. Weil SLUDGE mittlerweile auch auf anderen Plattformen erschienen ist, laufen diese Spiele nun natürlich auch unter Linux. Auf der SLUDGE-Homepage ist eine Liste der verfügbaren Spiele zu finden. Der Wikiartikel zu SLUDGE auf ubuntuusers.de enthält ähnliche Informationen auf deutsch.

Adventures entwickeln mit SLUDGE

Der aufwändigste Teil bei der Entwicklung eines Adventures ist sicherlich der kreative – Story, Rätsel und Dialoge ausdenken, Hintergründe und animierte Objekte zeichnen, Musik, Sprache und Sounds aufnehmen. Dagegen ist das Zusammensetzen der Einzelteile ein Kinderspiel.

Um die mühsam erstellten Ressourcen in ein Spiel einzubinden und mögliche Interaktionen mit der Spielwelt einzuprogrammieren, wird bei SLUDGE eine Skriptsprache verwendet, die

selbst auch SLUDGE (Scripting Language for Unhindered Development of a Gaming Environment) heißt. Außerdem besteht so die Möglichkeit, das Spielinterface völlig frei selbst zu gestalten.

Möchte man sich anfangs nicht mit dem Implementieren der Benutzerschnittstelle herumschlagen, sondern sofort den eigenen Charakter herumlaufen sehen, sollte man sich zu Beginn an dem Code eines funktionierenden Spiels orientieren. Hier bietet sich zum einen das im SLUDGE-Sourcecode-Archiv (im Ordner doc/ExampleProjects) enthaltene »Verb Coin Example« an.

Verbmünzen-Interface beim 'Verb Coin Example'

Tobias Hansen

Verbmünzen-Interface beim 'Verb Coin Example'

Ein Beispielprojekt, das statt Verbmünzen-Interface ein klassisches SCUMM-Interface bietet, ist »The Interview« (siehe Sourcecode-Bereich auf der SLUDGE-Homepage).

SCUMM-Interface bei 'The Interview'

Tobias Hansen

SCUMM-Interface bei 'The Interview'

Neben der Skriptsprache bietet SLUDGE fünf grafische Programme für recht spezialisierte Aufgaben. Drei davon dienen der Projektverwaltung, dem Erstellen von Übersetzungen und dem Umwandeln von Animationen in das von SLUDGE benötigte Format. Auf die anderen beiden (Floor Maker und Z-Buffer Maker) wird weiter unten noch genauer eingegangen.

Ein ständiger Begleiter beim Entwickeln mit SLUDGE ist die Dokumentation. Dort werden fast alle Fragen beantwortet.

Erste Schritte

Nun soll zur Demonstration der bei SLUDGE gängigen Konzepte beschrieben werden, wie mit dem Umwandeln des Verb Coin Example in ein eigenes Adventure begonnen werden kann.

Während der Einstiegspunkt für den Code in der Datei init.slu zu finden ist, beginnt der zum Spielinhalt gehörende Code in outside/room.slu. Wer sich etwas im Verb Coin Example umgeschaut hat, wird hier alles wiederfinden, was im ersten Raum passiert. Die Funktion outsideRoom() wird jedes Mal aufgerufen, wenn der Raum betreten wird. Da nun ein neues Spiel gestaltet werden soll, wird fast alles aus der Datei gelöscht, sodass nur Folgendes übrig bleibt:

sub outsideRoom () {
    startMusic ('outside/music.xm', 0, 0);
    addOverlay ('outside/room.tga', 0, 0);
    setFloor ('outside/room.flo');
    setScale (200, 150);
    setZBuffer ('outside/room.zbu');

addCharacter (ego, 420, 400, makeEgoAnim ());
    %~ say (ego, "Moin, moin! Scheint ja noch zu kompilieren der Code!");
}

Die ersten fünf Zeilen laden Musik und Raum, dann wird der Spielcharakter angezeigt und zum Reden gebracht.

Damit das Projekt wieder kompiliert wird, müssen folgende Zeilen aus der Datei iface/inventory.slu gelöscht werden, da hier das Objekt duck referenziert wird, das soeben gelöscht wurde.

event duck {
    say (ego, "Hey, duck! Want a mushroom?");
    say (duck, "Er, no...");
    say (ego, "Ah well. I'll wander around with it for a little longer, then.");
}

Nun kann das Projekt (VerbCoin.slp) mit dem Projekt-Manager geöffnet und inside/room.slu und german.tra aus dem Projekt entfernt werden. Jetzt sollte das Kompilieren wieder klappen.

Startet man das neu kompilierte Spiel, gibt es keine Ente mehr in dem Raum. Auch kann man nicht mehr mit der Notiz oder dem Tunnel interagieren. Nun kann es an das Erstellen eines neuen Hintergrundes gehen.

Kommentare (Insgesamt: 10 || Alle anzeigen || Kommentieren )
Re[2]: shooter adventure (neWell, Sa, 31. Dezember 2011)
Re[2]: Scriptsprache (Anonymous, Do, 29. Dezember 2011)
Re[3]: Scriptsprache (XMLler, So, 25. Dezember 2011)
Re[2]: Scriptsprache (Bolitho, Fr, 23. Dezember 2011)
Re[2]: Scriptsprache (Wanker, Do, 22. Dezember 2011)
Pro-Linux
Pro-Linux @Twitter
Neue Nachrichten
Werbung