Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 20 von 44

Thema: CONTEST: Mapgenerierung

  1. #1

    CONTEST: Mapgenerierung

    Alle Jahre wieder kommt das Contestkind auf die Erde nieder und sagt euch, daß ihr gefälligst was programmieren sollt. Jetzt ist alle Jahre wieder, also haben wir einen aufregenden Contest für euch vorbereitet, der euch die Socken ausziehen wird, garantiert*.

    Bei diesem Contest (und ja, wir wollen die Dinger in Zukunft wieder etwas häufiger machen) geht es um verlassene Verliese und verführerisch verfallene... Fallen. Also, um Dungeons, wie man sie aus Rollenspielen (ob Computer- oder Pen and Paper-) kennt. Ordentliche Dungeons wachsen nicht auf Bäumen und da kommt ihr ins Spiel: Ihr sollt die unglaublichen mathematischen Fähigkeiten eurer Heimrechner benutzen, um ebensolche Dungeons zu generieren.

    Nebenbei müssen es keine Dungeons sein, aber es muß eine Art Plan (oder Sammlung von Plänen) rauskommen, der etwas in der Art darstellt. Wenn euer Programm also eine Raumstation oder eine Stadt modelliert, die den Anforderungen entspricht – good to be you.

    Die Regeln hier einmal ganz trocken:

    Alle Einsendungen müssen folgende Voraussetzungen erfüllen:
    1. Das Programm muß mindestens einen Parameter entgegennehmen und verarbeiten: Wie viele Räume die Karte mindestens haben soll (mögliche Korridore nicht mitgezählt).
    2. Anhand der gegebenen Parameter muß eine Karte generiert werden, in der mindestens die gewünschten Räume vorhanden sind. Bei gleichem Input sollte das Programm unterschiedlichen Output erzeugen.
    2.1. Falls der Seed der Zufallsfunktion als Parameter umgesetzt wird, darf in diesem Fall natürlich deterministisch gearbeitet werden. Der Defaultwert sollte aber "zufällig" sein.
    3. Die erzeugte Karte muß mindestens einen Eingang und ein "Ziel" haben (wie auch immer das geartet sein mag).
    4. Es darf keinen Raum geben, der nicht irgendwie mit dem Eingang verbunden ist.
    5. Die erzeugte Karte muß mindestens in einem grafischen Format ausgegeben werden (ASCII art, PNG, SVG, HTML+CSS...).
    6. Das Programm muß im Quelltext abgegeben werden. Binaries sind als Zugabe erlaubt, nicht aber als alleinige Abgabe. Wir wollen hier voneinander lernen.

    Des Weiteren ist erwünscht:
    7. Die Karte sollte halbwegs kompakt sein. Niemand mag kilometerlange Gänge zwischen kleinen Räumen.
    8. Achtet darauf, daß die meisten User nur Programme bewerten, die sie auch ausführen können. Kompatibilität ist ein wichtiger Faktor, wenn ihr Punkte kriegen wollt.
    9. Ebenso achtet auf lesbaren Quelltext. Wie schon in Punkt 6 gesagt: Wir wollen hier voneinander lernen.
    10. Beispieloutput bei der Abgabe ist erwünscht, aber nicht Pflicht.

    Weitere Leistungen des Programms sind vollkommen optional und euch freigestellt


    Bewertet wird per Abstimmung unter den Usern des Forums. Die genauen Modalitäten werden zum Abstimmungstermin bekannt gegeben.
    Abgabe ist bis zum 09.03.2009 23:59:59 16.03.2009 00:00:00; die Abstimmung erfolgt zwischen dem 10. 16.03.2009 und dem 16. 22.03.2009.
    Der Preis ist das tolle Gefühl, gewonnen zu haben. Oh, und eine tolle Signatur. Und es gehen Gerüchte von einem tollen Sonderrang um. Aber das tolle Gefühl ist der wichtige Teil.



    Viel Spaß.


    * Es wird keine Garantie für irgendwelche Qualitäten des Contests übernommen.

    Geändert von Jesus_666 (10.03.2009 um 04:21 Uhr)

  2. #2
    Wäre mal ein grund, sich mit grafik-anlegung und mit abstrakten planvorgaben zu beschäftigen.
    Vielleicht ist mir ja langweilig.
    (Und man hat ja bekanntlich recht hohe Chancen, hier zu gewinnen, wenn man überhaupt etwas einreicht )

  3. #3
    Gute Contestidee.
    Man könnte das ganze ja gleich auch mit einem Tutorial verbinden, falls jemand lust darauf hat.
    Ich habe nämlich schon öfter zum Thema Mapgenerierung gegoogelt, aber nichts vernünftiges gefunden.
    Das Tutorial müsste imo nicht mal für eine bestimmte Sprache geschrieben sein, sondern könnte generell die Struktur des Skripts für die Mapgenerierung beschreiben. Die Umsetzung in der gewünschten Sprache könnte dann ja jeder selbst übernehmen.

  4. #4
    Zitat Zitat von rgb Beitrag anzeigen
    Gute Contestidee.
    Man könnte das ganze ja gleich auch mit einem Tutorial verbinden, falls jemand lust darauf hat.
    Ich habe nämlich schon öfter zum Thema Mapgenerierung gegoogelt, aber nichts vernünftiges gefunden.
    Das Tutorial müsste imo nicht mal für eine bestimmte Sprache geschrieben sein, sondern könnte generell die Struktur des Skripts für die Mapgenerierung beschreiben. Die Umsetzung in der gewünschten Sprache könnte dann ja jeder selbst übernehmen.
    Jep, spätestens hinterher wird sicher irgendwer die Erkenntnisse aus dem Contest zusammenfassen.

    Freut mich übrigens, dass die Idee gut ankommt. Wir haben ne ganze Weile gegrübelt, bis wir ein interessantes Thema und dazu noch eine Aufgabe mit halbwegs angemessenem Schwierigkeitsgrad hatten.

  5. #5
    Ich finde die Idee auch interessant. Hat etwas Herausforderndes bezüglich dem Zufallsalgorithmus, aber auch nicht zu technisch oder trocken.
    Leider habe ich lange nichts mehr mit einer Programmiersprache gemacht und müsste mich erst einarbeiten, bevor da was kommen könnte. Einen algorithmus hab ich aber schon ausgearbeitet, der auch funktionieren sollte...

  6. #6
    Es lebt.

    Hm, richtig gute Dungeons sind handgemacht. Ich wage zu bezweifeln, dass ein Programm einen richtig schönen, epischen Dungeon generieren kann. Was sollte bei der Bewertung denn wichtiger sein? Der Code oder die Ästhetik des Dungeons? Damit ein Programm einen "echten" Dungeon erstellt (mit fiesen, verwirrenden Gängen, kleinen Metzelräumen und einer großen Endgegner-Halle), sind mehr als reine Zufalls-Algorithmen nötig.

    freundliche Grüße, Rolus

  7. #7
    Zitat Zitat von Rolus Beitrag anzeigen
    Damit ein Programm einen "echten" Dungeon erstellt (mit fiesen, verwirrenden Gängen, kleinen Metzelräumen und einer großen Endgegner-Halle), sind mehr als reine Zufalls-Algorithmen nötig.
    Das ist doch auch keine Bedingung, dass der Algorithmus rein aus Zufallszahlen besteht, man kann da ja ein paar Abhängigkeiten und Rahmenbedingungen schaffen.

    Zitat Zitat von Rolus Beitrag anzeigen
    Hm, richtig gute Dungeons sind handgemacht. Ich wage zu bezweifeln, dass ein Programm einen richtig schönen, epischen Dungeon generieren kann. Was sollte bei der Bewertung denn wichtiger sein? Der Code oder die Ästhetik des Dungeons?
    Wüsste ich auch gerne.

  8. #8
    Ich würde wenn, dann was schreiben, das für PnP Rollenspiele geeignet ist, und sich dann nur auf die halbwegs logische ANlegung von Räumen auf einem Platz beschränkt. Sprich, Büroräume, Burgverliese und ähnliches, was auch immer irgendwie Funktionell gebaut wird.
    Da braucht man keine fiesen Gänge, keine Monster etc.

  9. #9
    Zitat Zitat von Rolus Beitrag anzeigen
    Es lebt.

    Hm, richtig gute Dungeons sind handgemacht. Ich wage zu bezweifeln, dass ein Programm einen richtig schönen, epischen Dungeon generieren kann. Was sollte bei der Bewertung denn wichtiger sein? Der Code oder die Ästhetik des Dungeons? Damit ein Programm einen "echten" Dungeon erstellt (mit fiesen, verwirrenden Gängen, kleinen Metzelräumen und einer großen Endgegner-Halle), sind mehr als reine Zufalls-Algorithmen nötig.

    freundliche Grüße, Rolus
    Bewertet wird einerseits der Code und andererseits der Gesamteindruck (Qualität des Outputs, Bedienbarkeit, Zusatzfeatures, ...) des abgelieferten Programms. Worauf dann am meisten Wert gelegt wird, hängt von jedem selbst ab. Es wird keine Jury geben, die nach festen Kriterien Punkte vergibt, sondern ihr müsst wie schon bei einigen vergangenen Contests um die Gunst der Userschaft kämpfen.

    Außerdem hat niemand verlangt, dass die Dungeons rein zufällig bestimmt werden. Es geht lediglich darum, dass ihr auf Basis mindestens einer Zufallszahl und einer Usereingabe einen Dungeon generiert. Ob ihr dafür vorher von Hand Einzelteile erstellt, die ihr dann zusammen klebt oder ob ihr euch was Anderes einfallen lasst, bleibt ganz allein euch überlassen. Solche Sachen haben wir ganz bewusst offen gelassen. Genau so, wie es euch überlassen bleibt, ob ihr einen "klassischen" Dungeon in Form einer Höhle, eine Stadt, ein Raumschiff, einen Bürokomplex oder sonst was baut.

  10. #10
    Verstehe ich es richtig, dass man
    a) Eine (3D) Welt kreieren soll, durch die man auch laufen kann.
    und
    b) Eine 2D Karte dieser Welt erstellen soll. ( Wie man es aus zahlreichen spielen kennt, eine Map, die sich dann in irgendeiner Ecke versteckt oder sich auf M öffnet.)
    ?

    Interessant, interessant.
    Wenn ich Zeit und Lust finde, bin ich auf jeden Fall dabei. Aber versprechen kann ich nichts... Die chronische Unlust ist bei mir nicht nur 'ne Ausrede... ._."

    Auf jedenfall eine gute Idee, macht sicher Spaß. D:

  11. #11
    Zitat Zitat von makkurona Beitrag anzeigen
    Verstehe ich es richtig, dass man
    a) Eine (3D) Welt kreieren soll, durch die man auch laufen kann.
    und
    b) Eine 2D Karte dieser Welt erstellen soll. ( Wie man es aus zahlreichen spielen kennt, eine Map, die sich dann in irgendeiner Ecke versteckt oder sich auf M öffnet.)
    ?

    Interessant, interessant.
    Wenn ich Zeit und Lust finde, bin ich auf jeden Fall dabei. Aber versprechen kann ich nichts... Die chronische Unlust ist bei mir nicht nur 'ne Ausrede... ._."

    Auf jedenfall eine gute Idee, macht sicher Spaß. D:
    Nur eine 2D Darstellung ist gefordert und selbst da reicht ein Grundrissplan. Das Ergebnis muss auch in keiner Form interaktiv sein. Wenn du zusätzlich mehr machen willst, nur zu. Das dürfte deine Chancen erhöhen.

  12. #12
    Sehr interessanter Contest. Ich kann aber leider nicht sagen ob ich mitmachen kann wegen Studium, Beruf, Führerschein und Freundin. o.o Bin schon auf die Ergebnisse anderer gespannt. Postet Zwischenstände wenn ihr was habt!

  13. #13
    Zitat Zitat von Rolus Beitrag anzeigen
    Es lebt.

    Hm, richtig gute Dungeons sind handgemacht. Ich wage zu bezweifeln, dass ein Programm einen richtig schönen, epischen Dungeon generieren kann.
    Generierte Dungeons können durchaus stimmig oder zumindest eine gute Ausgangsbasis für händische Nachbearbeitung sein.

    Hier mal 2 Beispielscreens von dem was ich bisher habe.


    Der rote Fleck wird ein Eingang, der blaue Fleck ein Ausgang und grüne Flecken Raumeingänge. Räume selbst fehlen noch.
    Generiert werden die Maps mit folgendem Lindenmayer-System :
    Start: FX
    F -> F++F----F++[++++FG]-F[---F]
    G -> [+F]
    Iterationen: 4
    Winkel: 17°

    Jedes G das letztendlich überbleibt wird zu einem Raumeingang. Die Berechnung des L-Systems bricht ab, sobald die gewünschte Raumanzahl +1 (für den Ausgang) erreicht wurde. Aufgrund der Beschränkung auf 4 Iterationen(mehr und eine sehr hohe Raumanzahl > 50 ergeben beim derzeitigen System oft Unsinn) ist auch die maximale Raumanzahl limitiert. Der Zufallsfaktor bei der Generierung ist die Startposition des L-Systems nach 4 Iterationen die zwischen 0 und der Hälfte des Systems liegt.

    Geändert von nudelsalat (06.03.2009 um 01:24 Uhr)

  14. #14
    Interessant, eine kleine Tileset - Engine in Java.
    Das hier ist, was ich bis jetzt habe: http://drakes.dr.ohost.de/dungeon_genotype/
    Ich habe mich zuerst um das Frontend gekümmert, es wird noch kein Dungeon generiert. Ausserdem habe ich hierfür extra eine Art winziges PHP-Prototype erstellt, XHTML wird per PHP-Objekte erstellt.

    Ist mal wieder ohost.de, also Werbung wegklicken, sonst klappt das Javascript nicht richtig. (Dazu werden Cookies benötigt)
    (Hoffentlich werde ich wegen der Figur nicht angeklagt *g*)

    Geändert von Drakes (05.03.2009 um 23:37 Uhr)

  15. #15
    Wahnsinn, wieviel Mühe ihr euch alle mit der Grafikausgabe gebt... ich fürchte, meine wird sich auf was beschränken, was aussieht, wie eine Paintkritzelei.

  16. #16
    Also ich finds schonmal Klasse dass man da im Browser durch die Karte marschieren kann ohne so heftige zusätze wie Flash zu verwenden. Alles über Javascript?

  17. #17
    Ja, es ist alles Javascript(also das Herumlaufen, das generieren wird dann PHP sein), genauer gesagt Prototype + script.aculo.us. Verwende ich zurzeit meistens, wobei ich vielleicht auch mal The Dojo Toolkit anschauen sollte.

  18. #18
    Zitat Zitat von Drakes Beitrag anzeigen
    Ist mal wieder ohost.de, also Werbung wegklicken, sonst klappt das Javascript nicht richtig. (Dazu werden Cookies benötigt)
    (Hoffentlich werde ich wegen der Figur nicht angeklagt *g*)
    Zeigt unter Firefox 3.0.7 (OS X) nicht immer was an; manchmal kommt nur eine schwarze Fläche. Genauer gesagt: Immer dann, wenn vorher die Werbung angezeigt wurde.


    Was mein Ding angeht: Bisher habe ich einen halben Algorithmus fertig (implementiert in PHP) und die Ausgabe ist eine Tabelle, deren Zellen ich per CSS einfärbe. Das ist häßlich, ging aber schnell zu coden. Die endgültige Ausgabe wird wohl per gd in ein Bild gehen, um die Seite zu verschlanken.

    Mein erster Algorithmus ist sehr primitiv, kann aber mißbraucht werden, um nette Höhlen zu generieren. Nur haben die dann keine Räume mehr, aber das ist eh ein Nebenprodukt. Weitere sind in Planung.

  19. #19
    Zitat Zitat von Jesus_666 Beitrag anzeigen
    Zeigt unter Firefox 3.0.7 (OS X) nicht immer was an; manchmal kommt nur eine schwarze Fläche. Genauer gesagt: Immer dann, wenn vorher die Werbung angezeigt wurde.
    Same here (Opera 9.63)

    Ich bin im Übrigen bis jetzt noch nicht über ein paar Ideen rausgekommen, aber ich denke, das wird noch.

    Edit:
    Ich hab grad mal angefangen, einzelne Räume zu generieren, die ich später verbinde. Hier ist einer davon:


    Edit 2:
    Noch einer, mit einem leicht veränderten Algorithmus:

    Geändert von DFYX (07.03.2009 um 03:54 Uhr)

  20. #20
    Hab leider keine Zeit mehr zum Weitermachen.

    Das Programm gibts unter
    http://gebackene-ente.at/nudelsalat/...pGenerator.zip
    In dem Zip ist sowohl der Sourcecode als auch ein ausführbares Jar. Unter Linux(Ubuntu) hat es mir nur beim Starten des Programmes mit der Shell das Chipset angezeigt. ("./MapGenerator.jar" in der Shell ausführen)

Berechtigungen

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