[Projekt] Yet another Dungeon Crawler
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.
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.
Re: [Projekt] Yet another Dungeon Crawler
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?
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?
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
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 ;)
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
Input für den Algo:joeydee hat geschrieben:Welcher Algorithmus steckt denn hinter dem Generieren des Dungeons?
- ein paar vordefinierte Räume
- Dimensionen des Dungeons
- maximale Korridorlänge
- Min. Abstand um Räume für Korridore
- 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
Das ist noch nicht fix, da die natürlichen Dungeons noch nicht fertig sind ;) .. Die künstlichen werden wie oben beschrieben erzeugt.mnemonix hat geschrieben:Welche Art von zelluläre Automaten nutzt ihr für die Erstellung der Dungeons?
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
Cellular Texture mit Gold-Weiß-Mischung:
Cellular Texture mit verschiedenen metallischen Edelsteinen:
Cellular Texture mit verschiedenen metallischen Edelsteinen:
Zuletzt geändert von Artificial Mind am 07.11.2011, 23:03, insgesamt 1-mal geändert.
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
Transparente Geometry und Distortion (echte Refraction kommt noch):
Re: [Projekt] Yet another Dungeon Crawler
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
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
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
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.
Momentan versuche ich multiple Distortion vernünftig zu faken, ohne pro "Layer" ein Pass zu machen, dann kann ich mit meiner Partikelengine Hitzeflimmern simulieren.
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
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:
Dies ist jetzt ein Screen, der hoffentlich den räumlichen Eindruck erhält und Hitzeflimmern, sowie das grüne Glas zeigt:
-
Alexander Kornrumpf
- Moderator
- Beiträge: 2198
- Registriert: 25.02.2009, 13:37
Re: [Projekt] Yet another Dungeon Crawler
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
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
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):
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):
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
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³
(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³
Re: [Projekt] Yet another Dungeon Crawler
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?
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
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 ;)
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 ;)
Re: [Projekt] Yet another Dungeon Crawler
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.
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.
Re: [Projekt] Yet another Dungeon Crawler
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?Artificial Mind hat geschrieben:wir benutzen GLFW fürs Fenster/Inputmanagement, GL3W für die extensions und GLM für Vektor/Matrixarithmetik.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
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 ;) )Jonathan hat geschrieben: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?Artificial Mind hat geschrieben:wir benutzen GLFW fürs Fenster/Inputmanagement, GL3W für die extensions und GLM für Vektor/Matrixarithmetik.
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.
- Aramis
- Moderator
- Beiträge: 1458
- Registriert: 25.02.2009, 19:50
- Echter Name: Alexander Gessler
- Wohnort: 2016
- Kontaktdaten:
Re: [Projekt] Yet another Dungeon Crawler
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 :-)
- 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
Erinnert mich an liquidiced. Hast du mal Cats Artikel dazu gelesen?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 ;)
- Chromanoid
- Moderator
- Beiträge: 4321
- Registriert: 16.10.2002, 19:39
- Echter Name: Christian Kulenkampff
- Wohnort: Lüneburg
Re: [Projekt] Yet another Dungeon Crawler
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³
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
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^^
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
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
- 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
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
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.
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
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.
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
Ich habe einfach mal kurz Marching Squares auf unsere ASCII Höhlen angewandt:
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 ...
Re: [Projekt] Yet another Dungeon Crawler
Sehr cool was ihr da macht und sehr interresant die Entwicklung mit zu verfolgen.... weiter so, weiter so, weiter so!!! :D
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
So: Gaussian Smoothing -> Noise perturbation -> adaptive Marching Squares -> voilà
Es gibt noch etwas Verbesserungsspielraum, aber im Groben bin ich doch zufrieden ;)
Re: [Projekt] Yet another Dungeon Crawler
Das sieht *awesome* aus! Super Arbeit! Du bist wirklich ein Artificial Mind. ;D Kennst du dich gut mit Bildverarbeitung aus?
- Artificial Mind
- Establishment
- Beiträge: 802
- Registriert: 17.12.2007, 17:51
- Wohnort: Aachen
Re: [Projekt] Yet another Dungeon Crawler
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^^mnemonix hat geschrieben:Das sieht *awesome* aus! Super Arbeit! Du bist wirklich ein Artificial Mind. ;D Kennst du dich gut mit Bildverarbeitung aus?
Re: [Projekt] Yet another Dungeon Crawler
Kannst du gute Lektüre oder ähnliches empfehlen zu dem Thema Bildverarbeitung?