Armonium September Report (v0.3.4)


It’s been almost a month, so I wanted to share an update on the progress of Armonium. Things are expanding quickly—the codebase now consists of over 25k lines of handwritten code, 95k generated lines, and around 3k lines of scripts.

Over the past month, I’ve spent considerable time redesigning how settlements decide what tasks to prioritize and what buildings to construct next. After prototyping several different approaches, I’ve settled on one that feels more believable, engaging, and only sufficiently complex. The previous system was overly complicated without producing realistic results, and it was also quite slow. My goal for Armonium is to simulate an entire in-game year in a few seconds, but the old construction and work decision logic was consuming more than 50% of the CPU when I tested the game through the command line interface. The new system currently uses about 3%, and while I expect that to increase as more labor types and buildings are added, it’s unlikely to become as inefficient as the previous version.

Here’s a quick breakdown of the new system: people in settlements have various needs—food, shelter, entertainment, garments, household items, and furniture. The settlements regularly check if they have or produce enough of these goods, and if not, they’ll decide to construct a building that addresses the unmet need. Alternatively, settlements may seek trade pacts to fulfill their needs in the future. While trading isn’t implemented yet (it’s the main milestone for version 0.4.3), the system was designed with that in mind.

With that completed, I began linking skills to labor types. Workers now gain skills related to their jobs and become more efficient over time. For example, a chief farmer with high Planting and Herblore skills will yield more crops, while using their Leadership and Teaching skills to guide and train their subordinates—ensuring continuity in case something prevents them from working.

Version 0.3.4 was focused on overhauling the decision-making logic for building construction and work assignments, and I’m relieved to say that it’s finally done in a way that doesn’t rely on hacks or shortcuts. Version 0.3.5 will focus on expanding labor types to cover tanning/leatherworking (done), as well as the lumber, stone, and metal industries. Unfortunately, there isn’t much visible to show yet apart from some debug UIs, and that will remain the case until version 0.3.9, when I’ll reflect these backend changes in the visible scenes. Until next time!

Leave a comment

Log in with itch.io to leave a comment.