Finished my first Godot project after about 2.5 months of work — a mobile roguelike where you build a mech, pick weapons, and try to survive long enough to take down the boss.
Stack:
- Godot 4.5 - C# / .NET 8
- gdUnit4 for tests, GitHub Actions for CI (headless via xvfb)
- ~150 C# files, ~440 .tres resources for game data
A few things I learned along the way:
- Godot’s resource system (.tres) is great for data-driven design but needs guardrails — I ended up writing a runtime integrity check that caught 26 duplicate IDs from a snake_case → PascalCase migration that had been silently overwriting in production.
- Headless Godot Mono in CI took some fiddling but runs the full test suite (91 tests) in about 500ms.
- Mobile export with C# was smoother than I expected.
Live on Google Play now, iOS in review:
Happy to answer questions about the Godot side of things — the CI setup, the resource validation pattern, mobile export gotchas, whatever’s useful.