[Entwicklertagebuch] Cryptkeeper


  • Willkommen, finsterer Herrscher, in der düsteren Welt von Cryptceeper!


    Tief unter der Erde, in den verfallenen Katakomben des “Schlundes der Ewigkeit”, liegt dein Reich. Hier, wo die Dunkelheit regiert und die Labyrinthe von gefährlichen Monstern bevölkert sind, schlüpfst du in die Rolle eines machthungrigen Cryptkeepers.


    Deine Mission? Erschaffe ein Reich des Bösen, errichte finstere Kammern und locke verzweifelte Abenteurer an, die nach Ruhm und Reichtum suchen. Deine Kreaturen werden die Gänge bewachen, Fallen stellen und die Seelen der Eindringlinge verschlingen.


    Aber sei gewarnt! Die Helden werden nicht tatenlos zusehen. Sie werden ihre Schwerter ziehen, ihre Zauber wirken und alles daransetzen, deine finsteren Pläne zu durchkreuzen. Deine Entscheidungen werden über Leben und Tod entscheiden, während du tiefer in die Abgründe vordringst.


    Cryptceeper ist ein Spiel der Strategie, des Überlebens und der moralischen Ambivalenz. Wirst du ein gnadenloser Tyrann sein oder vielleicht doch einen Funken Menschlichkeit in dir entdecken? Die Wahl liegt bei dir, dunkler Herrscher.


    Hinweis: Dieses Spiel ist eine Hommage an die klassischen Dungeon-Keeper-Spiele, mit einer Prise Nostalgie, einer Prise Dunkelheit und vielen Neuerungen.



    Entwicklertagebuch


    Stand - 05.04.2024 - Eine Map erwacht zum leben

    Stand - 05.04.2024 - Die (derzeitigen) Pläne

    Stand - 14.04.2024 - Placement-System

    Stand - 20.04.2024 - Digging-System und erstes UI

    Stand - 21.04.2024 - Tooltip Anzeige

    Stand - 05.05.2024 - Mainmenü, Ladebildschirm, Optionen, Speichern und Namensgenerator



    Aktuelle Screenshots


    Derzeit im Entwicklertagebuch.

  • 05.04.2024 - Eine Map erwacht zum Leben


    Cryptceeper lehnt sich an 'Dungeon Keeper II' (DKII) an, wie jeder der DKII kennt, unschwer erkennen kann. Das Spiel spielte in meinem Leben eine größere Rolle, da es meiner Frau und mir viele schöne Stunden bereitete und eines der ersten Geschenke war, die ich von meiner besseren Hälfte bekommen habe. Leider hat das Spiel schon etliche Jahre auf dem Buckel und war es noch vor einigen Jahren zumindest etwas zu spielen, funktioniert es mittlerweile überhaupt nicht mehr.


    Sehr schade, wenn man eines seiner Lieblingsspiele nicht mehr spielen kann.


    Mit der Idee eines eigenen DKII spielte ich schon einige Jahre, jedoch traute ich mich bisher noch nicht an dieses Projekt heran. Grund ist, dass es schlicht und einfach sehr komplex für einen Programmierer allein ist. Der Zustand hat sich bisher nicht geändert, jedoch hat sich Unity weiter entwickelt und das neue 'DOTS'-System bietet viele neue Möglichkeiten, die es bisher nicht gab. Mit 'DOTS' kann ich nun tausende 'Objekte' bzw. in diesem Falle heißen sie 'Entities' auf der Map haben und trotzdem eine Top- Performance besitzen. Dies ermöglicht mir das neue 'Entitie-System', 'Burst', das 'Job-System' und einige andere Neuerungen mit denen ich nicht nur im Haupt-Thread, sondern auch in anderen Threads arbeiten kann. Das ganze ist zwar nun aufwendiger zu durchdenken und eine sehr genaue Planung ist bei jedem Stück Code von nöten, jedoch bringt es halt viele Vorteile und ich lerne gern etwas dazu.


    Der derzeitige Stand ist noch recht überschaubar, wenn man an den Screenshots sieht:



    Man möge es nicht glauben, aber an dem Projekt arbeite ich schon seit Januar diesen Jahr. Ziel war es zuerst eine Map generieren zu lassen. Jedes einzlne Feld was ihr auf dem Screenshot seht, egal ob Bodenplatte, Wand oder Decke ist eine 1x1 Plane (eine einfache Fläche) die nach Informationen, die ich einspeise, generiert wird.


    Gespeichert werden die Grunddaten einer Map in einer simplen Grafik:



    Jedes Pixel repräsentiert dabei ein Feld auf der Map. Beim Start des Spiels wird jedes Pixel ausgelesen und nach einem Farbcode die Map generiert. Dieses vollautomatische System sorgt dafür, dass Maps sehr einfach erzeugt werden können, sich also Zeit beim Levelbau spart und man später auch als Spieler so eigene Karten sehr einfach ins Spiel einpflegen kann.


    Da ich noch am Anfang bin, sind bisher nur folgende Tile-Types vorhanden:

    • Wasser
    • Erde
    • Stein (undurchdringlich)
    • Gold
    • Diamanten
    • Mauer

    Später kommen noch weitere Tile-Types hinzugefügt werden, aber dazu gleich mehr.


    Nach dem der grafische Aspekt abgeschlossen war, folgte das Problem der Collider. Collider sind dafür da, dass kein Charakter durch den Boden fallen oder durch die Wand laufen kann.


    Etwas tricky aber nach mehreren Tagen konnte auch das Problem gelöst werden. Fehler oder Problem war, dass DOTS ein komplett neues Physik-System nutzt und hier alles anders funktioniert als mit der normalen Physik die in Unity normal genutzt wird.


    Der Debug zeigt nun das grüne Collidernetz. Wird eine Wand abgebaut, wird sofort das Collidernetz angepasst:



    Ich muss hier im Debug mal den Alpha-Wert etwas reduzieren.^^"

  • 05.04.2024 - Die (derzeitigen) Pläne


    Langfristige gesehen:

    • zwei Spielbare Fraktionen, Böse und Gut
    • komplettes Wirtschaftssystem
    • komplettes Technologiesystem für Böse und Gut
    • Möglichkeit großer Maps
    • mehr taktische Möglichkeiten als bei DKII
    • langfristige Kampage (*sehr freundlich zu Bax schiel der mir sicher bei der Story hilft*)
    • Skillsystem für Einheiten (hier muss ich mir jedoch noch einiges an Gedanken machen)

    Kurzfristig gesehen:

    • Beendigung des 'Placement-System' mit dem Bauwerke auf der Map platziert werden können
    • Pre-Imps erschaffen die Gestein abbauen können, dazu eine "Arbeitslisten-System" erstellen
    • ...


    Derzeit noch kurz und knapp gehalten. Jedoch hat es auch den einfachen Grund, dass erst einmal alles im Grundaufbau funktionieren muss. Anschließend werden ausgehend vom Stand weitere Teile des Projektes in Angriff genommen.

  • Zunächst einmal:

    Der Text über deine bessere Hälfte war echt Zucker :grinsenderork:

    Dann:

    Wird das auch ein Kojote Bax Projekt oder ist das komplett ein eigenes Projekt für dich und als Ausgleich für RL und alle anderen Projekte?


    Mein Vater war ziemlich großer Dungeon Keeper I Fan, ich kenne die Reihe aber mehr so vom Hören, Sagen, war damals noch relativ klein. Ich finds richtig bewunderswert, dass du eine Homage an eines deiner Lieblingsspiele kreierst und auch ein wenig neidisch, dass du dafür die Skills hast. Muss ein richtig tolles Gefühl sein!


    Viel Erfolg dafür und halt uns hier auf dem Laufenden!

  • Wird das auch ein Kojote Bax Projekt oder ist das komplett ein eigenes Projekt für dich und als Ausgleich für RL und alle anderen Projekte?

    Das Projekt ist mein eigenes für mich als Ausgleich zu den anderen Projekten und RL. :grinsenderork: Mit Bax bespreche ich nur Gedanken und Ideen. Bax wird hauptsächlich so hoffe ich mir bei Story und Grafikfragen etwas helfen. :laechelderork:


    Mein Vater war ziemlich großer Dungeon Keeper I Fan, ich kenne die Reihe aber mehr so vom Hören, Sagen, war damals noch relativ klein. Ich finds richtig bewunderswert, dass du eine Homage an eines deiner Lieblingsspiele kreierst und auch ein wenig neidisch, dass du dafür die Skills hast. Muss ein richtig tolles Gefühl sein!

    Viel Erfolg dafür und halt uns hier auf dem Laufenden!

    Ja, dass macht unglaublich Spaß gerade! :grinsenderork: Vielen Dank!

  • 14.04.2024 - Placement-System


    Bauwerke und Gegenstände werden über das Spiel mit dem neuen Placement-System auf dem Grid platziert. Jede Fläche ist dabei 1x1x1 Feld groß. Die Bauwerke sind dabei passend an das Grid ausgerichtet.


    Bauwerke können zum jetzigen Zeitpunkt folgende Größen haben:

    • 1x1 Felder
    • 2x1 Felder
    • 3x1 Felder
    • 2x2 Felder
    • 3x2 Felder
    • 3x3 Felder
    • 5x5 Felder

    Das Placement-System überprüft dabei dauerhaft, ob das Bauwerk oder der Gegenstand in einer Wand hängt oder auf einer Stelle ist, auf der schon ein anderes Bauwerk ist. Blau bedeutet dabei, dass eine Platzierung möglich ist, rot das ein Hindernis im Weg ist.



    Das 2x1 Bauwerk kann nicht platziert werden, da das linke Feld in einer Mauer hängt:



    Platzierung des 3x3 Bauwerks möglich:



    Sieht weder schön noch beeindruckend aus, aber es sind Platzhalter. :lachenderork:

  • Also wenn man weiss wie wichtig diese technischen Grundlagen sind, dann finde ich das durchaus beeindruckend! :D


    Wie wirst Du es denn mit den Räumen im Bezug auf die Mindestgröße für ihre Funktion handhaben? Wenn ich mich noch richtig erinnere, dann müssten Räume damals immer mindestens 3x3 Kacheln abdecken (außer Schatzkammer), damit auch entsprechende Objekte dort spawnten.

    Planst Du da zufällig ein flexibleres System, welches beispielsweise auch 2xX für schmalere Räume nutzbar machen würde?


    Ich bin auch schon super gespannt, was Du Dir überlegt hast bzgl. der erweiterten taktischen Möglichkeiten.

    Gerade bei Kämpfen könnte ich mir beispielsweise gut vorstellen, dass man anstelle "alle auf einen Haufen werfen" vllt ein Schere-Stein-Papier-System etablieren kann und somit stärker auf Schwächen und Stärken aufbaut.


    Auch wenn man das Spiel stellenweise als eine Art "Tamagotchi-Simulation-des-Bösen" betrachtet, wäre es gegenüber DK (habe damals überwiegend den ersten Teil gespielt) sicherlich cool, wenn man etwas RPG-typisch Einfluss auf die Level ups der Untergebenen nehmen kann, was Attribute oder vllt auch Spezialisierungen betrifft.


    Aber das ist alles Zukunftsmusik und ich freue mich erst Mal, wenn Du die Grundlagen abschließen kannst. :)

    Bin schon auf den nächsten Stand gespannt!

    Meine Projekte:

    Hauptprojekt:Village Siege (Arbeitstitel)Tower-Defense Spiel mit kleinem TwistPrototyp: ~ 30%GDevelop
    Nebenprojekt:Misty Hollow: Makabere Abenteuer (Arbeitstitel)klassisches RPG mit einer Mischung aus Witz und GruselDemo: ~ 5%RPG Maker MZ
  • Wie wirst Du es denn mit den Räumen im Bezug auf die Mindestgröße für ihre Funktion handhaben? Wenn ich mich noch richtig erinnere, dann müssten Räume damals immer mindestens 3x3 Kacheln abdecken (außer Schatzkammer), damit auch entsprechende Objekte dort spawnten.

    Planst Du da zufällig ein flexibleres System, welches beispielsweise auch 2xX für schmalere Räume nutzbar machen würde?

    Mein System funktioniert etwas anderes als das von DKII. Bei DKII hast du Bereiche ausgegraben, markiert und dann hast du zum Beispiel in dem 3x3 Bereich eine Hühnerfarm gehabt. Es wurde alles automatisch platziert, deswegen mussten die Räume eine Mindestgröße haben.


    Ich überlasse es dem Spieler wie groß der Raum wird und welche Gebäude, Einzelteile und Dekogegenstände er platziert. Das bingt dann so ne Art Häuselbauerfeeling in das Spiel rein, wenn du dann halt wirklich selbst alles so designen kannst, wie du es dir vorstellst. :grinsenderork:


    Ich bin auch schon super gespannt, was Du Dir überlegt hast bzgl. der erweiterten taktischen Möglichkeiten. Gerade bei Kämpfen könnte ich mir beispielsweise gut vorstellen, dass man anstelle "alle auf einen Haufen werfen" vllt ein Schere-Stein-Papier-System etablieren kann und somit stärker auf Schwächen und Stärken aufbaut.

    Dort bin ich mit meinen Ideen noch nicht ganz so fortgeschritten und suche auch noch Ideen. Also wer Ideen noch beitragen will, ist sehr willkommen. :grinsenderork: Erst einmal muss das Grundgerüst entstehen, die Imps müssen arbeiten, ect.. :lachenderork:


    Auch wenn man das Spiel stellenweise als eine Art "Tamagotchi-Simulation-des-Bösen" betrachtet, wäre es gegenüber DK (habe damals überwiegend den ersten Teil gespielt) sicherlich cool, wenn man etwas RPG-typisch Einfluss auf die Level ups der Untergebenen nehmen kann, was Attribute oder vllt auch Spezialisierungen betrifft.

    Das ist tatsächlich schon geplant! Level-Up wird es geben und noch ein paar Schicke andere Dinge die ich noch nicht verrate! :zungenork: :lachenderork:

  • 20.04.2024 - Digging-System und erstes UI


    Die letzten Tage sind für das Digging-System drauf gegangen. Das Digging-System ist dafür zuständig, dass der Spieler markieren und demarkieren kann, welche Bereiche des Dungeons abgerissen werden sollen. Die Markierten Tiles wird dann in eine Liste eingepflegt. Diese Liste wird dann je nach Prio später von den Bauarbeiten abgearbeitet und das Loot wird gedroppt.


    Gleichzeitig wurde jetzt das Digging-System und das Placement-System, was in Build-System umbenannt wurde mit dem UI verbunden.


    Hier mal ein kleines Video dazu:


    Externer Inhalt streamable.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Mein System funktioniert etwas anderes als das von DKII. Bei DKII hast du Bereiche ausgegraben, markiert und dann hast du zum Beispiel in dem 3x3 Bereich eine Hühnerfarm gehabt. Es wurde alles automatisch platziert, deswegen mussten die Räume eine Mindestgröße haben.


    Ich überlasse es dem Spieler wie groß der Raum wird und welche Gebäude, Einzelteile und Dekogegenstände er platziert. Das bingt dann so ne Art Häuselbauerfeeling in das Spiel rein, wenn du dann halt wirklich selbst alles so designen kannst, wie du es dir vorstellst. :grinsenderork:

    Dasselbe System nutzte auch noch "War for the Overworld", welches von ehemaligen Moddern und Fans der Dk-Reihe erstellt wurde. Ich finde es super, dass Du da nochmal einen anderen Ansatz wählst, ohne dass dadurch jetzt die grundlegende Funktionsweise der Räume verändert werden würde.
    Ich weiss nicht, ob es nur mir so ergeht, aber meist wünsche ich mir nur kleine Evolutionen anstelle komplett andersartiger Systeme bei solchen Spielen mit starken Anlehnungen an Klassikern. :D


    Dort bin ich mit meinen Ideen noch nicht ganz so fortgeschritten und suche auch noch Ideen. Also wer Ideen noch beitragen will, ist sehr willkommen. :grinsenderork: Erst einmal muss das Grundgerüst entstehen, die Imps müssen arbeiten, ect.. :lachenderork:

    Hm... Bei Spielen wie "Age of Empires" haben wir ja versimpelt die Aufteilung:
    Infanterie -> Kavallerie -> Fernkämpfer
    (optional noch Mischvarianten oder beispielsweise Belagerungsgeräte mit unterschiedlicher Zielsetzung)

    Man könnte ja beispielsweise Familiengruppen für die künftigen Einwohner des Dungeons definieren, von welchen sich dann die verschiedenen Kreaturen ableiten lassen. Ein plumpes Beispiel:
    Bestien (animalisch, geringe Intelligenz, besonders verheerend im Nahkampf) -> beispielsweise (klassisch) Riesenspinnen oder Wölfe
    Dämonen (sehr intelligent, Fokus auf Magie und Manipulation) -> beispielsweise eine Art Magier oder Beschwörer
    Elemente (Verkörperungen von Aspekten des Welt selbst, teilweise astrale/körperlose Eigenschaften (Resistenz gegenüber körperlichen Angriffen) -> beispielsweise simple Elementargestalten aus der Fantasy oder entfernter sehr element-affine Wesen, wie beispielsweise Drachen, Seeschlangen, etc

    Jetzt schaut man grob, wo die Positionierungen in einem Beziehungsdreieck am ehesten Sinn ergeben könnte. Für das Gameplay wird dies natürlich stets einer gewissen Abwandlung unterliegen müssen.

    Elemente: Stark gegen Bestien, schwach gegen Dämonen
    Dämonen: Stark gegen Elemente, schwach gegen Bestien
    Bestien: Stark gegen Dämonen, schwach gegen Elemente

    Sowas in der Art könnte man vielleicht als Ausgangsbasis nehmen und dann schauen, wie es zu einer Lore passt und pro Familiengruppe vielleicht mal so die ersten 2-3 Wesen kreieren - im Idealfall auch mit Bezugnahme auf die unterschiedlichsten Mythologien unserer Welt, um eine schöne Mischung und Ergänzung zu inzwischen "generisch" anmutenden Wesen zu haben.
    Auch könnte man durchaus (vereinzelt) Hybride verwenden (beispielsweise Mischung aus Bestie und Dämon), welche dann die Stärken und die Schwächen "erben", aber beim Balancing erheblich mehr Aufmerksamkeit benötigen.
    Am Ende können dann gerade spezifische Eigenschaften/Attacken der Wesen die Spielerpräferenz ausmachen und man muss die Auswirkungen dieses "Beziehungsdreiecks" auch nicht zu stark werden lassen. 10%-20% Auswirkung können ja schon vollkommen ausreichen. Es gibt dem Ganzen dann einfach eine kleine Note und bei sehr konzentrierten Konstellationen (Mono-Armeen) bemerkt man es dann erst stärker.


    Das ist tatsächlich schon geplant! Level-Up wird es geben und noch ein paar Schicke andere Dinge die ich noch nicht verrate! :zungenork: :lachenderork:

    Klingt spannend! Ich mochte im ersten Teil auch so "überflüssige" Details, wie die Blutgruppe. Aber es kann auch sein, dass diese für Vampire tatsächlich wichtig waren. Ich habe sie meist eher "ausgeschlossen", da sie mir zu sehr einen auf Diva machten. :D

    Meine Projekte:

    Hauptprojekt:Village Siege (Arbeitstitel)Tower-Defense Spiel mit kleinem TwistPrototyp: ~ 30%GDevelop
    Nebenprojekt:Misty Hollow: Makabere Abenteuer (Arbeitstitel)klassisches RPG mit einer Mischung aus Witz und GruselDemo: ~ 5%RPG Maker MZ
  • 21.04.2024 - Tooltip Anzeige


    Eine kleine Spielerei für die bessere Nutzung wurde implementiert. Auf UI-Feldern kann ich jetzt ein kleines Zusatzscript einbinden, der ein Tooltip-Fenster im Bereich der Maus aufruft und somit den Namen des Buttons oder eine nähere Erläuterung anzeigt. Zum Test sind weiße Grafiken eingefügt, sie sollen mögliche UI-Elemente repräsentieren.



    Hier mal ein kleines Video dazu:


    Externer Inhalt streamable.com
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Bevor es mit den schönen Sachen weiter geht, ist erst mal Technikquälerei angesagt. Bedeutet, Optionen, Laden, Speichern und so weiter. Gerade auf Laden und Speichern freue ich mich jetzt schon. :neutralerork:


    Aber mal ne andere Frage, ich will auch eine Minimap haben. Problem ist nun, an was binde ich die Minimap an? Sie muss ja ein Zentrum haben. In einem First-Person-Spiel würde das Zentrum der Minimap ja der Spieler sein. Aber wie mache ich das bei Cryptkeeper? Würdest ihr sagen der Ursprungspunkt der Camera oder das Zentrum der Map mit der Option rein und raus zoomen? Oder habt ihr noch eine andere Idee?

  • Ich kenne Minimaps bei Nicht-First-Person-Spielen eigentlich so, dass sie das Zentrum der Kamera als Zentrum haben und sich dementsprechend mitbewegen, falls die Map zu groß ist, um komplett auf die Minimap zu passen. Rein bzw. rausgezoomt wird auf der Minimap entweder manuell automatisch immer dann, falls auch auf der richtigen Map gezoomt wird.

  • 05.05.2024 - Mainmenü, Ladebildschirm, Optionen, Speichern und Namensgenerator


    Die letzten Tage ist leider nicht viel geworden, aber vorletzte Woche ist relativ viel passiert. Hier nun die Zusammenfassung der letzten zwei Wochen. :grinsenderork:



    Mainmenü


    Bisher funktioniert nur der 'Neue Kampage'-Button und der 'Beenden'-Button aber langsam braucht das Spiel ein Main-Menü:


    Ungefähr so soll es mal aussehen, nur in 3D. Ich will durch die Gänge dann hier und da die Einheiten laufen lassen oder mal in den Bildschirm blicken lassen. Fackeln und Lichtschein zur Stimmungsverbesserung, wird sicher schick wenns mal 3D ist! :laechelderork:




    Ladebildschirm


    Ladebildschirm mit Tipps, Scenennamen und Erklärung ist auch fertig. Per Zufall werden hier unterschiedliche Hintergrundbilder angezeigt.




    Optionen


    Hauptaugenmerk waren die letzte Zeit unter anderem die Optionen. Lautstärkeneinstellung, Grafikeinstellung, Tastaturbelegung und noch einiges mehr. Das UI ist nicht das endgültige, dient nur als Platzhalter. Das wichtigste ist erst einmal, dass alles in der Software funktioniert. Nebenbei hab ich noch den Translator eingebaut. Somit kann man dann im Spiel die Sprache umstellen.









    Speichern


    Größtes Unterfangen der letzten Zeit war der Speichermechanismus. Alle Mapdaten, Bauwerke, Einheiten und so weiter muss ja gespeichert werden und funktioniert jetzt auch wunderbar. Alle Daten werden beim speichern zusammengesucht, in extra Variablen gespeichert und dann in einer XML-Datei gespeichert.



    Als kleine Spielerei wird bei jedem Speichern der aktuelle Bildschirmscreenshot mit gespeichert und dient als Hilfe zur Orientierung im Speicher- und Ladefenster.



    So würde teilweise die XML-Datei aussehen:




    Namensgenerator


    Einheiten werden in Cryptkeeper Namen tragen. Ein kleiner noch nicht zu voller Namensgenerator wurde implementiert und wird nach und nach erweitert. Da ich noch nicht 100 pro weis welche Völker vorkommen, gibt es erst einmal nur einen Namensgenerator je Fraktion.



Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!