Hearthvale
A 2D medieval settlement simulation in Godot and C#, playable end to end. I scoped and shipped all thirteen development phases solo in about four weeks, with a real unit-test suite and CI, and produced a downloadable build.
What it is
A villager-driven kingdom builder in the spirit of Fabledom and Stardew Valley: you set direction, the settlement runs itself, and an economy of buildings, resources, and people ticks forward. The core loop is complete and playable; the work now is balancing and polish.
Shipped in thirteen phases
I ran it like a real project: a sequenced plan, one phase at a time, each landing a working slice rather than a half-built everything.
Decisions worth noting
Unit tests and CI, for a solo game
Game code is notorious for being untestable, so most hobby games have no tests. I pulled the simulation logic (economy, buildings, city growth, blessings) out of the engine and covered it with xUnit, then wired CI to run it on every push. It caught real regressions as the systems grew.
// Simulation logic lives outside the engine so it can be tested. [Fact] public void Market_PricesRise_WhenSupplyDrops() { var city = new City(grain: 100); city.Consume(grain: 90); Assert.True(city.PriceOf(Grain) > basePrice); }
Illustrative. Separating simulation from rendering is what made the tests possible.
Villagers that run themselves
The player does not micromanage. Villagers pick jobs, meet needs, and move goods on their own, so the settlement stays alive whether or not you are looking at it. That autonomy is the heart of the feel, and the hardest thing to balance.
Outcome
What I'd do differently
I built systems faster than I balanced them, so by the later phases I had a lot of interacting numbers and not enough tuning tools. Next time I would build the balancing and debug instrumentation earlier, alongside the systems, instead of treating tuning as a final phase.