Ergebnis 1 bis 20 von 44

Thema: CONTEST: Mapgenerierung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat von Ineluki Beitrag anzeigen
    Leute, ist das echt euer ernst, dass es nach dem so viel versprechenden Anfang nur DREI Abgaben gibt ? Und das, obwohl wir eine Woche verlaengert haben ? Oder hab ich wen uebersehen ?
    Ehrlich gesagt wundert es mich, dass es doch so viele sind.

    edit: und ich muss sagen, dass bis jetzt noch kein Programm läuft und ich habe auch keine Lust, da stundenlang nun Debugging zu betreiben, um herauszufinden, warum es nicht läuft.
    Ausserdem hab ich auch keine Lust, extra noch was installieren zu müssen (z.B. Python).

    @ Rolus: Dein Script erzeugt kein Output.

    Geändert von Whiz-zarD (16.03.2009 um 18:54 Uhr)

  2. #2
    Zitat Zitat von Whiz-zarD Beitrag anzeigen
    @ Rolus: Dein Script erzeugt kein Output.
    Ach, ich Narr. Habe vergessen die Grafiken beizulegen. Und sinnvolle Fehlermeldungen macht mein kurzes Script natürlich nicht. Danke für den Hinweis. Habe die Grafiken dazu gelegt und es nochmal hochgeladen. Zum Testen auch noch mal auf Funpic.

    freundliche Grüße, Rolus

    Geändert von Rolus (24.03.2009 um 21:38 Uhr)

  3. #3
    Rolus: OMG. Das ist ein... verammt _langweiliger_ Dungeon. xD

    Und ich musste feststellen, dass die Umsetzung, wie ich sie mir gedacht habe, doch aufwändiger ist, als ich dachte, so dass ich es sein lassen musste, auch aus Zeitmangel. Ich hab dafür aber auch 'ne Ausrede, 5h Theaterprobe/tag lassen nicht mehr viel Muße fürs Coden übrig.

    Ich wäre übrigens ganz froh, wenn ein paar leute Screens ihrer Ergebnisse posten würden, interessiert mich.
    Es gibt übrigens wieder erwarten durchaus brauchbare Online-Generatoren für sowas.

  4. #4
    Ich bin jetzt nicht wirklich richtig fertig, hoffe jedoch, dass es trotzdem präsentierbar ist. :P

    http://drakes.dr.ohost.de/dungeon_genotype/

    Parameter:
    rooms : Anzahl Räume (default: 10)
    seed : Startseed (default: set by php)
    collision : on / off (default: off)

    z.B.:
    http://drakes.dr.ohost.de/dungeon_ge...5&collision=on

    collision ist auf default auf off, da sonst das ganze relativ langsam läuft (durch Portale geht trotzdem). Ausserdem ist noch keine Garantie da, dass sich die Räume nicht überschneiden und ein durchqueren unmöglich machen (falls collision auf on) ^^". Die Quelldateien werde ich auf Wunsch nachreichen, Zeit habe ich jetzt gerade aber keine.

    Geändert von Drakes (16.03.2009 um 23:32 Uhr)

  5. #5
    Hier ist, was der Wachstumsalgorithmus mit einer Rekursionstiefe von 32 Schritten hervorbringt. Der Kram ist natürlich arg beta und der finale Output würde hübscheres HTML erzeugen.

    [Ergebnis] [mit Debugoutput (Achtung, große Datei)]

    Was ich habe:
    - Das Programm hat eine Liste von Tiles, jeweils mit erlaubten Nachbartiles.
    - Es wird ein Tile gelegt und dann (sofern welche definiert sind und der Zielort frei ist) nach Norden, Osten, Süden und Westen weitergebaut.
    - Wenn ein Tile gelegt werden soll, wird bei allen Nachbarn geprüft, ob diese das zu legende Tile erlauben.
    - Wenn kein passendes Tile gelegt werden kann, wird "Geröll" (auf der Karte rot) gelegt. Dies ist ein Fehlerfall.

    Was fehlt:
    - Ich habe momentan nur die nötigen Tiles, um Räume zu modellieren. Gänge würden andere Tiles erfordern.
    - Wenn kein passendes Tile gelegt werden kann, sollte das Programm Backtracking verwenden (sprich: das Legen des letzten Tiles rückgängig machen).
    - Die Liste der Nachbartiles sollte gewichtet sein, so daß beispielsweise Wände dazu neigen, lieber andere Wände statt Ecken zu legen.
    - Diese Gewichtung sollte eigentlich auch noch adaptiv sein, damit Räume nur kurz bevorzugt wachsen und dann auf einen Abschluß zustreben.
    - Dadurch, daß der Zustand jedes Tiles im Speicher bleibt (weil ja alles rekursiv läuft) ist der Speicheraufwand bei großen Maps verhältnismäßig enorm. Das könnte man kompensieren, indem man blockweise arbeitet (es wird versucht, einen Block von X×X Tiles zu füllen; dann wird der Block als komplett angesehen und daneben weitergebaut).

    Was momentan gar nicht modelliert ist:
    - Der Algorithmus wächst einfach vor sich hin und ist nicht in der Lage, eine bestimmte Anzahl von Räumen zu erzeugen.


    Eventuell wäre es allgemein einfacher, einen großen Haufen Tileblöcke vorzudefinieren und einfach die aneinanderzupappen.


    PS:
    So, hier habe ich noch einen Durchlauf mit 256 Schritten und etwas getweakten Listen (leere Flächen werden doppelt so gern angelegt). Achtung, die Seite selbst ist über ein Megabyte groß.
    [Ergebnis 256]

    Geändert von Jesus_666 (17.03.2009 um 00:48 Uhr)

  6. #6
    Öhm Leute, wie wär's mal damit, den Thread endlich zuzumachen und einen Umfrage auf? Der Contest ist jetzt bald schon ne Woche vorbei...

  7. #7
    So liebe Teilnehmer ...

    Wir waren mit der Abgabezeit mehr als grosszuegig und haben Euch noch die letzte Woche spendiert. Heute Abend machen wir definitiv die Umfrage fuer die Abstimmung auf. Wer es bis dahin nicht geschafft hat, etwas abzugeben, der wird es wohl auch nicht mit einer weiteren Woche Zeit schaffen.

  8. #8
    Ich habe erfahren, daß mein Skript zur Wahl steht, obwohl es gar nicht die Bedingungen erfüllt. Naja, wenn ihr meint...

    Hier ist der Code. PHP5.
    Zip, bzip2'd tarball, LZMA/7zip


    BTW; das, was vorher blau war, ist jetzt graubraun. Das ist die einzige Änderung gegenüber dem demonstrierten Kram (abgesehen von Kommentaren). Das Blau kriegt man zurück, indem man in Zeile 206 das "0h" durch "0x" ersetzt. Blau war ursprünglich als Signalfarbe für noch nicht bearbeitete (oder als Einschluß leer gebliebene) Felder gedacht, aber im Output sieht's aus, als sei da Wasser geplant. Daher die Umfärbung.


    Edit: Die Links waren kaputt. Gefixt.

    Geändert von Jesus_666 (27.03.2009 um 22:59 Uhr)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •