aths
2004-06-23, 20:04:14
Ursprünglich wollte ich das in 3DC-Tools posten, aber das Ding ist alles andere als fertig. Es geht auch nicht um Programmierprobleme. Vielleicht wäre "Spiele" passend, aber direkt um ein Spiel geht's ja nicht.
Problem: Die Abenteurer betreten das verlassene Gewölbe. Welche Gefahren lauern? Welche Schätze sind versteckt? Das muss sich der Dungeon Master ausdenken. Die Feinarbeit, wo welche Fallen stehen, wo sich welche Monster rumtreiben, gehen leicht von der Hand. Aber der Grundriss – woher eine Idee nehmen, wenn nicht stehlen?
Ich hatte jedenfalls kürzlich Ideen, wie man Zufallsdungeons generieren könnte, und um diese mal austesten zu können in ein Programm gegossen:
http://www.aths.net/files/dg/dg01.png (http://www.aths.net/files/dg/dg.exe)
Klick aufs Bild = Download des Generators. Mehr zu den Generierungs-Ideen in der Beschreibung der Dialogfelder:
X, Y: Gibt die Fläche an, auf dem sich der Dungeon ausbreiten darf.
Start in the middle: Setzt den Eingang nicht nach unten in die Mitte, sondern direkt in die Mitte der erlaubten Dungeon-Fläche.
Insert exit: Fügt oben in der Mitte einen Ausgang hinzu.
Force long way: Versucht, einen Dungeon zu finden dessen Weg zum Ausgang komplizierter ist als bei normalen Dungeons. Diese Option sollte nur genutzt werden, wenn man den "Improved algorithm" aktiviert hat.
Valid: Zeigt an, dass der Dungeon die eingestellten Regeln erfüllt.
Final Dungeon Layout: Zeigt den eigentlichen Zufalls-Dungeon an.
Next Dungeon: Versucht, anhand der eingestellten Regeln einen neuen Zufalls-Dungeon zu erzeugen.
Minimum fill: Von der angegebenen Fläche muss eine Mindestfläche vom Dungeon belegt werden. 100% = alles wird ausgefüllt.
Search max: Das Zufallsprinzip garantiert nicht, dass immer ein passender Dungeon generiert werden kann. Hier stellt man ein, nach wie viel Sekunden ergebnisloser Suche der Vorgang abgebrochen wird. Dann wird der aktuelle Test-Dungeon angezeigt, der aber die eingestellten Bedingungen nicht erfüllt. (Das "Valid" wird dann ausgeblendet.)
Show outside rooms: Zeigt den Inhalt der ganzen Fläche. Wird bei ergebnisloser Suche automatisch aktiviert, bei erfolgreicher Suche automatisch deaktiviert.
Roll again ...: Standardmäßig geht der Algorithmus von einer Fläche aus, wo alle Räume abgeschlossen sind. Dann geht er jeden Raum ab und zieht einfach eine zufällig ausgewählte Wand raus. Dabei handelt es sich aber nie um eine Wand am Rand der Dungeon-Fläche, so stehen z. B. bei Eckfeldern nur zwei Wände zur Auswahl.
Dieses Standard-Muster führt oft zu Labyrinthen, wo zu wenig Gänge miteinander verbunden sind. Um die Chance zu erhöhen, dass vom Eingang her die Mindestfläche an Räumen erreicht werden kann, lässt sich diese Option nutzen.
Der PC würfelt dann pro Raum erneut den angegebenen Würfel. Bei der Augenzahl 1 wird noch mal eine Wand zufällig rausgezogen. Ist die Wand ohnehin schon weg, macht das nichts. Für größere Labyrinthe die mit der Standard-Methode erzeugt werden, sollte man diese Option nutzen. Sonst kommt man praktisch nie zum gewünschten Ergebnis.
If passed, roll again: In Verbindung mit dem "Roll again": Sofern eine 1 gewürfelt wurde, wird der eingestellte Würfel noch mal geworfen, um ggf. noch eine weitere Wand herauszuziehen. Das wird dann so lange fortgesetzt, bis die Augenzahl > 1 ist.
Improved algorithm: Wenn der PC jeden Raum abklappert, um eine Wand zu entfernen, so achtet er darauf, dass wirklich eine Wand weggebrochen wird: Ist die ausgewürfelte Stelle schon leer, würfelt er erneut. Steht gar keine Wand mehr, kann auch keine weggenommen werden. Dieser Algorithmus führt zu deutlich größeren zusammenhängenden Gängen, so dass die Suchzeit nach einem regelkonformen Dungeon deutlich verkürzt wird. Für sehr großflächige Dungeons empfiehlt sich außerdem die sanfte Nutzung der Roll-Again-Methode.
Smoother border: Glättet die Außenwände ab. Steht eine Wand an der Außenwand, wird geprüft, ob es in den nächsten zwei Räumen mindestens eine Wand gibt, welche diese allein stehende Außenwand fortsetzt. Sofern das nicht der Fall ist, wird sie weggenommen. Das verkürzt die Suchzeiten ebenfalls etwas, da somit funktionsfähige Gänge in den äußeren Arealen des Dungeons wahrscheinlicher werden.
No single walls: Entfernt mitten im Dungeon allein herumstehende Wände. Das beeinflusst die Funktionsfähigkeit des Labyrinthes in keiner Weise und dient eher der Optik.
Insert doors: Schlägt Positionen vor, die mit Türen abgeschlossen sind. Für das Labyrinth wird jede Tür als prinzipiell passierbar angesehen, diese Option beeinflusst die Funtionsweise also auch nicht.
Same Dungeon again: Sofern keine der Optionen angefasst werden die sich überhalb des Layout-Fensters befinden, und man auch nicht an den Roll-Again-Regeln spielt, kann man die vier eben erläuterten Regeln nachträglich auf den gleichen Dungeon anwenden.
Auto-click: Das Neuzeichen des Dungeons geschieht bei nachträglicher Regeländerung automatisch (Standard.)
Save Fullscreen: Speichert das Bild als BMP ab. Der Dateiname wird automatisch gewählt und im Dialogfeld angezeigt. Die Auflösung entspricht immer der aktuellen Bildschirmauflösung. Das BMP kann vom User mit einem Malprogramm gedruckt werden, um eigene Ergänzungen zu machen, und das Labyrinth zu einem vollwertigen Dungeon zu ergänzen.
Gibt es bezüglich der Generierung weitere Vorschläge oder Ideen?
Problem: Die Abenteurer betreten das verlassene Gewölbe. Welche Gefahren lauern? Welche Schätze sind versteckt? Das muss sich der Dungeon Master ausdenken. Die Feinarbeit, wo welche Fallen stehen, wo sich welche Monster rumtreiben, gehen leicht von der Hand. Aber der Grundriss – woher eine Idee nehmen, wenn nicht stehlen?
Ich hatte jedenfalls kürzlich Ideen, wie man Zufallsdungeons generieren könnte, und um diese mal austesten zu können in ein Programm gegossen:
http://www.aths.net/files/dg/dg01.png (http://www.aths.net/files/dg/dg.exe)
Klick aufs Bild = Download des Generators. Mehr zu den Generierungs-Ideen in der Beschreibung der Dialogfelder:
X, Y: Gibt die Fläche an, auf dem sich der Dungeon ausbreiten darf.
Start in the middle: Setzt den Eingang nicht nach unten in die Mitte, sondern direkt in die Mitte der erlaubten Dungeon-Fläche.
Insert exit: Fügt oben in der Mitte einen Ausgang hinzu.
Force long way: Versucht, einen Dungeon zu finden dessen Weg zum Ausgang komplizierter ist als bei normalen Dungeons. Diese Option sollte nur genutzt werden, wenn man den "Improved algorithm" aktiviert hat.
Valid: Zeigt an, dass der Dungeon die eingestellten Regeln erfüllt.
Final Dungeon Layout: Zeigt den eigentlichen Zufalls-Dungeon an.
Next Dungeon: Versucht, anhand der eingestellten Regeln einen neuen Zufalls-Dungeon zu erzeugen.
Minimum fill: Von der angegebenen Fläche muss eine Mindestfläche vom Dungeon belegt werden. 100% = alles wird ausgefüllt.
Search max: Das Zufallsprinzip garantiert nicht, dass immer ein passender Dungeon generiert werden kann. Hier stellt man ein, nach wie viel Sekunden ergebnisloser Suche der Vorgang abgebrochen wird. Dann wird der aktuelle Test-Dungeon angezeigt, der aber die eingestellten Bedingungen nicht erfüllt. (Das "Valid" wird dann ausgeblendet.)
Show outside rooms: Zeigt den Inhalt der ganzen Fläche. Wird bei ergebnisloser Suche automatisch aktiviert, bei erfolgreicher Suche automatisch deaktiviert.
Roll again ...: Standardmäßig geht der Algorithmus von einer Fläche aus, wo alle Räume abgeschlossen sind. Dann geht er jeden Raum ab und zieht einfach eine zufällig ausgewählte Wand raus. Dabei handelt es sich aber nie um eine Wand am Rand der Dungeon-Fläche, so stehen z. B. bei Eckfeldern nur zwei Wände zur Auswahl.
Dieses Standard-Muster führt oft zu Labyrinthen, wo zu wenig Gänge miteinander verbunden sind. Um die Chance zu erhöhen, dass vom Eingang her die Mindestfläche an Räumen erreicht werden kann, lässt sich diese Option nutzen.
Der PC würfelt dann pro Raum erneut den angegebenen Würfel. Bei der Augenzahl 1 wird noch mal eine Wand zufällig rausgezogen. Ist die Wand ohnehin schon weg, macht das nichts. Für größere Labyrinthe die mit der Standard-Methode erzeugt werden, sollte man diese Option nutzen. Sonst kommt man praktisch nie zum gewünschten Ergebnis.
If passed, roll again: In Verbindung mit dem "Roll again": Sofern eine 1 gewürfelt wurde, wird der eingestellte Würfel noch mal geworfen, um ggf. noch eine weitere Wand herauszuziehen. Das wird dann so lange fortgesetzt, bis die Augenzahl > 1 ist.
Improved algorithm: Wenn der PC jeden Raum abklappert, um eine Wand zu entfernen, so achtet er darauf, dass wirklich eine Wand weggebrochen wird: Ist die ausgewürfelte Stelle schon leer, würfelt er erneut. Steht gar keine Wand mehr, kann auch keine weggenommen werden. Dieser Algorithmus führt zu deutlich größeren zusammenhängenden Gängen, so dass die Suchzeit nach einem regelkonformen Dungeon deutlich verkürzt wird. Für sehr großflächige Dungeons empfiehlt sich außerdem die sanfte Nutzung der Roll-Again-Methode.
Smoother border: Glättet die Außenwände ab. Steht eine Wand an der Außenwand, wird geprüft, ob es in den nächsten zwei Räumen mindestens eine Wand gibt, welche diese allein stehende Außenwand fortsetzt. Sofern das nicht der Fall ist, wird sie weggenommen. Das verkürzt die Suchzeiten ebenfalls etwas, da somit funktionsfähige Gänge in den äußeren Arealen des Dungeons wahrscheinlicher werden.
No single walls: Entfernt mitten im Dungeon allein herumstehende Wände. Das beeinflusst die Funktionsfähigkeit des Labyrinthes in keiner Weise und dient eher der Optik.
Insert doors: Schlägt Positionen vor, die mit Türen abgeschlossen sind. Für das Labyrinth wird jede Tür als prinzipiell passierbar angesehen, diese Option beeinflusst die Funtionsweise also auch nicht.
Same Dungeon again: Sofern keine der Optionen angefasst werden die sich überhalb des Layout-Fensters befinden, und man auch nicht an den Roll-Again-Regeln spielt, kann man die vier eben erläuterten Regeln nachträglich auf den gleichen Dungeon anwenden.
Auto-click: Das Neuzeichen des Dungeons geschieht bei nachträglicher Regeländerung automatisch (Standard.)
Save Fullscreen: Speichert das Bild als BMP ab. Der Dateiname wird automatisch gewählt und im Dialogfeld angezeigt. Die Auflösung entspricht immer der aktuellen Bildschirmauflösung. Das BMP kann vom User mit einem Malprogramm gedruckt werden, um eigene Ergänzungen zu machen, und das Labyrinth zu einem vollwertigen Dungeon zu ergänzen.
Gibt es bezüglich der Generierung weitere Vorschläge oder Ideen?