<?xml version="1.0" encoding="utf-8"?>







<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
  <title>Vitalij Mik: gamedev</title>
  <subtitle>Persönliche Webseite und Blog</subtitle>
  <id>https://blackscorp.github.io/feed/by_tag/gamedev.xml</id>
  <link href="https://blackscorp.github.io/feed/by_tag/gamedev.xml" rel="self" type="application/atom+xml"/>
  <link href="https://blackscorp.github.io/blog/" rel="alternate"/>
  <updated>2026-11-08T10:21:35+00:00</updated>
  <author><name>Vitalij Mik</name></author>
  
  <entry>
    <title>Das Problem mit den Händen</title>
    <id>https://blackscorp.github.io/blog/das-problem-mit-den-haenden/</id>
    <link href="https://blackscorp.github.io/blog/das-problem-mit-den-haenden/" rel="alternate"/>
    <published>2026-11-02T00:00:00+00:00</published>
    <updated>2026-11-02T00:00:00+00:00</updated>
    <summary>Aus einem 2D-Konzept soll eine 3D-Figur in Blender entstehen. Die KI schafft es bei sechs Versuchen nicht, die Arme korrekt in eine T-Pose zu bringen. Ein Erfahrungsbericht über verdrehte Hände, kopierte Rückansichten und die Grenzen von Bild-KI.</summary>
    <content type="html" xml:base="https://blackscorp.github.io/blog/das-problem-mit-den-haenden/">&lt;p&gt;In meinem &lt;a href=&quot;/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/&quot;&gt;letzten Beitrag&lt;/a&gt; habe ich versucht, aus einem 2D-Bild eine 3D-Figur zu erstellen. Das hat nicht sonderlich gut funktioniert, also habe ich mir gedacht, ich erstelle die 3D-Figur selbst in Blender. Schließlich habe ich ja ein 2D-Bild, das ich als Referenz benutzen kann.&lt;/p&gt;

&lt;p&gt;Damals habe ich mir das Bild nur grob angeschaut. Bei der Vorbereitung der Bilder für Blender sind mir dann die ersten Fehler aufgefallen, also wollte ich die erstmal verbessern. Der erste Fehler war die Ansicht von hinten: Die KI hat einfach den vorderen Teil kopiert und das wars. Also musste ich das erstmal nachbessern.&lt;/p&gt;

&lt;figure class=&quot;article-image-figure&quot;&gt;
  &lt;img class=&quot;article-image&quot; src=&quot;/blog/das-problem-mit-den-haenden/concept.webp&quot; alt=&quot;Konzeptzeichnung der Roboterfigur in fünf Ansichten: vorne, Seite, hinten, von oben und von unten, mit korrigierter Rückansicht&quot; width=&quot;1264&quot; height=&quot;843&quot; loading=&quot;lazy&quot; /&gt;
  
&lt;/figure&gt;

&lt;p&gt;Das Bild habe ich dann in Einzelbilder aufgeteilt und in Blender als Referenz hinterlegt. Als ich dann seitlich draufgeschaut habe, ist mir aufgefallen, dass ich die Breite der Brust und der Hüfte nicht bestimmen kann. Der Arm ist seitlich drüber. Ich benötige also eine T-Pose, und ab hier ging es los mit den Problemen.&lt;/p&gt;

&lt;p&gt;Eigentlich dachte ich mir, wie schwer kann es denn sein, die Arme einfach auf Schulterhöhe zu bringen.&lt;/p&gt;

&lt;p&gt;So sah das erste Ergebnis aus:&lt;/p&gt;

&lt;figure class=&quot;article-image-figure&quot;&gt;
  &lt;img class=&quot;article-image&quot; src=&quot;/blog/das-problem-mit-den-haenden/versuch1.webp&quot; alt=&quot;Versuch 1: Die Figur steht von hinten in T-Pose, die offenen Hände zeigen mit dem Handrücken nach vorne&quot; width=&quot;541&quot; height=&quot;564&quot; loading=&quot;lazy&quot; /&gt;
  
&lt;/figure&gt;

&lt;p&gt;Dann sagte ich der KI, dass die Hände so nicht aussehen, bitte korrekt umdrehen.&lt;/p&gt;

&lt;figure class=&quot;article-image-figure&quot;&gt;
  &lt;img class=&quot;article-image&quot; src=&quot;/blog/das-problem-mit-den-haenden/versuch2.webp&quot; alt=&quot;Versuch 2: Fast unverändert, an den Fingerspitzen hängen einzelne verdrehte Finger&quot; width=&quot;539&quot; height=&quot;564&quot; loading=&quot;lazy&quot; /&gt;
  
&lt;/figure&gt;

&lt;p&gt;Hat wohl auch nicht funktioniert. Das wurde in Codex generiert. Ich dachte mir, ich probiere mal Google Gemini aus. Habe ihm das originale Konzept hochgeladen und dachte, dass Gemini es eventuell besser hinkriegt.&lt;/p&gt;

&lt;figure class=&quot;article-image-figure&quot;&gt;
  &lt;img class=&quot;article-image&quot; src=&quot;/blog/das-problem-mit-den-haenden/versuch3.webp&quot; alt=&quot;Versuch 3 mit Gemini: Die Arme knicken im Ellbogen nach unten ab, am Rücken ist noch ein alter Arm sichtbar&quot; width=&quot;468&quot; height=&quot;564&quot; loading=&quot;lazy&quot; /&gt;
  
&lt;/figure&gt;

&lt;p&gt;Die alten Arme waren noch drin. Nächster Versuch.&lt;/p&gt;

&lt;figure class=&quot;article-image-figure&quot;&gt;
  &lt;img class=&quot;article-image&quot; src=&quot;/blog/das-problem-mit-den-haenden/versuch4.webp&quot; alt=&quot;Versuch 4: Die Arme sind gestreckt, aber beide Hände sind zu Fäusten mit abgespreizten Daumen nach oben verdreht&quot; width=&quot;473&quot; height=&quot;564&quot; loading=&quot;lazy&quot; /&gt;
  
&lt;/figure&gt;

&lt;p&gt;Keine Ahnung, wieso die Daumen da jetzt oben sind. Dann dachte ich mir, vielleicht hilft ein neuer Chat mit frischem Kontext.&lt;/p&gt;

&lt;figure class=&quot;article-image-figure&quot;&gt;
  &lt;img class=&quot;article-image&quot; src=&quot;/blog/das-problem-mit-den-haenden/versuch5.webp&quot; alt=&quot;Versuch 5: Neue Sitzung, T-Pose sitzt, die Hände sind aber nur zu Klauen zusammengefaltete Finger&quot; width=&quot;436&quot; height=&quot;564&quot; loading=&quot;lazy&quot; /&gt;
  
&lt;/figure&gt;

&lt;p&gt;Ab diesem Zeitpunkt gebe ich erstmal auf. Ich habe ja die Hand von oben, unten und von der Seite. Das, was hinten wird, wird sich dann vermutlich von alleine ergeben.&lt;/p&gt;

&lt;p&gt;Vielleicht sollte man das Thema nicht zu perfektionistisch angehen. Ich fand es aber interessant, wie oft ich versucht habe, die Hand zu verbessern, und am Ende bin ich nicht zu einem guten Ergebnis gekommen. Bei den Bildern habe ich ja nur die Hände gezeigt. Dazwischen sind noch mehr Fehler immer wieder aufgetreten.&lt;/p&gt;

&lt;p&gt;Es gab falsche Proportionen, falsche Farben, Hände in anderen Darstellungen waren verdreht.&lt;/p&gt;

&lt;p&gt;Ich glaube, wenn man da nicht genauer auf die Details schaut und offensichtliche Dinge falsch dargestellt werden, kann das Spiel sehr schnell als “KI-Slop” angesehen werden.&lt;/p&gt;
</content>
    <category term="ki"/><category term="3d"/><category term="blender"/><category term="gamedev"/>
  </entry>
  
  <entry>
    <title>2D zu 3D ist schwieriger, als man denkt</title>
    <id>https://blackscorp.github.io/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/</id>
    <link href="https://blackscorp.github.io/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/" rel="alternate"/>
    <published>2026-10-29T00:00:00+00:00</published>
    <updated>2026-10-29T00:00:00+00:00</updated>
    <summary>Heute habe ich ein Mecha-Konzept entwickelt und versucht, daraus mit Visual Hull ein 3D-Modell zu erstellen. Das Ergebnis hat mir gezeigt, dass der Schritt von 2D zu 3D schwieriger ist als gedacht.</summary>
    <content type="html" xml:base="https://blackscorp.github.io/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/">&lt;p&gt;Heute wollte ich mal zur Abwechlung etwas visuelles gestalten. Ich dachte ich beginne mit der Hauptfigur, schließlich werde ich die in der nächsten Entwicklung immer wieder sehen.&lt;/p&gt;

&lt;p&gt;Wie fängt man da überhaupt an? Ich habe in dem Bereich keine Erfahrung. Auf jeden Fall wollte ich Mechas haben. Ich habe immer Mechas geliebt. Die Animes wie “Vision of Escaflown” oder “Gundam Brotherhood of Steel” sehen extrem gut aus. Früher habe ich auch viele Stunden in das MMORPG RF Online invistiert und das nur wegen der Rasse “Accretia”. Also habe ich die Beispiele als Vorlage benutzt. Ich lies Codex erstmal ein paar Referenzbilder downloaden und anschließend mir ein Concept Art daraus generieren als Basis.&lt;/p&gt;

&lt;figure class=&quot;article-image-figure&quot;&gt;
  &lt;img class=&quot;article-image&quot; src=&quot;/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/first_concept.webp&quot; srcset=&quot;/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/first_concept-mobile.webp 640w, /blog/2d-zu-3d-ist-schwieriger-als-man-denkt/first_concept-tablet.webp 1024w, /blog/2d-zu-3d-ist-schwieriger-als-man-denkt/first_concept.webp 1606w&quot; sizes=&quot;(max-width: 680px) calc(100vw - 74px), (max-width: 900px) calc(100vw - 124px), 900px&quot; alt=&quot;KI-generierte Konzeptzeichnung mit drei Ansichten eines dunklen Mechas mit hellen Panzerplatten und rotem Stoff&quot; width=&quot;1606&quot; height=&quot;979&quot; loading=&quot;lazy&quot; /&gt;
  &lt;figcaption&gt;KI-generiertes Bild&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Das Ergebnis sieht echt super aus. Im Spiel wäre das für mich eher die Endgame Ausrüstung also wollte ich das als Basis nehmen und vereinfachen. Man muss ja irgendwo unten Anfangen und sich dann hoch hinaus arbeiten. Also gab es einige Iterationen. Und für den Anfang sah das für mich am besten aus.&lt;/p&gt;

&lt;figure class=&quot;article-image-figure&quot;&gt;
  &lt;img class=&quot;article-image&quot; src=&quot;/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/level-0-final.webp&quot; srcset=&quot;/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/level-0-final-mobile.webp 640w, /blog/2d-zu-3d-ist-schwieriger-als-man-denkt/level-0-final-tablet.webp 1024w, /blog/2d-zu-3d-ist-schwieriger-als-man-denkt/level-0-final.webp 1312w&quot; sizes=&quot;(max-width: 680px) calc(100vw - 74px), (max-width: 900px) calc(100vw - 124px), 900px&quot; alt=&quot;KI-generiertes Ganzkörperkonzept eines Mechas mit dunklem Gelenkrahmen, hellen Panzerplatten, blau leuchtendem Visier und rotem Schal&quot; width=&quot;1312&quot; height=&quot;1199&quot; loading=&quot;lazy&quot; /&gt;
  &lt;figcaption&gt;KI-generiertes Bild&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Es hat weniger details als das Original aber mir fehlten einfach die Fähigkeit es besser zu beschreiben und ich dachte mir, ich mache es wie bei Software. Es wird nach und nach einfach verbessert und fertig. Es ist also v0.1-alpha&lt;/p&gt;

&lt;p&gt;Jetzt kam das nächste Problem. Das Bild steht, aber ich brauche es als 3D Objekt damit ich es eben Animieren kann. Es gibt viele Anbieter bei denen man mittels KI ein Bild hochladen kann und daraus entsteht dann ein 3D Model. Ich will diese aktuell nicht verwenden weil ich einfach nicht extra Geld ausgeben will. Ich zahle ja jetzt schon für Codex.&lt;/p&gt;

&lt;p&gt;Eine andere Methode wäre “Visual Hull”. Dabei wird ein 2D Bild in unterschiedlichen Perspektiven. Also Link, Vorne, Hinten, Oben und Unten abgebildet. Es wird daraus eine Silouette ermittelt und dann kann man die einzelnen Punkte zusammen verbinden.&lt;/p&gt;

&lt;p&gt;Der nächste Schritt wäre also mein Konzept Orthogonal zu generieren mit den einzelnen Seiten. Das Ergebnis sieht so aus.&lt;/p&gt;

&lt;figure class=&quot;article-image-figure&quot;&gt;
  &lt;img class=&quot;article-image&quot; src=&quot;/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/turnaround.webp&quot; srcset=&quot;/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/turnaround-mobile.webp 640w, /blog/2d-zu-3d-ist-schwieriger-als-man-denkt/turnaround-tablet.webp 1024w, /blog/2d-zu-3d-ist-schwieriger-als-man-denkt/turnaround.webp 1536w&quot; sizes=&quot;(max-width: 680px) calc(100vw - 74px), (max-width: 900px) calc(100vw - 124px), 900px&quot; alt=&quot;KI-generiertes Turnaround-Sheet des Mechas mit Vorder-, Seiten- und Rückansicht sowie Ansichten von oben und unten&quot; width=&quot;1536&quot; height=&quot;1024&quot; loading=&quot;lazy&quot; /&gt;
  &lt;figcaption&gt;KI-generiertes Bild&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Mit GTP-6 Luna und Medium können da echt gute Bilder entstehen. Ich dachte mir das Ergebnis wäre schon fast fertig. Nur noch ein bisschen.&lt;/p&gt;

&lt;p&gt;Codex hat anschließend die Bilder einzeln ausgeschnitten, den Hintergrund Transparent gemacht und ein Python Script geschrieben was de Visual Hull nachbilden soll.&lt;/p&gt;

&lt;p&gt;Das Ergebnis sah dann überhaupt nicht gut aus&lt;/p&gt;

&lt;model-viewer src=&quot;/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/visual-hull.glb&quot; alt=&quot;Grobes, graues 3D-Blockout des Mechas mit kantigem Körper und einfachen Gliedmaßen&quot; camera-controls=&quot;&quot; camera-orbit=&quot;0deg 75deg 3m&quot; min-camera-orbit=&quot;auto 0deg auto&quot; max-camera-orbit=&quot;auto 180deg auto&quot; shadow-intensity=&quot;1&quot; exposure=&quot;1&quot;&gt;&lt;/model-viewer&gt;

&lt;p&gt;Es gibt also schon ein Grund wieso die Anbieter für 3D Modelle, Geld verlangen. Das Thema habe ich mir einfacher vorgestellt.&lt;/p&gt;

&lt;p&gt;Blender hat ja auch einen MCP-Server. Damit kann eine KI ebenfalls Modelle erstellen. Das habe ich natürlich ausprobiert, und dabei ist Folgendes herausgekommen:&lt;/p&gt;

&lt;model-viewer src=&quot;/blog/2d-zu-3d-ist-schwieriger-als-man-denkt/blender-mcp.glb&quot; alt=&quot;Mit Blender MCP erstelltes 3D-Modell des Mechas&quot; camera-controls=&quot;&quot; camera-orbit=&quot;0deg 75deg 3m&quot; min-camera-orbit=&quot;auto 0deg auto&quot; max-camera-orbit=&quot;auto 180deg auto&quot; shadow-intensity=&quot;1&quot; exposure=&quot;1&quot;&gt;&lt;/model-viewer&gt;

&lt;p&gt;Ich glaube aber, dass ich da erst einmal keine Zeit investieren will. Ich habe ja das Bild aus allen Seitenansichten. Als Nächstes werde ich mich selbst an Blender setzen und die Figur erstellen.&lt;/p&gt;

&lt;p&gt;Ich habe früher schon mit Blender experementiert und ein paar Tutorials abgearbeitet, mal sehen ob ich mich noch an alles erinnern kann und ob der Skill wie mit Fahrradfahren ist.&lt;/p&gt;

&lt;p&gt;Aber generell kann man sagen, dass man die KI für eine Konzeption sehr gut verwendne kann, wahrscheinlich fehlen mir Skills um Probleme in den Bildern jetzt schon zu erkennen. Das werde ich wohl in der Zukunft dann herausfinden.&lt;/p&gt;
</content>
    <category term="gamedev"/><category term="rpg"/><category term="blender"/><category term="3d"/><category term="ki"/>
  </entry>
  
  <entry>
    <title>Loot und Inventar in Godot: UI mit eigenen Szenen umsetzen</title>
    <id>https://blackscorp.github.io/blog/loot-und-inventar-in-godot-ui-mit-eigenen-szenen-umsetzen/</id>
    <link href="https://blackscorp.github.io/blog/loot-und-inventar-in-godot-ui-mit-eigenen-szenen-umsetzen/" rel="alternate"/>
    <published>2026-10-28T00:00:00+00:00</published>
    <updated>2026-10-28T00:00:00+00:00</updated>
    <summary>So setze ich Loot und Inventar in Godot um: eigene UI-Szenen, Tastatursteuerung und stapelbare Gegenstände im Spielprototyp.</summary>
    <content type="html" xml:base="https://blackscorp.github.io/blog/loot-und-inventar-in-godot-ui-mit-eigenen-szenen-umsetzen/">&lt;p&gt;Heute habe ich mich an Loot und Inventar gesetzt. Schon am Anfang ist mir dabei ein Fehler aufgefallen: Ich hatte die KI nicht wirklich gesteuert. Bei der Demo dachte ich, sie würde schon wissen, was sie tut, und habe ihr zu viel Kontrolle über den Code gelassen, ohne selbst genau genug hinzuschauen.&lt;/p&gt;

&lt;p&gt;Die &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;World.cs&lt;/code&gt; war inzwischen für ziemlich viel zuständig: Gegner spawnen, Animationen abspielen, den Spieler steuern und Eingaben verarbeiten. Als ich dann noch die UI für das Inventar einbauen wollte, landete auch die erst einmal in dieser großen Klasse. Nach mehreren Versuchen war das Inventar trotzdem nicht sichtbar.&lt;/p&gt;

&lt;p&gt;Im normalen Godot-Projekt würde ich dafür eine eigene 2D-Szene anlegen und ein Script schreiben, das sich nur um diese Szene kümmert. Also habe ich der KI den Hinweis gegeben, das Loot-Fenster und das Inventar als eigene Szenen aufzubauen. Das war der Wendepunkt: Die UI bekam eigene Scripts, während die &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;World.cs&lt;/code&gt; die Menüs miteinander verbindet und den Ablauf in der Spielwelt steuert. Danach ließ sich das Verhalten viel besser umsetzen.&lt;/p&gt;

&lt;p&gt;Zum Looten können Gegner eine Beutekiste fallen lassen. Wenn ich in ihrer Nähe die Leertaste drücke, öffnet sich das Loot-Fenster. Dort kann ich alles einsammeln, abbrechen oder einzelne Gegenstände auswählen. Ich kann auch zum Inventar wechseln und Gegenstände zwischen dem Loot und meinem Inventar hin- und herlegen. Gleiche Gegenstände werden dabei als ein Eintrag mit einer Anzahl angezeigt.&lt;/p&gt;

&lt;p&gt;Rückblickend war nicht unbedingt das verwendete Modell – GPT-6 Luna mit Reasoning-Level „mittel“ – der entscheidende Punkt. Viel wichtiger war, dass ich konkreter beschrieben habe, wie die UI in Godot aufgebaut werden soll. Der Hinweis auf eigene Szenen und getrennte Scripts hat geholfen, die Aufgabe in kleinere, verständlichere Teile aufzuteilen.&lt;/p&gt;

&lt;h1 id=&quot;tasten-und-layout&quot;&gt;Tasten und Layout&lt;/h1&gt;

&lt;p&gt;Bei der Umsetzung musste ich mir auch Gedanken über die Steuerung machen. Ich möchte das Spiel zunächst komplett mit der Tastatur spielen und später möglichst auch mit einem Xbox-Controller. Die aktuelle Steuerung funktioniert mit der Tastatur; den Controller habe ich bei der Tastenwahl erst einmal als Ziel im Hinterkopf behalten.&lt;/p&gt;

&lt;p&gt;Auf der Tastatur habe ich deshalb die Taste „J“ als Bestätigung ausgewählt und „K“ zum Abbrechen beziehungsweise Wegwerfen vorgesehen. Mit „W“ und „S“ bewege ich die Auswahl innerhalb des Loot-Fensters oder des Inventars nach oben und unten. Mit „A“ und „D“ wechsle ich zwischen den Bereichen.&lt;/p&gt;

&lt;p&gt;Ein typisches Grid-Layout wollte ich zunächst nicht umsetzen. Für den Anfang sollte eine einfache Liste reichen. Im Grunde dachte ich an Folgendes:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-mermaid&quot;&gt;flowchart LR
subgraph Loot
UI[&quot;`Alles einsammeln | abbrechen
Item 1 2x
Item 2 1x
Item 3 3x
`&quot;]
end
subgraph Inventar
  UI2[&quot;`Item A 1x`&quot;]
end
UI -. Tauschen .-&amp;gt; UI2
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Das Verhalten war gar nicht so leicht zu erklären. Am besten hat es funktioniert, als ich den Aufbau mit zwei Spalten in Excel verglichen habe: Die erste Spalte ist in Bereiche aufgeteilt. Oben wechselt man zwischen den Loot-Aktionen, unten wählt man die Gegenstände aus. Dazu kommt die zweite Spalte für das Inventar. Mit diesem Bild konnte ich der KI besser beschreiben, wie die Auswahl zwischen den Bereichen funktionieren soll.&lt;/p&gt;

&lt;p&gt;Zum Schluss mussten die Gegenstände noch nach Namen gruppiert werden, damit gleiche Items als Stapel mit ihrer Anzahl erscheinen. Für die Aufbewahrung während des Spiels gibt es eine &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Session&lt;/code&gt;-Klasse. Das ist eine eigene Klasse im Projekt, die von Godots &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Node&lt;/code&gt; erbt. Ihr Inventar ist aktuell eine statische Liste: Es bleibt beim Wechsel zwischen Stadt und Arena erhalten, wird aber noch nicht dauerhaft auf der Festplatte gespeichert.&lt;/p&gt;

&lt;h1 id=&quot;fazit&quot;&gt;Fazit&lt;/h1&gt;

&lt;p&gt;Nach den ersten Tagen merke ich schon, was passiert, wenn ich den Code aus der Hand gebe und nicht genau darauf achte, wie er aufgebaut ist. Die große &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;World.cs&lt;/code&gt; hat die Arbeit an der UI erschwert. Mit eigenen Szenen und Scripts wurde das Ergebnis übersichtlicher und das Verhalten ließ sich besser umsetzen.&lt;/p&gt;

&lt;p&gt;Immerhin kann ich jetzt zwischen Kampfszene und Stadt wechseln, Gegner besiegen und ihren Loot einsammeln. Es fehlt noch ein Ziel im Spiel: Wozu mache ich das Ganze, und was bringt mir der Loot?&lt;/p&gt;

&lt;p&gt;Das sind spätere Fragen. Im Moment denke ich darüber nach, das Projekt mit klareren Regeln und Skills sauber neu anzufangen und mich langsam mehr um die Grafik zu kümmern. Ich merke schon, dass das Aussehen eine wichtige Rolle für den Spielspaß spielt. Vielleicht gehe ich das als Nächstes an.&lt;/p&gt;
</content>
    <category term="gamedev"/><category term="godot"/><category term="rpg"/>
  </entry>
  
  <entry>
    <title>Mein erstes Spiel mit Godot: Roguelike-Idee und erster Prototyp</title>
    <id>https://blackscorp.github.io/blog/erstes-spiel-mit-godot-roguelike-prototyp/</id>
    <link href="https://blackscorp.github.io/blog/erstes-spiel-mit-godot-roguelike-prototyp/" rel="alternate"/>
    <published>2026-10-27T00:00:00+00:00</published>
    <updated>2026-10-27T00:00:00+00:00</updated>
    <summary>Ich entwickle mein erstes Spiel mit Godot: eine Roguelike-Idee mit Kampfinstanz, Gegnern und einem ersten spielbaren Prototyp.</summary>
    <content type="html" xml:base="https://blackscorp.github.io/blog/erstes-spiel-mit-godot-roguelike-prototyp/">&lt;p&gt;Mit diesem Blog habe ich mir einen lang gehegten Wunsch erfüllt. Jetzt ist der nächste dran: Ich möchte mein eigenes Spiel entwickeln.&lt;/p&gt;

&lt;h2 id=&quot;ich-möchte-mein-eigenes-spiel-entwickeln--und-so-sieht-es-momentan-aus&quot;&gt;Ich möchte mein eigenes Spiel entwickeln – und so sieht es momentan aus&lt;/h2&gt;

&lt;p&gt;Im Video ist der aktuelle Stand des Prototyps zu sehen: Ich gehe durch das Portal in die Kampfinstanz und stelle mich den Gegnern. Noch ist das Spiel ganz am Anfang, aber der erste Kampf ist bereits spielbar.&lt;/p&gt;

&lt;figure class=&quot;article-video-figure&quot;&gt;
  &lt;video class=&quot;article-video&quot; controls=&quot;&quot; playsinline=&quot;&quot; preload=&quot;metadata&quot; poster=&quot;/blog/erstes-spiel-mit-godot-roguelike-prototyp/header.webp&quot;&gt;
    &lt;source src=&quot;/blog/erstes-spiel-mit-godot-roguelike-prototyp/demo.mp4&quot; type=&quot;video/mp4&quot; /&gt;
    Dein Browser unterstützt keine Videowiedergabe.
  &lt;/video&gt;
  &lt;figcaption&gt;Der aktuelle Stand des Prototyps.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Bei der Arbeit kenne ich den üblichen Weg: Eine Anforderung steht fest, daraus ergeben sich Akzeptanzkriterien und Aufgaben. Schritt für Schritt entsteht so ein Projekt. Bei meinem Spiel ist es anders. Es gibt noch keine fertige Anforderung und keinen genauen Plan. Da sind erst einmal nur ein paar Ideen und die Frage: Was könnte daraus werden?&lt;/p&gt;

&lt;h2 id=&quot;eine-idee-mit-vielen-durchläufen&quot;&gt;Eine Idee mit vielen Durchläufen&lt;/h2&gt;

&lt;p&gt;Ich spiele gerne Roguelikes. An diesem Genre gefällt mir, dass es kurzfristige Erfolge mit einem langfristigen Ziel verbindet. Im Kampf stelle ich mich Gegnern, sammle Loot und freue mich über jeden gewonnenen Durchlauf. Gleichzeitig arbeite ich auf etwas Größeres hin: Mit dem Ausbau der Stadt möchte ich bessere Ausrüstung bekommen und mich später stärkeren Gegnern stellen.&lt;/p&gt;

&lt;p&gt;In der Stadt beginnt der Spieler seinen Weg. Durch ein Portal gelangt er in ein Gebiet voller Gegner. Wenn er sie besiegt, soll er Beute und Ressourcen mit zurückbringen können. Damit könnte er nach und nach seine Stadt ausbauen: vielleicht mit einer Schmiede, einem Tränkeladen oder Möglichkeiten, Rohstoffe weiterzuverarbeiten.&lt;/p&gt;

&lt;p&gt;Jeder Ausflug durch das Portal wäre dabei ein eigener Run. Die Runs könnten auch bestimmen, wie lange Ausbauten dauern. Ob diese Idee am Ende wirklich Spaß macht, weiß ich noch nicht. Genau das möchte ich herausfinden, indem ich zuerst die grundlegende Spielmechanik entwickle.&lt;/p&gt;

&lt;h2 id=&quot;warum-ich-das-spiel-entwickeln-möchte&quot;&gt;Warum ich das Spiel entwickeln möchte&lt;/h2&gt;

&lt;p&gt;Natürlich gibt es schon viele Spiele. Für mich ist aber nicht nur das fertige Spiel das Ziel, sondern auch der Weg dorthin.&lt;/p&gt;

&lt;p&gt;Ich möchte mich mit C# beschäftigen. Die Sprache erinnert mich in Teilen an PHP, ist aber kompiliert – und eine solche Sprache wollte ich schon lange besser kennenlernen. Außerdem macht mir das Modellieren in Blender Spaß. Es ist für mich eine entspannende Beschäftigung nach der Arbeit und eine gute Alternative zum Doomscrolling.&lt;/p&gt;

&lt;p&gt;Auch beim Einsatz von KI möchte ich dazulernen: Wie muss ein Projekt aufgebaut sein, damit eine KI sinnvoll mitarbeiten kann? Welche Fähigkeiten und Abläufe helfen dabei? Und lässt sich ein Projekt wie dieses gut mit einem GitHub-Kanban-Board organisieren?&lt;/p&gt;

&lt;p&gt;Am Ende würde ich das Spiel gerne veröffentlichen. Als ersten Schritt kann ich mir itch.io vorstellen. Mein erstes Spiel direkt auf Steam zu veröffentlichen, wäre mir vermutlich noch zu früh.&lt;/p&gt;

&lt;p&gt;Ein weiterer Grund für das Projekt ist, dass ich langfristig eine Grafikkarte anschaffen möchte, mit der ich leistungsfähigere KI-Modelle lokal ausprobieren kann. Mich interessiert, wie weit ich bei der Spieleentwicklung mit einem Modell aus der Qwen-Familie komme und wo seine Grenzen liegen. Für welche Aufgaben reicht die lokale KI aus? Wann ist ChatGPT oder ein anderes Frontier-Modell die bessere Wahl? An diesem eigenen Projekt möchte ich solche Modelle ausprobieren und miteinander vergleichen.&lt;/p&gt;

&lt;h2 id=&quot;der-erste-spielbare-schritt&quot;&gt;Der erste spielbare Schritt&lt;/h2&gt;

&lt;p&gt;Für den Anfang wollte ich nicht gleich die ganze Stadt, Beute und Ausbausysteme bauen. Ich brauchte erst einmal eine Figur, die ich steuern kann, und einen Ort, an dem ein Kampf stattfindet.&lt;/p&gt;

&lt;p&gt;Dafür habe ich bei Mixamo ein Schwert-und-Schild-Modell samt Animationspaket heruntergeladen und ein neues Godot-Projekt angelegt. Mit Unterstützung von GPT-5.6 Luna entstand daraus der erste Prototyp: zwei Szenen, eine Figur mit Animationen und eine Steuerung mit WASD. Da ich das Spiel auf meinem Notebook auch ohne Maus spielen möchte, löse ich die Aktionen über die Tastatur. Mit der Leertaste geht es durch das Portal in die Kampfinstanz, mit J greift die Figur an.&lt;/p&gt;

&lt;p&gt;In der Kampfinstanz tauchen Gegner auf. Sie können mich angreifen, ich kann sie besiegen – und ich kann selbst sterben. Für den Moment ist das der Kern des Prototyps. Spieler und Gegner verwenden noch dasselbe Modell; die Gegner sind lediglich rot eingefärbt.&lt;/p&gt;

&lt;p&gt;Danach kamen nach und nach weitere Elemente dazu: eine Schadensanzeige, eine Minimap und ein erster gegnerischer Angriff mit roter Warnfläche. Bleibe ich darin stehen, nehme ich viel Schaden. Entferne ich mich zu weit von den Gegnern, kehren sie an ihre Ausgangsposition zurück und erhalten ihre volle Energie zurück. Außerhalb des Kampfes soll sich außerdem die Lebensenergie meiner Figur wieder auffüllen.&lt;/p&gt;

&lt;p&gt;Mehr ist es noch nicht – und das ist in Ordnung. Der Wechsel von der Stadt in die Kampfinstanz, der Kampf und die Möglichkeit zu sterben bilden meinen ersten spielbaren Versuch. Ob daraus ein spannender Kreislauf werden kann, muss sich noch zeigen. In den nächsten Teilen möchte ich erzählen, wie ich den Prototyp weiterentwickle und welche Ideen dazukommen.&lt;/p&gt;

&lt;h2 id=&quot;quellen&quot;&gt;Quellen&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/index.html&quot;&gt;Godot Engine: C#/.NET&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.mixamo.com/&quot;&gt;Mixamo&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://helpx.adobe.com/creative-cloud/help/animate-characters-mixamo.html&quot;&gt;Adobe: 3D-Charaktere mit Mixamo animieren&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content>
    <category term="gamedev"/><category term="godot"/><category term="rpg"/>
  </entry>
  
</feed>
