A daily devlog documenting my journey building a turn-based RPG, with many other elements mixed in for fun, in Godot
Progress Made
AnimatedSprite2D
.CanvasLayer
-based dialogue UI system using a Panel
and Label
.DialogUI.cs
script to handle timed messages via ShowMessage()
.Challenges
Next Steps
Reflection
Even though the dialogue box didn’t work out today, I made solid foundational progress: the player moves, the world is built, and the systems are coming together. Sometimes starting over is faster than untangling a UI issue—and now I know exactly how to rebuild it cleaner. Tomorrow’s gonna be a win.
Progress Made
BattleScene
script via GetNode()
.PlayerEntity.cs
and EnemyEntity.cs
scripts with health systems, damage functions, and animation triggers.GetNode<T>()
to connect scripts with scene elements._camelCase
for private fields and PascalCase
for public ones.AnimatedSprite2D
, including basic attack and hurt states.Challenges
DungeonUI
before realizing the logic belonged in BattleScene
.Next Steps
Reflection
Today everything started clicking. I finally understood how to wire up scenes using
GetNode()
, and my confidence with Godot and C# has skyrocketed. I learned not to overthink structure—sometimes simplicity is best. Also: animation is no joke. I’m grateful I bought a sprite pack, because aligning frames by hand is already a lot. Designing my own will be a mountain later, but that’s a future win. For now, I’m proud of what I’ve built. It works—and that feels awesome.