Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 44

Thema: CONTEST: Mapgenerierung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    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

  2. #2
    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.

  3. #3
    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.

  4. #4
    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.

  5. #5
    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:

  6. #6
    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.

  7. #7
    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!

  8. #8
    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)

  9. #9
    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)

  10. #10
    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.

  11. #11
    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?

  12. #12
    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.

  13. #13
    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.

  14. #14
    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)

  15. #15
    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)

  16. #16
    Unter OS X Leopard krieg ichs auch nicht zum Laufen:

    Code:
    mac42white-2:Desktop dfyx$ java -jar MapGenerator.jar 
    Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
    	at java.lang.ClassLoader.defineClass1(Native Method)
    	at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
    	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    	at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
    	at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
    Ich vermute mal, dass du irgendwas Java 1.6 spezifisches verwendest, was unter OS X noch nicht zur Verfügung steht.

  17. #17
    Zitat Zitat von DFYX Beitrag anzeigen
    Ich vermute mal, dass du irgendwas Java 1.6 spezifisches verwendest, was unter OS X noch nicht zur Verfügung steht.
    Muss er gar nicht: wenn ich mich nicht irre kommt der Fehler einfach, wenn die Runtime die Version des Compilers, mit dem die .class-Files erstellt wurden, nicht unterstützt. Also solange man javac 1.6 zum Kompilieren verwendet, wird (afaik) nichtmal ein stinknormales Hello-World-Programm unter OS X rennen.
    Kompiliere einfach selber von Source, dann kann es zumindest gehen – wenn er nicht zusätzlich noch J6-Spezifisches verwendet hat.

    @ Markus: Ahja, das sieht schon mal sehr nett aus. Also, es ist zwar dringend anzuraten, den Output auf /dev/null zu leiten, weil sonst die Performance unter alle erträglichen Maße sinkt, aber sonst ist's schon ein guter Anfang. ^^'
    Aber schade, dass du nicht weitermachen kannst, hat doch noch einige Bugs. Z.B. überschneiden sich Räume manchmal mit Gängen, sodass man sie bei der Textur-Darstellung manchmal gar nicht erkennt. Naja, aber das wirst du ja eh selber wissen.

  18. #18
    Zum Thema: Hört sich interessant an. Wie es der Zufall so will, habe ich genau eine Woche Urlaub. Mal sehen, wenn mir langweilig ist werde ich mich bestimmt an diesen Contest erinnern^^.

    Wobei: So wie ich mich wieder kenne, wird meine Grafikausgabe wohl nur auf ASCII-Art beschränkt und ein Konsolenprogramm sein... Mal schauen, was ich zusammenkriegen werde...

  19. #19
    Ich hab auch mal angefangen, was in Python zu basteln. Das Programm erzeugt SVGs als Ausgabe. Die Platzierung der Gänge und Räume funktioniert eigentlich schon gut, es könnten allerdings noch mehr Gänge wegfallen, damit der Dungeon interessanter wird.

    Eine Beispielausgabe gibt es hier. Der rote Raum ist der Startraum, der blau der Endraum und die gelben sind Bossräume. Der Algorithmus zum bestimmen der selbigen ist aber noch ziemlich primitiv, das werde ich wohl noch verbessern müssen (Es ist einfach der erste generierte Raum der Startpunkt und der letzte der Endpunkt, auch wenn die direkt nebeneinander liegen).

  20. #20
    @DFYX
    Versuchs mal damit:
    http://gebackene-ente.at/nudelsalat/...erator_1.5.zip
    Ansich war im Code eh nichts 1.6 spezifisches bis auf die @Override notation die das 1.5jdk wohl noch nicht hat.

    @Thomas
    Hab einfach mal die brutalen System.outs entfernt. Ja, das Programm hat leider noch Bugs und der Code macht rapid prototyping alle Ehre aber was solls. ^^
    Ich erwarte von dir Morgen auch ne Abgabe!

Berechtigungen

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