FROSTKERN - ein Gridbased DungeonCrawler

Mirror
Establishment
Beiträge: 325
Registriert: 25.08.2019, 05:00
Alter Benutzername: gdsWizard
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Mirror »

Der Download funktioniert nicht weil ein Virus gefunden wird.
Hat den StormWizard 1.0 und 2.0 verbrochen. https://mirrorcad.com
Benutzeravatar
Zudomon
Establishment
Beiträge: 2273
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Zudomon »

Also beim letzten mal hab ich es noch geschafft, es runter zu bekommen... aber diesmal bekomme ich es nicht mehr hin, es trotzdem zu erlauben, ohne dass es gelöscht wird, sei es vom Chrome oder von Windows Defender.
Screenshot 2024-12-06 000106.jpg
Screenshot 2024-12-06 000212.jpg
Dachte damals bei mir, dass es vor allem an Turbo Delphi 2006 liegt, weil es schon so alt ist, dass es überall diese false positive Warnings ausspuckt.
Benutzeravatar
Schrompf
Moderator
Beiträge: 5169
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Schrompf »

Microsoft hat geschrieben:Threat behavior

Technical details are currently not available.
Danke, Microsoft. Das stinkt alles nach "ohohoh, Exe aus dem Internet muss IMMER böse sein", aber so ne Rest-Unsicherheit bleibt schon, ob ich mir irgendwas eingetreten habe. Ich guck mal daheim.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
scheichs
Establishment
Beiträge: 929
Registriert: 28.07.2010, 20:18

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von scheichs »

Schrompf hat geschrieben: 02.12.2024, 23:15 Wer Bock auf sowas hier in "ordentlich" hat, dem empfehle ich Dungeons Of Dreadrock - knuffiger kleiner Puzzle-DungeonCrawler mit RPGMaker-Optik und ner kleinen Story. Das Spiel ist durchweg nur Rätsel, selbst die Monster und Items sind nur Teil von Puzzles.
Für Switch aktuell für 1€
https://www.nintendo.com/de-de/Spiele/N ... 05817.html
Benutzeravatar
Jonathan
Establishment
Beiträge: 2664
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Jonathan »

Habs jetzt auch endlich gespielt.

Eine Sache, die direkt auffiel, waren extreme Performance-Probleme. Bin mir nicht sicher, weshalb, mein Rechner hier hat eine RTX 3090 und ein Intel Xeon E5-2687W / 3 GHz / 24 Cores und 128 GB RAM. Eigentlich dachte ich, dass das für die meisten Spiele ausreichen sollte. Zumal ja die Grafik, zumindest auf den ersten Blick nicht so arg komplex ist. An dem 4k Bildschirm sollte es denke ich nicht liegen, oder? Naja, zumindest war die Performance mein Hauptproblem, wenn alles ruckelt und stottert schlägt das doch arg auf die Spielbarkeit. Aber kommen wir zum Spiel selber.

Der Grafikstil und die passende Musik erzeugen direkt eine bedrohliche Atmosphäre. Man ist eher langsam unterwegs, nicht agil, fühlt sich etwas alleine und ausgeliefert. Die Bodenplatte und das Tor sind auf eine gewisse Art verstörend laut, wer weiß schon, welche Monster das aufweckt. Und dann knallt das Tor hinter mir zu und ich bin eingesperrt in dieser Kammer, mit irgendeinem Mosaik, das ein verstörendes Ritual zeigt, wer weiß schon, was hier für Menschen hausen und was passiert, wenn die mich finden. Das Kopfkino funktioniert überraschend gut.

Später die Knöpfe in der Wand sind auch recht schmatzig. Die Animation und der Sound geben ihnen ein gewisses Gewicht, die zu drücken fühlt sich gut und wirkungsvoll an. Sehr sehr nice!

Das Knöpferätsel hab ich so ein bisschen (??) gelöst. Unten im Bild sind Blitze, oben nicht, ich hab ein paar dieser Knöpfe in irgendeiner Reihenfolge gedrückt, dann ging das Tor auf. Ich weiß nicht so ganz, warum das jetzt richtig war, aber nun gut. Ich dachte irgendwie, der Baum und sein Schatten seien sehr wichtig, ein wenig wie in The Witness, aber scheinbar nicht. Der Baum ist ja das einzige komplexe Objekt, nunja, ich schätze mal das war einfach unfertig?

Der dritte Raum den ich fand, musste man durch Steinewerfen öffnen. So hat man ein paar unterschiedliche Mechaniken mal benutzt, nett.

Aufgrund der Performance hatte ich dann wenig Lust, den ganzen Rest des Levels zu erkunden. Was ich hier so lese, scheine ich mit den 3 Räumen die ich geöffnet habe ja das meiste gesehen zu haben.

So nett die Musik anfangs wirkte, nach ein paar Minuten ist sie doch arg laut und eintönig, das wurde mir dann irgendwann etwas zu viel. Vielleicht könnte man da noch dran drehen.

Zur Steuerung die hier ja viel diskutiert wurde: Ich hab beide Versionen getestet, ich glaube die erste gefällt mir besser. Ich meine mich zu erinnern, dass man sich in Grimrock komplett drehen konnte, lässt man die Maus los snappt die Kamera einfach langsam in die naheliegenste Blickrichtung. Sowas hätte ich mir hier wohl noch gewünscht. Dieses Tile-Gehopse ist gewöhnungsbedürftig aber nicht unbedingt schlecht, ich habe aber wirklich nur Grimrock gespielt, sonst absolut nichts ähnliches. Gefühlt waren in Grimrock die Level viel enger, da funktionierte die Steuerung irgendwie besser, weil es wirklich darauf ankommt, auf welchem Tile man steht. Diese großen offenen Flächen fühlen sich viel mehr danach an, als solle man sich frei bewegen können. In der neuen Variante ist es zudem sehr merkwürdig, Gegenstände ins Inventar zu legen, weil man dafür automatisch sonstwohin guckt.

Dass die Oberflächengenerierung so komplex ist, ist technisch sehr interessant. Für dieses Spiel macht das nicht viel, aber ist ja klar, dass es dir hier auch mehr um die Technikspielerei geht, die dann sonstwo nochmal verwendet wird oder so. Nur schade, dass bei mir die Performance so kaputt war, das hat alles echt ein wenig anstrengend gemacht.

Diese halb-globale Beleuchtung finde ich immer noch cool. Auch wenns simpel ist, macht das einen guten Unterschied. Insgesamt scheint mir, man hätte mehr am Spiel selber schaffen können, wenn man nicht diese komplexe Oberflächenerzeugung verwendet hätte, die sich ja am Ende gar nicht so ausgezahlt hat, weil die meisten Flächen glatt sind. Aber mir scheint, du wolltest dieses Projekt auch einfach gerne nutzen um diese Technik weiter zu entwickeln, von daher kann ich das eigentlich gar nicht kritisieren.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Schrompf
Moderator
Beiträge: 5169
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Schrompf »

Danke für's Ausprobieren. Ja, Du hast in allen Punkten den Daumen drauf: es ruckt in Bewegung so heftig, weil da halt immer wieder bis zu 2048er-Texturen übertragen werden. Wenn man still steht, hatte ich mit ner 3070 und bissl viel selbst verschuldetem DrawCall-Overhead immer so 150fps, und Dein Monstersystem dürfte das noch bissl toppen. Das Erzeugen passiert rein auf der CPU und parallel, das merkt man gar nicht in der Performance.

Man merkt es aber auch nicht an der Optik, weil das System aktuell nur flatshaded Einheitsoberflächen ausspuckt. Auch da hast Du den Nagel auf den Kopf getroffen. Das wird noch, ich baue gerade schrägschiefe Quads und adaptive Unterteilung ein, und Randübergänge sind dann der nächste Schritt. Und erst dann ergibt das System überhaupt Sinn, weil dann am Ende hoffentlich eine ganzheitliche, aus einem Guss wirkende Szene rausfällt, die den ganzen Eiertanz überhaupt wert ist.

Die Sounds und die Musik hab ich wortwörtlich 23:30 Uhr aus Splatter und meiner Musikfestplatte zusammengeklaut, und dafür machen die echt einen Unterschied im Erleben. Ich hab dabei aber auch festgestellt, dass der Track in meinem Audioplayer deutlich besser klingt als im Spiel... keine Ahnung, was da passiert. Die Musikrichtung ist aber ab Werk bereits anstrengend und nur was für Fans des Genres. In nem richtigen Spiel würde ich glaube ich nur Atmogeräusche und einen sehr hintergründigen Track nehmen, und dann nur bei besonderen Gelegenheiten für kurze Zeit in echte erkennbare Songs ausbrechen.

Inhaltlich hast Du alles, glaube ich. Gibt noch eine zweite per Steinwurf erreichbare Bodenplatte, die einen weiteren Raum mit Wandmosaik öffnet, aber aus Deiner Beschreibung hab ich jetzt nicht rausgelesen, welchen von beiden Du erwischt hast. Ist aber auch egal, so weit trägt das Spiel eh nicht mehr.

Und das ganze Thema mit der Steuerung... tja. Hab das auch beim Stammtisch nochmal angesprochen und bissl Eindrücke gesammelt. Ich *glaube*, ich schmeiß das blockweise Leben insgesamt weg und gehe voll auf Ultima Underworld, aber bisher schiebe ich eine finale Entscheidung vor mir her. Freie Bewegung fühlt sich auch nicht so recht wie des Rätsels Lösung an, weil man da dann in die Gefilde von den ElderScrolls kommt. Und die habe ich als seelenlose beliebige Freifläche in Erinnerung, von der ich mich dringend abheben möchte. Und mit deren Production Value verglichen zu werden wird auch ein ungnädiges Brot. Hm.

Naja, erstmal Tech.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2165
Registriert: 18.10.2010, 23:26

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von marcgfx »

Maus-Umschauen ist cool, aber ich fänds schön wenn die Pfeiltasten mit der Blickrichtung funktionieren, ich war kurz verwirrt. Ich habe einfach probiert ohne zu lesen, wusste also nicht, dass Klick-Bewegung eingebaut ist. Die Welt erscheint mir ziemlich gross und ich würde gerne mehr erkunden, für mich ist die Bewegungsgeschwindigkeit leider so gering wie meine Geduld nach dem morgendlichen Kaffee.

Bin gespannt wie es nach den wohlverdienten Ferien weitergeht!
Benutzeravatar
Schrompf
Moderator
Beiträge: 5169
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Schrompf »

Oh, das Timing. Hab immer noch ein TimerCap bei einem 64stel einer Sekunde, und wenn die Texturtransfers reinhacken, wird das schnell gerissen, und dann wird der globale Zeitablauf langsamer. Danke für's Ausprobieren.

Und ja, die Mausbewegung... das seitliche Umschauen ist so großzügig, dass man schon in die Nachbarrichtung schauen kann. Und wenn man dann <Vorwärts> drückt, kann das sehr verwirren. Das ist in der Tat ne Kleinigkeit, die ich fixen kann, ohne dass ich mich endlich mal entscheiden müsste, ob ich nun gridbased oder frei bewegen will.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Endgegner
Beiträge: 42
Registriert: 19.12.2020, 18:43

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Endgegner »

Unerwartet düster kommt dieser Crawler daher. Die Musik baut eine unheilvolle Atmosphäre auf und man befürchtet schon fast, dass in den verwinkelten Kammern und Gängen eine noch unbekannte Gefahr lauert. Auch wenn diese Musik – wie du schreibst – eher provisorisch hinzugefügt wurde und vielleicht auch gar nicht so sehr zum geplanten Spiel passt, macht sie ihre Sache hier richtig gut.

Die Spielwelt tut ihr Übriges dazu: Obwohl das Leveldesign als Prototyp gedacht ist, schafft dieser triste Look zusammen mit der Musik eine durchaus skurrile Erfahrung. Perfekt für ein albtraumähnliches Level, bei dem man sich nicht sicher sein kann, was hinter der nächsten Ecke wartet, würde ich sagen. :)

Die Rätsel habe ich alle gemacht und sie haben prima funktioniert. Bei der unerreichbaren Bodenplatte, die man mit einem Steinwurf betätigen musste, habe ich zwei Versuche gebraucht, um die Wurfmechanik zu verstehen. Der erste Stein ist einfach vor mir die Rampe hinunter geplumpst. Bei dem Mosaik habe ich die Zacken des Blitzes mit den Schaltern „nachgedrückt“, was vermutlich auch so gedacht war, weil sich das Gitter anschließend geöffnet hat.

Ich kann mir durchaus vorstellen, dass man auf diese Weise einige tolle Rätsel zusammenbauen kann. In meinem Spiel habe ich auch Schalter und Bodenplatten integriert, nur werden bei mir die Bodenplatten durch verschiebbare Objekte, z.B. Kisten, aktiviert. Dadurch ergeben sich zusätzlich noch ein paar nette Schieberätsel, weil sich die Objekte in engen Gängen nicht beliebig verschieben lassen.

Mein Laptop ist während des Spielens allerdings ganz schön aus der Puste gekommen, meistens hatte ich so um die 16 FPS. Deswegen fällt es mir etwas schwer, die Thematik mit der Steuerung genauer zu beurteilen. Insgesamt könnten die Bewegungen gerne flotter sein und vermutlich wäre es angenehm, wenn man in bestimmten Situationen den Mauszeiger bewegen könnte, ohne sich gleichzeitig umzusehen, z.B. wenn man Gegenstände ins Inventar legen möchte.

Macht auf jeden Fall schon Lust auf mehr! Monster, Texturen, Abenteuer. ;)
Benutzeravatar
Schrompf
Moderator
Beiträge: 5169
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Schrompf »

Danke für's Ausprobieren! Die Timer-Begrenzung auf 1/64stel Sekunde ist immer noch drin, d.h. mit 16fps hast Du auf nem Viertel Spieltempo gespielt. Ja, da wird jede Bewegung sehr zäh. Sorry :-)

Was hast Du für Hardware? 16fps klingt schon ganz schön wenig. Dass die Texturupdates langsam sind, ist mir bewusst, aber beim Umschauen ohne Fortbewegung sollten die nicht wirken. Gab ja noch jemanden hier, der nicht nur Transfer-Ruckler hatte, sondern mit dauerhaft niedriger Framerate spielen musste. Ja, da muss ich nochmal bei. Ist in Arbeit :)

Genauso in Arbeit sind weitere Rätsel. Klassisch in dem Genre sind ja noch die Bodenplatten, wo man geschlossen drüber läuft und geöffnet in untere Stockwerke plumpst. Und dann Teleporter oder Drehfelder, Feuerball-Fallen, deren Feuerbälle man genauso umlenken kann... ich hab schon ne lange Ideen-Sammlung.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Endgegner
Beiträge: 42
Registriert: 19.12.2020, 18:43

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Endgegner »

Schrompf hat geschrieben: 02.01.2025, 22:54 Was hast Du für Hardware? 16fps klingt schon ganz schön wenig. Dass die Texturupdates langsam sind, ist mir bewusst, aber beim Umschauen ohne Fortbewegung sollten die nicht wirken. Gab ja noch jemanden hier, der nicht nur Transfer-Ruckler hatte, sondern mit dauerhaft niedriger Framerate spielen musste. Ja, da muss ich nochmal bei. Ist in Arbeit :)
Getestet habe ich auf einem Laptop mit folgender Hardware: Intel Core i5 2 GHz, 16 GB, NVIDIA GeForce RTX 3050. Also nicht unbedingt ein Highend-System. :)

Wenn ich mich im Level nicht bewege, habe ich tatsächlich mehr FPS, so um die 22.
Benutzeravatar
Schrompf
Moderator
Beiträge: 5169
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Schrompf »

Die HW ist jetzt aber auch nicht sooo übel. Hm. Danke für den Report! CPU-seitig geht noch Einiges, da gibt's paar niedrig hängende Früchte. An der GPU-Front könnt ich höchstens die Anzahl Schatten-Samples reduzieren, das wär auch ein einfacher Sieg. Danach wird's knifflig.

Naja, ich behalte es auf dem Schirm.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
NytroX
Establishment
Beiträge: 406
Registriert: 03.10.2003, 12:47

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von NytroX »

Das Grid an sich finde ich gut, nur das Laufen ist noch etwas langsam, wenn man etwas weiter geradeaus will.
Bin dann in den einen Graben gefallen und kam nicht wieder raus - aber ich glaube ansonsten habe ich alles gesehen.
Ich fands cool :-) hätte gerne noch weiter gespielt.

Edit: zur Performance:
Ich kann die meisten Spiele 4K mit Raytracing bei 144 FPS spielen - hier warens "nur" knapp über 100 FPS.
Also ja, irgendwas bremst da noch ungewöhnlich stark.
Benutzeravatar
Schrompf
Moderator
Beiträge: 5169
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Schrompf »

frostkern_rundkante.png
Hab mein ewiges Problem mit Texelmitten und Vertex-Kanten gefixt bekommen. Und jetzt, da ich eine stetige Abbildung von Oberflächendetails auf's Quad habe, kann ich die Oberflächen-Modifikationen angehen. Die Erste davon soll die Rundung zu Nachbar-Quads sein. Und das geht jetzt, leider aber nur an Kanten zwischen genau zwei Quads. An Ecken, wo mehr als zwei Quads mitspielen, wird's beliebig hässlich :-(

Naja, wird noch. Jedenfalls geht's nach drei Monaten Vermeidung gerade mal wieder vorwärts!
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2664
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Jonathan »

Nice! Die letzte Demo fand ich schon sehr spannend und atmosphärisch, nur Performance war da noch so eine Sache.
Schrompf hat geschrieben: 28.04.2025, 18:33An Ecken, wo mehr als zwei Quads mitspielen, wird's beliebig hässlich :-(
Hmm, eine Ecke berührt 8 Blöcke, das macht 256 Kombinationen aus denen man noch Symmetrien rausrechnen kann (aber auch nicht ganz einfach). Gibt sicherlich viel Marching Cubes Kram, an dem man sich orientieren kann, aber spaßig klingt das nicht.

Vielleicht eher etwas in Richtung Catmull-Clark? Statt auf basis einzelner Blöck zu arbeiten, werden die zu einem Mesh gemerged, innere Oberflächen gelöscht und dann verschönert und das Ergebnis wieder auf Blöcke zurückgerechnet. Da spart man sich die vielen Fallunterscheidungen und es dürfte viel viel robuster und insgesamt übersichtlicher und einfacher sein.

Aber ist natürlich die Frage, ob man das irgendwie gut in das vorhandene Konzept einbauen kann...
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Schrompf
Moderator
Beiträge: 5169
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Schrompf »

Tja, da sagst Du was. Joeydee bewirbt auch schon Catmull-Clark, ich kapier's nur nicht. Es gäbe laut Wikipedia davon sogar eine ausformulierte Version, wo ich quasi die "Rundungsformel" an einer beliebigen Stelle der Oberfläche auswerten und als Offset anwenden kann. Aber auch die hab ich nicht kapiert, die kombiniert irgendwelche Matrizen und "löst" sie dann über Eigenwert-Zerlegung.

Ich hab echt kein Hirn dafür. Oder eher: keinen Einsatzwillen mehr. Wenn ich mal zum Coden komme, dann muss die Lösung schnellschnell direkt auf der Hand liegen. Dafür gäb's ja eigentlich heutzutage KI, aber die hat mir fälschlicherweise erzählt, dass das Problem der direkten Auswertung nicht zu lösen ist und ich doch bitte wieder rekursiv unterteilen und mitteln sollte.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2664
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Jonathan »

Schrompf hat geschrieben: 29.04.2025, 08:32 Joeydee bewirbt auch schon Catmull-Clark, ich kapier's nur nicht.
Haha, ja. Ich hab vor Jahren mal einen Vortrag über CG Basics vorbereitet und dachte mir "Hey, pack doch einen Standardalgorithmus rein, nimmste CC, wie schwer kann das sein." Das hat wesentlich länger gedauert, als ich erwartet hätte. Aber eigentlich ist es letztendlich doch ganz einfach. Als Überblick (keine Wirkliche Erklärung): Aus den ursprünglichen Vertices berechnest du 3 verschiedene Arten an neuen Punkten, alles gewichtete Summen der Vertices. Erst Mittelpunkte der Flächen, dann Mittelpunkte der Kanten (mit Offset basierend auf den Flächenmittelpunkten aus Schritt 1), und dann Offsets für die Ecken (basierend auf den ersten 2 Punkten). Dann schmeißt du alle ursprünglichen Vertices weg und nimmst die 3 verschiedenen Arten an Punkten als neue Vertices und verbindest sie zu Polygonen. In Ecken können sich natürlich mehr als 3 Flächen treffen, und Flächen können 3, 4 oder mehr Ecken haben, entsprechend mittelst du dann halt eine unterschiedliche Anzahl an Punkten.

Ich wollte auch gar nicht sagen, dass du genau Catmull Clark machen solltest. Bloß konzeptionell finde ich es clever, Punkte nur einmal zu betrachten. In deinem Screenshot berühren sich 5 Quadrate vorne in der Ecke, das ist 5 mal die selbe Position, die danach aber 5 mal woanders landet. Hast du ein Mesh mit allen Konnektivitäten, dann hast du nur einen Punkt und Lücken können unmöglich entstehen. Die Regeln, wie dieser Punkt berechnet / verschoben werden soll, kannst du dir ja auch selber überlegen, es sollte halt vermutlich nur irgendwie von den 5 Nachbarn abhängen.

Du könntest ja mit etwas super einfachem anfangen: Jede Kante wird einmal geteilt, der Punkt in der Mitte wird nicht bewegt. Die zwei Ecken werden zum Mittelwert all ihrer Nachbarn hin verschoben. Und schon ist die Geometrie irgendwie "runder". Das kann man dann komplizierter machen, mehr Sachen mit einberechnen, Gewichte anpassen, Noise hinzufügen und so weiter.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Jonathan
Establishment
Beiträge: 2664
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Jonathan »

Ich habs mal aufgemalt :D
subdivision.png
subdivision.png (3.64 KiB) 426 mal betrachtet
Oben im Bild hat man eine schwarze Ecke (3 Punkte, 2 Kanten). Die soll rund werden. Die roten Punkte sind Mittelpunkte der Kanten, die werden dann nochmal zum grünen Punkt gemittelt und schließlich wird der mit der original Ecke gemischt um den blauen Punkt zu bekommen. Im Bild unten ist die neue Kante dann der schwarze, rote, blaue, rote und schwarze Punkt von oben. Sieht doch schon gut aus. Das ist auch schon alles, CC macht nichts anders, nur halt "mehr": Es gibt Kanten und Flächen und Ecken und unterschiedlich viele Verbindungen, aber konzeptionell ist es genau das und nicht mehr.

Interessanterweise sieht das stark nach De Casteljau für Bezierkurven aus. Ist wohl kein Zufall, denn die machen ja auch nichts anderes, als Start und Endpunkt mit einer glatten Kurve zu verbinden. Die Regeln sind halt nur leicht anders. Und du kannst dir die Regeln ja so ausdenken, wie du sie brauchst. Z.B. die Kante bei 1/8 und 7/8 unterteilen, damit nur die Kanten abgerundet werden, die Flächen aber gerade bleiben (willst ja keine Kugeln kriegen). Das Prinzip ist simpel und immer gleich, die Umsetzung dann hauptsächlich Rumspielen.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
Schrompf
Moderator
Beiträge: 5169
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Schrompf »

Danke! Das sieht wirklich nach Bezier-Kurven aus, und genau das hatte ich zwischendurch auch implementiert. Generalisiert leider in meinem Kopf nicht für 3+ beteiligte Elemente.

Ich hab dort gestern was hingefaked, wo ich die Normale anteilig interpoliere, je näher der Punkt an Kanten/Ecken kommt. Dann kann ich aus der Differenz zwischen Ebenennormale und interpolierter Normale auch ne Auslenkung berechnen. Guck ich mir die Tage nochmal an, aber jetzt ist erstmal wieder RL
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
joeydee
Establishment
Beiträge: 1185
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von joeydee »

Mach doch mal nen Debug-Render von deinen gemittelten Normalen die genau in den Ecken jedes Polygons sitzen. Ohne Auslenkung des Meshes, nur die Richtung im Vertex als Linie rendern. Für jedes Polygon. Sind die in den Vertices überhaupt deckungsgleich und damit eindeutig, also erscheint nur 1 Linie in jeder Ecke, oder ist das ein Blumenstrauß? Deinem Screenshot nach könnte man z.B. Letzteres vermuten.

Falls die Normalen aber doch eindeutig sind, könnten die Gewichte daneben sein, also z.B. kommt zu viel von einer anderen Normalen rein und deren Gewicht geht bis zur Ecke nicht auf 0, und im angrenzenden Polygon ebenso von der anderen Seite, weshalb das auseinanderklafft.
Oder anders ausgedrückt, zwei Farbverläufte, die teilen sich in der Mitte Gelb. Der eine kommt von links mit Rot, der andere von rechts mit Blau. Die Gewichte von Rot und Blau müssen am Übergang natürlich genau 0 sein, dann ergeben beide in der Mitte genau Gelb, ohne dass Rot von Blau wissen muss und umgekehrt. Sind die Gewichte aber etwas zu groß, stößt stattdessen Orange an Grün.

Wenn du doch nochmal CC anschauen möchtest:
Ich rate dir, vergiss erstmal irgendwelche expliziten CC-Lösungen. Schau dir an wie nur der erste CC-Schritt gemittelt wird. Das ist simpel, das zeigt auch das Video das ich im Chat verlinkt hatte.
Betrachte das in Ruhe, und mach dir einen Reim daraus, was du da schon aus dem 1. Schritt an Info (neue Normalenrichtungen an bestimmten Stellen anhand der entstandenen Auslenkungen etc.) für deine Zwecke rausziehen und weiter interpolieren kannst, ohne den CC in mehreren Schritten (rekursiv) ausführen zu müssen.

Für weitere Inspiration zur Steuerung des Eckenradius: Mach dir ein Experimental-Mesh, drittle darin jedes Original-Quad, und lass mal den CC-Algo schrittweise drüberlaufen. Die Drittelung muss nicht gleichmäßig sein: je nächer die Teilungslinien an den Kanten, desto schärfer die Rundung.

Mir geht es bei der "Werbung" für CC gar nicht darum, dass du das stur umsetzen sollst. Sondern einfach mal gucken, wie und warum es damit problemlos funktioniert, um vielleicht rauszufinden, was bei deiner Methode falsch läuft. Sozusagen als Referenz.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2664
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von Jonathan »

Schrompf hat geschrieben: 29.04.2025, 10:13 Danke! Das sieht wirklich nach Bezier-Kurven aus
Ich würde allerdings nicht aus Richtung Bezierkurve denken, glaube ich:

- statt Linien hast du nicht Flächen, sondern Volumen, mit denen du arbeitest (zweimal eine Dimension hoch, quasi)
- statt kontinuierlichen Werten willst du diskrete Punkte an sinnvollen stellen

Du kannst jetzt also versuchen irgendwelche 1D Kurven in mehrere Richtungen zu bauen, die irgendwie kreuz und quer zu sampeln und dann irgendwie die Punkte verbinden. Geht bestimmt, ist aber bestimmt auch kniffelig und für mich erstmal nicht so intuitiv. Bei rekursiven CC, oder dem was ich oben gemalt habe, ist ein zusätzlicher Punkt einfach nur ein weiterer Eintrag in der gemittelten Summe die du berechnest, easy. Bisschen aufpassen musst du später bloß, wie du die Vertices zu Flächen verbindest, aber da gibt es halt irgendwie für jede Anzahl Nachbar einen Fall, und jeden davon kannst du dir einmal schnell aufmalen. Auf jeden Fall ist das zunächst einmal nicht kontinuierlich, sondern immer auf Mesh-Basis. (Ja, das ist alles irgendwie philosophisch und hängt stark davon ab, mit welchem mentalen Modell man am besten arbeiten kann, so gehts halt mir nur, vielleicht nützt es ja).

"Nachteil" ist, dass du nicht direkt etwas glattes rausbekommst, sondern erstmal nur die Auflösung verdoppelt wird. Aber das ist vlt. gar nicht so schlecht. Oben im Beispiel kannst du dir ja überlegen, wo die roten Punkte platziert werden sollen und du kannst auch auf der blauen Linie entscheiden, wie du das Gewichten willst (aus Symmetriegründen ist grün vielleicht immer die Mitte? Aber könnte ja auch noise haben ;) ). Diese Gewichte kannst du super easy in jeder Iteration anpassen, für 3 Level einfach 3 mal die selbe Funktion mit anderen Parametern aufrufen. Erster Level rundet dann vlt. nur die Kanten ab, der zweite Level nimmt überall genau die Mitte damit es hübsch glatt wird und der dritte Level hat einen hohe Noise wert für schicke Details.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
joeydee
Establishment
Beiträge: 1185
Registriert: 23.04.2003, 15:29
Kontaktdaten:

Re: FROSTKERN - ein Gridbased DungeonCrawler

Beitrag von joeydee »

Nochmal meine Gedanken gekürzt, im Wesentlichen würde ich mir mal Folgendes als Basis schaffen:

- Ein Arbeitsnetz mit doppelter Auflösung. Also im konkreten Fall alle Quads geviertelt. Oder allgemein für beliebige Polymeshes: quadranguliert.
(Man braucht zwingend diese zusätzliche Auflösung, um korrekt zu interpolieren. Bei Catmull steckt das im Berechnen der Kanten- und Flächenmitten.)
- Für dieses Arbeitsnetz einmal alle gemittelten Smooth-Normalen berechnen. Das ist ja seit 3D-Anfängen gelöst, sollte also trivial sein. Man kann dafür auch einen Catmull-Schritt berechnen, und die Differenzen zu den Arbeitsnetz-Vertices verraten nicht nur eine sinnvolle Normalenrichtung, sondern auch einen Auslenkungsbetrag für diesen Vertex. Für die Flächenmitten gilt: Face-Normale vom Originalmesh, und Auslenkung 0.
- Anwendung: Ein beliebiges Oberflächen-Texel in seinem Arbeitsnetz-Quad interpolieren. Das Texel steckt immer in einem Quad aus 1 Original-Eckvertex, 2 Kantenmitten, 1 Flächenmitte. Jeder dieser Vertices bringt eindeutige Normale und Auslenkungsbetrag mit.

Das sollte an den Ecken und Kanten dann zumindest geschlossen sein, denke ich. Wie "rund" das überall wird, kann ich ungetestet nicht vorhersehen. Aber eigentlich sollte das ja ähnlich kontinuierlich aussehen wie ein Lowpoly-Mesh mit Smooth-Normalen gerendert aussieht.

Weitere Experimente würde ich dann mal machen mit gedritteltem Mesh. Und wie beschrieben, auch ungleichmäßig gedrittelt zu den Kanten hin. Nur um zu sehen was das ausmacht für Quali und Handling.
Antworten