Projekt: Blood of the Undead

Benutzeravatar
marcgfx
Establishment
Beiträge: 2197
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

Bild
Im Survival-Modus wird es zunehmend chaotischer.¨

Mit jeder Welle strömen mehr Gegner heran, und irgendwann hilft nur noch eins: Area-of-Effect-Schaden. Leider gibt es davon bisher nur sehr wenig. Das Katapult richtet immerhin etwas Flächenschaden an, aber das allein reicht nicht.

Also habe ich über ein Upgrade nachgedacht, bei dem alles im Umkreis in Flammen aufgeht. Daraus entstand die Idee eines explosiven Fasses – und das wiederum führte zur Trennung von Öl und Feuer als eigenständige Elemente.

Das Öl fließt grundsätzlich ins Tal und verteilt sich auf ebenem Gelände. Die Menge auf einem Feld beeinflusst, wie viel davon weiterfließt. Sobald Feuer auf ein ölgetränktes Feld trifft, breitet es sich rasch auf alle benachbarten Ölfelder aus.

Bäume, Gebäude und Einheiten brennen derzeit noch nicht – aber das könnte sich ändern. Vielleicht braucht es auch noch eine gewisse Intelligenz, damit die Einheiten nicht freiwillig ins Feuer rennen...
Benutzeravatar
Schrompf
Moderator
Beiträge: 5214
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Projekt: Blood of the Undead

Beitrag von Schrompf »

Ich liebe solche emergenten Simulations-Elemente. Kann auch der Hass werden, wenn man es nicht kontrollieren kann, aber hat auch Potential für große Momente. Wenn man Ölfässer selbst bauen könnte und dann im richtigen Moment auslösen, so dass das Öl eine geplante Kerbe hinunterläuft... das wär geil
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2197
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

Feuer & Öl – und jetzt auch Wasser?
Das Zusammenspiel von Feuer und Öl funktioniert inzwischen schon recht gut. Wie stark es sich auf das Gameplay auswirkt, ist allerdings noch offen – vor allem, weil auch die eigenen Einheiten Feuer fangen können. Vielleicht eignet sich das System eher für offensive Taktiken als zur Verteidigung… mal sehen.

Das Prinzip gefällt mir auf jeden Fall – so sehr, dass ich es nicht lassen konnte, auch Wasser zu testen.

Im ersten Versuch habe ich Wasser wie das Öl behandelt, also mit diskreten Werten. Das hatte allerdings einen Haken: Das Wasser stagnierte und konnte sich nicht richtig ausgleichen – keine Nivellierung, kein realistisches Verhalten. Beim Öl war mir das bislang egal.
Bild


Also folgte Versuch Nummer zwei – diesmal mit Fließkommazahlen (Floats). Ich habe ein kleines Becken geflutet, in dem ein einzelner Baum stand. Das Wasser hat sich über die Karte ausgebreitet, floss (und fließt) in die Täler – und es sieht irgendwie richtig cool aus. Meine Neugier ist damit erstmal gestillt.
Bild

Aber die nächste Frage stellt sich schon: Wie lässt sich das spielerisch nutzen?
Die Herausforderungen sind deutlich: Manche Einheiten stehen unter Wasser (siehe die Bäume im Bild), und mir fehlt noch eine passende Visualisierung dafür – genauso wie klare Ideen, welchen Einfluss Wasser im Spiel haben sollte.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2197
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

Bild
Hier rechne ich pro Zeitschritt das Wasser 12 Mal.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2197
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

Wasser macht ja nur Sinn, wenn das Terrain auch manipuliert werden kann. Ein Testloch wurde erstellt.
Bild
Benutzeravatar
woodsmoke
Establishment
Beiträge: 156
Registriert: 30.06.2023, 14:05
Wohnort: Ludwigshafen
Kontaktdaten:

Re: Projekt: Blood of the Undead

Beitrag von woodsmoke »

So langsam nimmt das Projekt Dwarf Fortress-ige Züge an ;)
Benutzeravatar
marcgfx
Establishment
Beiträge: 2197
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

Bild
Bild
Ein bisschen Shader-Gebastel, zwei magic numbers – und plötzlich versinken meine Einheiten im Wasser.
Es ist nicht perfekt, aber es ist auch nicht grottenschlecht. Gebäude sind über mehrere Grids, teilweise über mehrere Ebenen verteilt. Ich bin mir noch nicht sicher wie ich das lösen kann.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2730
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Projekt: Blood of the Undead

Beitrag von Jonathan »

marcgfx hat geschrieben: 02.08.2025, 20:13 Aber die nächste Frage stellt sich schon: Wie lässt sich das spielerisch nutzen?
Ja, das ist eine interessante Frage. Ich glaube, hier muss man tatsächlich auch ein wenig vorsichtig sein, nur weil 2 Features jeweils für sich cool sind, heißt das noch nicht, dass ein Spiel welches beide kombiniert auch automatisch cool ist.

Auf den ersten Blick scheint mir Wasser ein sehr mächtiges Element zu sein. Zumindest deuten deine Experimente ja stark auf Effekte hin, die einen großen Teil der Karte betreffen. Da kommen einen natürlich direkt interessante Missionen in den Kopf, etwa, dass man einen Damm angreifen muss um eine darunterliegende Basis zu zerstören. Wobei - sind überhaupt Missionen und eine Kampagne geplant? Oder eher nur ein Geplänkel-Modus gegen die KI?

Die Sache ist: Wenn eine Überflutung den Großteil einer Basis zerstören kann und vielleicht sogar Einheiten ersaufen, dann ist das schon richtig cool und imposant. Allerdings bedeutet es vielleicht auch, dass alles auf den Trigger dieser Flut hinausläuft. All das Taktieren wird sinnlos, wenn durch ein einziges Ereignis meine komplette Armee komplett zerstört wird.

Es ist auch die Frage, wie "dynamisch" das ganze am Ende ist. In einer typischen Runde, gibt es da einmal das Ereignis, dass die Karte halt überflutet wird und das war es dann? Sprich, die Karte hat quasi 2 Zustände (vor und nach der Flut) und eigentlich passiert die Flut in jeder Runde? Denn schließlich ist so ein Ereignis dann ja cool, sollte also auch halbwegs erwartbar zutreffen, aber es werden halt immer die tieferliegenden Gebiete überflutet und dann ist noch die Frage, ob das Wasser kurz daraufhin einfach von alleine verschwindet, damit es eine zweite Flut geben kann?

Vielleicht kann man sich ein wenig an Star-Craft orientieren: Da gab es ja auch Atombomben, allerdings waren die lange nicht so stark, wie man vielleicht denken würde. Sie haben nur ein paar Gebäude kaputt gemacht und man hatte eine ganze Weile Zeit das Zünden komplett zu verhindern. Letztendlich also ein sehr starker Angriff, aber eben keine epische Katastrophe. Und ich denke das hatte vor allen Dingen spielmechanische Gründe.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
marcgfx
Establishment
Beiträge: 2197
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

Bild

Es soll Missionen geben – irgendwann. Aktuell existiert nur der Survival-Modus und eine einzige, improvisierte Test-„Mission“.
Ich denke, Elemente wie dynamisches Wasser könnten gerade in Missionen für spannende Szenarien sorgen. Im Survival-Modus bleibt es wohl eher ein visuelles Gimmick – hübsch, aber spielerisch begrenzt.

Doch was macht das Wasser mit den Einheiten?
Pathfinding wird beeinflusst: Einheiten bewegen sich langsamer, wenn sie durch Wasser waten.
Wird das Wasser tiefer, verlieren Einheiten die Fähigkeit anzugreifen – sie sind schlicht zu stark eingeschränkt.
Und wenn es zu tief wird? Dann war’s das. Schwimmen wird wohl kein Feature – also bleibt nur Ertrinken.

Und was passiert mit Feuer und Öl?

Die einfachste Lösung wäre: Wasser löscht Öl und Feuer, sobald es eine gewisse Menge überschreitet.
Interessanter (aber komplizierter) wäre: Kleine Wassermengen verstärken die Ausbreitung von Öl, verstärken ein Öl-Feuer.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2197
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

Bild
Irgendwie sah das komisch aus und mir war nicht klar wieso.
Bild
Das Wasser wird von Gebäuden blockiert! Da ich "Unterwasser" hacke indem ich eine Einheit teilweise transparent rendere, wird das fehlende Wasser auf dem Grid unter der Einheit sichtbar. Wasser durchdringt jetzt alles.
Bild
Öl wird unter dem Wasser gerendert.
Bild
Jetzt ist es auf dem Wasser. Damit Öl sich auf dem Wasser ausbreiten kann musste der Code natürlich angepasst werden. Lustigerweise werden meine Debug-Zahlen (wie viel Öl auf einem Feld ist) wie die Einheiten gerendert und sind leicht under Wasser/Öl.
Bild
Wasser hat noch sichtbare Risse. Mit der LittleJS engine ist es richtig Mühsam zu flicken. Quads werden mit Zentrum/Grösse/Rotation gerendert und ich muss es mit einer Anpassung von Zentrum/Grösse flicken.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2197
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

Bild
Es gibt jetzt "Flüssigkeiten". Öl verdrängt das Wasser grössenteils. Wasser verdunstet leicht. Ich brauche jetzt Quellen, damit die Seen nicht austrocknen (noch nicht erstellt).
Benutzeravatar
marcgfx
Establishment
Beiträge: 2197
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

Bild
Da das Wasser jetzt nicht mehr überall auf der gleichen Höhe liegt, musste ich den Partikel-Code anpassen.
Tritt ein Partikel nun auf eine Wasserfläche, entsteht ein kleiner Effekt – anschließend taucht es ins Wasser ein und sinkt bis auf den Grund.

Im gleichen Zug habe ich noch einen nervigen Bug behoben, der bei Einheiten auf höherem Terrain auftrat. Der Grund war die Umrechnung vom 2D-Bild in eine Art 3D-Simulation innerhalb einer eigentlich 2D-Welt. Unterschiedliche Maßeinheiten machen das nicht gerade einfacher...
Zuletzt geändert von marcgfx am 06.08.2025, 16:48, insgesamt 1-mal geändert.
Benutzeravatar
marcgfx
Establishment
Beiträge: 2197
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

Bild
Auch das Feuer hat mich wieder einiges an Zeit gekostet. Ich wollte, dass es sich natürlich ausbreitet – also dynamisch, aber nachvollziehbar.

Feuer kann sich nun sowohl auf dem Boden-Grid als auch direkt auf Einheiten entzünden. Es überträgt sich allerdings nur über das Terrain – von Einheit zu Einheit springt es nicht direkt über.

Wenn genug Feuer auf einem Feld brennt, kann es zufällig auf benachbarte Felder überspringen – sofern dort kein Wasser liegt.

Ich habe lange mit den Parametern gespielt und bin momentan ganz zufrieden:

Sind sie zu aggressiv, steht sofort alles in Flammen.

Sind sie zu zahm, löscht sich das Feuer fast sofort wieder.
Der aktuelle Zustand erlaubt beides – was mir für den Moment ganz gut gefällt.
Benutzeravatar
Schrompf
Moderator
Beiträge: 5214
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas
Wohnort: Dresden
Kontaktdaten:

Re: Projekt: Blood of the Undead

Beitrag von Schrompf »

Dieser Retro-Pixel-Look hat echt eine Faszination, da bin ich neidisch!
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Jonathan
Establishment
Beiträge: 2730
Registriert: 04.08.2004, 20:06
Kontaktdaten:

Re: Projekt: Blood of the Undead

Beitrag von Jonathan »

Sieht sehr cool aus. Ich mag, wie sich das Öl so langsam fransig mit dem Wasser vermischt und die Explosionen der Brennenden Häuser sind auch recht wuchtig.

Das einzige, was mir dabei aber ein wenig Sorge macht, ist dass diese sich ausbreitenden Feuer jetzt schon das nächste große Feature sind, mit denen es zu globalen Katastrophen kommen kann. Das wird dadurch ja nicht unbedingt einfacher zu Balancen. Die Frage wäre natürlich auch, wie die KI damit umgehen soll. Für Strategiespiele brauchst du halt entweder Online-Multiplayer oder eine robuste KI. Es müsste dann ja sowas wie Feuer-Bogenschützen geben, die gezielt Gruppen von Häusern angreifen oder so, das könnte ggf. schwierig werden. Die Frage ist auch, ob wenn Feuer häufig vorkommen (ein Gegnertyp kommt einfach standardmäßig und macht immer Feuerschaden, such also gar nicht gezielt nach Dingen die er abfackeln könnte), die Antwort nicht einfach ist, dass der Spieler sehr schnell lernt Gebäude nicht direkt nebeneinander zu setzen, und so Feuer einfach nie auftreten.

Die letzte Version die ich damals getestet hatte, hatte schon einiges an Einheiten und so drin, aber an der Zugänglichkeit hat es noch etwas gehapert. Was ich damit zur sagen will: Es wäre ja schade, wenn du am Ende nur Features aber kein Spiel hast. Außer, du willst einfach eine coole Tech-Demo machen und kein Spiel.
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
Benutzeravatar
marcgfx
Establishment
Beiträge: 2197
Registriert: 18.10.2010, 23:26

Re: Projekt: Blood of the Undead

Beitrag von marcgfx »

@Schrompf: Pixel sind halt was urspielerisches. Es ist das erste Mal, dass ich selbst ein Spiel pixle. Schön ist auch wie sehr die Ansprüche sinken. Ich brauche keine Animation in 32 Richtungen zu machen, sondern bloss in eine und die zweite wird gespiegelt.

@Jonathan: Das Feuer breitet sich schon ziemlich langsam aus. Ich glaub das waren so 6 Spielrunden. Vermutlich werde ich göttliches Feuerlöschen einbauen, dann lässt sich der Schaden begrenzen. Was ich hier zeige sind oft Härtetests von meinen Systemen. Ich denke sowohl Wasser wie auch Öl und Feuer werden nie so gross in Erscheinung treten wie in meinen Tests und falls doch wird es vielleicht eher Storytechnisch relevant sein?

Die KI muss zum Glück gar nicht damit umgehen, ich lass sie brennen :) . Das einzige was doch relevant ist für die KI, ist das einige Einheiten nicht von selbst ins Feuer laufen. Die KI attackiert mit Masse, der Spieler braucht also Waffen um die Massen auszudünnen. Ein Katapult mit brennder Ölkugel kann da ganz schön helfen, nur blöd wenn ein eigenes Gebäude in der nähe steht. Gegner die mit Feuer angreifen gibt es noch keine, aber eigentlich wäre so ein feuriger Bogenschütze auch auf der untoten Seite interessant.

Gebäude nicht nebeneinander setzen hat Nachteile. Einige Gebäude haben einen Einflussradius, der andere Gebäude z.B. schneller produzieren lässt. Wenn man viel Abstand lässt, profitiert man weniger vom Bonus und endloss Platz hat man auch nicht.

Zugänglichkeit: Hast du die Version mit Tutorial mal gespielt, oder war es noch davor? Wenn es trotz Tutorial nicht spielbar war, dann ist es jetzt vermutlich auch nicht besser... aber es wäre mir schon wichtig, dass es spielbar ist!
Antworten