[Projekt] Yet another Dungeon Crawler

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Benutzeravatar
mnemonix
Establishment
Beiträge: 101
Registriert: 09.04.2010, 20:38

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von mnemonix »

Sieht schon ziemlich cool aus das Material. Bin mal gespannt, wie das Spiel am Ende aussieht.

Hier noch zwei kleine Fragen:
Erstellt und verwaltet ihr euren eigenen OpenGL Context (inkl. Fenster Verwaltung) für beide Plattformen (Windows, Linux) oder benutzt ihr dafür eine 3rd Party Bibliothek wie SDL, GLFW, Qt, etc.? Welche Art von zelluläre Automaten nutzt ihr für die Erstellung der Dungeons?
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

wir benutzen GLFW fürs Fenster/Inputmanagement, GL3W für die extensions und GLM für Vektor/Matrixarithmetik.
Wenn mein Kommilitone Morgen Zeit findet, schreibt er sicher was über die Automaten ;)
balddenimhero
Beiträge: 7
Registriert: 03.11.2011, 19:33
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von balddenimhero »

joeydee hat geschrieben:Welcher Algorithmus steckt denn hinter dem Generieren des Dungeons?
Input für den Algo:
  • ein paar vordefinierte Räume
  • Dimensionen des Dungeons
  • maximale Korridorlänge
  • Min. Abstand um Räume für Korridore
Generierung läuft dann so:
  • Räume zeilenweise mit zufälliger Verschiebung in die Map einfügen (so viele wie passen)
  • Zugangspunke zufällig für Korridorverbindung auswählen
  • Per Floodfill kürzeste Wege zwischen Zugangspunkten finden
  • Zufällig kürzeste Wege auswählen und Korridore entsprechend legen
  • Auf Erreichbarkeit testen und wenns nicht anders geht neu generieren
mnemonix hat geschrieben:Welche Art von zelluläre Automaten nutzt ihr für die Erstellung der Dungeons?
Das ist noch nicht fix, da die natürlichen Dungeons noch nicht fertig sind ;) .. Die künstlichen werden wie oben beschrieben erzeugt.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

Cellular Texture mit Gold-Weiß-Mischung:
Cellular Texture - Gold
Cellular Texture - Gold

Cellular Texture mit verschiedenen metallischen Edelsteinen:
Cellular Texture - Mixed Metal Gems
Cellular Texture - Mixed Metal Gems
Zuletzt geändert von Artificial Mind am 07.11.2011, 23:03, insgesamt 1-mal geändert.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

Transparente Geometry und Distortion (echte Refraction kommt noch):
Transparent Distortion
Transparent Distortion
starvald
Beiträge: 31
Registriert: 16.04.2010, 17:20
Wohnort: Heppenheim

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von starvald »

Ich raff' das letzte Bild nicht. Irgendwie kommt da die Distortion (räumlich?) nicht rüber. Ansonsten sieht das sehr, sehr geil aus!

Wie willst du "echte" Refraction umsetzen? Ich frage, da ich mich selbst mal damit beschäftigt habe: http://www.youtube.com/user/starvald?fe ... K7byxz-40M

Der Effekt im Video ist übr. rein Shaderbasiert (SM 3.0)

Gruß,
Nick
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

Ja ich weiß was du meinst, der Eindruck geht irgendwie bei einem stillen Bild verloren... Distortion sollte auch nicht für Glas, sondern eher für Hitzeflimmern benutzt werden. Refraction will ich auch einfach per Post-Effect faken, ungefähr so: http://www.youtube.com/watch?v=57zr1vfU ... re=related

Momentan versuche ich multiple Distortion vernünftig zu faken, ohne pro "Layer" ein Pass zu machen, dann kann ich mit meiner Partikelengine Hitzeflimmern simulieren.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

So jetzt funktioniert multiple Distortion vernünftig. Transparente Geometry wird noch etwas hacky zusammengeblendet, das muss ich noch ändern.
Dies ist jetzt ein Screen, der hoffentlich den räumlichen Eindruck erhält und Hitzeflimmern, sowie das grüne Glas zeigt:
Hitzeflimmern und billige Rauch-Sprites ;)
Hitzeflimmern und billige Rauch-Sprites ;)
Alexander Kornrumpf
Moderator
Beiträge: 2198
Registriert: 25.02.2009, 13:37

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Alexander Kornrumpf »

Also für meine Begriffe sieht das "metal mixed gems" viel mehr nach Kirchenfenster (aka Glas) aus als das grüne Bundeswehr Tarnmuster dass anscheinen Glas darstellen soll :P
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

Ja das habe ich auf dieser Cellular Texture auch schon bemerkt. Das grüne "Glas" ist auch noch kein wirkliches Refraction sondern Distortion, also Blickwinkel- und Tiefenunabhängig.
Ich finde aber, die Goldadern auf der einen Steintextur sahen recht gut nach Metall aus. Von diesen "Adernbildern" habe ich noch zwei, die schon mehr nach Metall aussehen (obwohls eher Edelsteine sind):
Emerald Adern
Emerald Adern
Türkis Adern
Türkis Adern
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

So, Marching Cubes!
(Vielen Dank dabei an Cat, der einen exzellenten Artikel über Marching Cubes Optimierung geschrieben hat ;) )
Ich muss mir "nur" noch einen guten Plan ausdenken, wie ich die Normalen vernünftig berechne (momentan hat das noch einige Probleme), dann die Tangenten und dann einen guten Mechanismus zum Textur-Generieren.
Marching Cubes
Marching Cubes
Grid Resolution: 128³
Benutzeravatar
mnemonix
Establishment
Beiträge: 101
Registriert: 09.04.2010, 20:38

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von mnemonix »

Sieht lustig aus, aber für welche Zwecke wollt ihr den Marching Cubes Algorithmus später verwenden? Was soll das auf dem Bild darstellen und wie hast du es generiert?
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

Das auf dem Bild ist nur simples fraktales Perlin-Noise als Density für den Marching Cubes mit nem linearen Falloff auf der Y-Achse (oben), einfach um zu testen, ob der Algorithmus funktioniert.

Verwenden wollen wir ihn für die natürlichen Höhlen. Anstatt die Geometrie direkt zu modellieren - so stell ich mir das vor - wird "einfach" eine interessante, komplexe Dichte-Funktion erstellt, die hauptsächlich erstmal die Form, die wir gitterförmig bilden, nachbilden soll. Sekundär wird dann entsprechendes Noise draufaddiert, welches dann für Stalagmiten/titen, steinige Oberflächen, Säulen etc. sorgt/sorgen soll. Die genauen Details müssen noch ausgearbeitet werden, aber Marching Cubes ist als Engine-Feature auch ganz nett ;)
Benutzeravatar
Zudomon
Establishment
Beiträge: 2296
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Zudomon »

Ach, wie gern ich das auch so in SQ machen würde... aber ich befürchte, dass das alles zu langsam würde, wenn ich da Anfange, mehr als ein Voxel pro Meter zu nehmen.
Ich bin aber mal gespannt, wie das bei euch am Ende aussieht. Aber nicht, dass ihr mich zu Eifersüchtig macht und ich dann doch wirklich noch bei mir umbauen muss... ;)

Zu den glitzer Shadern hatte ich dich glaub ich nur im ICQ gelobt... also hier nochmal offiziell, das sieht echt geil aus! Nur musst du dir noch was wegen den Quadratpixeln einfallen lassen... zur Not dann wirklich beides berechnen und lerpen. Sollte doch eigentlich garnicht so viel ausmachen, oder wirst du pro Fläche mehr als zwei Materialien haben?
Oder du könntest auch das Objekt in 3 Submeshes unterteilen und dann nur die, wo beide Materialien gleichzeitig sind mit dem teuren Shader berechnen.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2961
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Jonathan »

Artificial Mind hat geschrieben:wir benutzen GLFW fürs Fenster/Inputmanagement, GL3W für die extensions und GLM für Vektor/Matrixarithmetik.
Wie zufrieden seit ihr mit GLM? Ich habe mir die Seite (http://glm.g-truc.net/ , stimmt doch, oder) mal angeschaut, es sieht ja ansich recht überzeugend aus.Jedenfalls besser als etwas selbstgeschriebenes und gute OpenGL Anbindung hat ja auch immer etwas für sich. Kann es das halten, was es verspricht?
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

Jonathan hat geschrieben:
Artificial Mind hat geschrieben:wir benutzen GLFW fürs Fenster/Inputmanagement, GL3W für die extensions und GLM für Vektor/Matrixarithmetik.
Wie zufrieden seit ihr mit GLM? Ich habe mir die Seite (http://glm.g-truc.net/ , stimmt doch, oder) mal angeschaut, es sieht ja ansich recht überzeugend aus.Jedenfalls besser als etwas selbstgeschriebenes und gute OpenGL Anbindung hat ja auch immer etwas für sich. Kann es das halten, was es verspricht?
Also ich bin sehr zufrieden damit, besonders weil es zu über 95% die gleiche Syntax hat wie GLSL und das sehr angenehm ist. (Die fehlenden 5% sind der glm:: namespace und das umständliche Swizzlen, also keine wirklichen Hindernisse imho ;) )
Man muss sich nur daran gewöhnen, dass v.length() nicht die Länge, sondern die Anzahl der Komponenten ist und man mit glm::length(v) die Länge bekommt (was natürlich konsequent ist, denn GLSL kennt keine "Klassenmethoden" und deswegen wird diese globale Funktions-Syntax benutzt). Ab und zu hakelt es mit irgendeiner Template-Argument-Deduction, aber eigentlich funktioniert es zuverlässig. Performanceprobleme hatte ich auch noch keine und ich benutze die Vektoren in der prozeduralen Generierung, also schon im Performance-kritischen Bereich. Wenn man sich konsequent daran erinnert, dass GLM genauso wie GLSL-Arithmetik funktioniert, dann ist GLM wirklich gut.
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Aramis »

Das deckt sich ziemlich mit meinen Erfahrungen mit GLM. Die Aufteilung der einzelnen Komponenten auf Header ist aeusserst gewoehnungsbeduerftig, aber wenn man mal die passenden Includes zusammen hat, fuehlt es sich ziemlich gut an :-)
Benutzeravatar
TGGC
Establishment
Beiträge: 569
Registriert: 15.05.2009, 18:14
Benutzertext: Ich _bin_ es.
Alter Benutzername: TGGC
Echter Name: Ich _bin_ es.
Wohnort: Mainz
Kontaktdaten:

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von TGGC »

Artificial Mind hat geschrieben:Das auf dem Bild ist nur simples fraktales Perlin-Noise als Density für den Marching Cubes mit nem linearen Falloff auf der Y-Achse (oben), einfach um zu testen, ob der Algorithmus funktioniert.

Verwenden wollen wir ihn für die natürlichen Höhlen. Anstatt die Geometrie direkt zu modellieren - so stell ich mir das vor - wird "einfach" eine interessante, komplexe Dichte-Funktion erstellt, die hauptsächlich erstmal die Form, die wir gitterförmig bilden, nachbilden soll. Sekundär wird dann entsprechendes Noise draufaddiert, welches dann für Stalagmiten/titen, steinige Oberflächen, Säulen etc. sorgt/sorgen soll. Die genauen Details müssen noch ausgearbeitet werden, aber Marching Cubes ist als Engine-Feature auch ganz nett ;)
Erinnert mich an liquidiced. Hast du mal Cats Artikel dazu gelesen?
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4321
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Chromanoid »

Artificial Mind hat geschrieben:So, Marching Cubes!
(Vielen Dank dabei an Cat, der einen exzellenten Artikel über Marching Cubes Optimierung geschrieben hat ;) )
Ich muss mir "nur" noch einen guten Plan ausdenken, wie ich die Normalen vernünftig berechne (momentan hat das noch einige Probleme), dann die Tangenten und dann einen guten Mechanismus zum Textur-Generieren.
Grid Resolution: 128³
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

Ich bin nicht zu allzu viel gekommen, aber es gibt jetzt ein rudimentäres Mapsystem und sobald wir die natürlichen Caves per Cellular Automata fertig haben und mit den Künstlichen Dungeons gemerged haben, wird die Karte auch sinnvoller befüllt. Man sieht noch sehr gut, dass die Normalen vom Marching Cubes noch rumbuggen, dass steht aber schon auf meiner virtuellen TODO-Liste, genauso wie vernünftiges Marching Cubes Texturing ;) Durch die fehlerhaften Normalen sieht man momentan sehr gut, dass die Karte aus Kästchen besteht^^
Marching Cubes Map System
Marching Cubes Map System
PS: Ja, die "Feuer-Partikel" bestehen noch aus einer sehr schlechten unanimierten Perlin-Textur, reines Debug Feature *g*
balddenimhero
Beiträge: 7
Registriert: 03.11.2011, 19:33
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von balddenimhero »

Da die Showroomtags nun auch für nicht-Threadersteller gehen poste ich mal Bilder von den natürlichen Dungeons wie sie bisher aussehen. Erreichbarkeit wird hier bisher noch nicht getestet, ist ja aber keine große Sache und kommt die Tage rein. ;) Der Look der Dungeons gefällt schon mal :D

Natürlicher Dungeon
Natürlicher Dungeon
Benutzeravatar
Schrompf
Moderator
Beiträge: 5402
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Schrompf »

Gefällt mir, ein schönes Höhlensystem. Aber wie willst Du Erreichbarkeit sicherstellen? Einfach Flood Fill und neugenerieren, wenn >10% nicht zu erreichen sind?
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
balddenimhero
Beiträge: 7
Registriert: 03.11.2011, 19:33
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von balddenimhero »

Genau ;) Das Generieren geht so schnell, da kann mans auch eben neu generieren lassen. Erreichbarkeit mit Automaten zu bewerkstelligen wäre wohl kaum sinnvoll möglich.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

Andererseits ist die Wahrscheinlichkeit bei größeren Dungeons recht groß, dass viele Teile abgeschnitten sind. Wir sollten vielleicht doch im Nachhinein Teile verbinden, können das ja irgendwie mit den "Bergwerksstollen" oder so verbinden.
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

Ich habe einfach mal kurz Marching Squares auf unsere ASCII Höhlen angewandt:
Marching Squares Dungeon
Marching Squares Dungeon
Adaptives Marching Squares sieht irgendwie nicht so gut aus, ich glaube ich muss per Gauss-Kernel smoothen damit die Wände mehr als 4 Richtungen haben ...
LONy
Establishment
Beiträge: 145
Registriert: 29.09.2011, 10:04

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von LONy »

Sehr cool was ihr da macht und sehr interresant die Entwicklung mit zu verfolgen.... weiter so, weiter so, weiter so!!! :D
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

So: Gaussian Smoothing -> Noise perturbation -> adaptive Marching Squares -> voilà
Marching Squares Dungeon - Smoothed
Marching Squares Dungeon - Smoothed
Es gibt noch etwas Verbesserungsspielraum, aber im Groben bin ich doch zufrieden ;)
Benutzeravatar
mnemonix
Establishment
Beiträge: 101
Registriert: 09.04.2010, 20:38

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von mnemonix »

Das sieht *awesome* aus! Super Arbeit! Du bist wirklich ein Artificial Mind. ;D Kennst du dich gut mit Bildverarbeitung aus?
Benutzeravatar
Artificial Mind
Establishment
Beiträge: 802
Registriert: 17.12.2007, 17:51
Wohnort: Aachen

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von Artificial Mind »

mnemonix hat geschrieben:Das sieht *awesome* aus! Super Arbeit! Du bist wirklich ein Artificial Mind. ;D Kennst du dich gut mit Bildverarbeitung aus?
Vielen Dank ;) Ich versuche meinem Namen gerecht zu werden *g* Ich habe relativ viel praktische Erfahrung mit Bildverarbeitung und einige Hintergrundkentnisse. Bei irgendwelchen komischen Transformationen im Spektralraum, nachdem man das Bild per Fourier "desintuitiviert" hat, tue ich mich allerdings noch etwas schwer^^
Benutzeravatar
mnemonix
Establishment
Beiträge: 101
Registriert: 09.04.2010, 20:38

Re: [Projekt] Yet another Dungeon Crawler

Beitrag von mnemonix »

Kannst du gute Lektüre oder ähnliches empfehlen zu dem Thema Bildverarbeitung?
Antworten