Armonium October Report (0.4.6)


As we wrap up another month, let’s dive into the major updates in Armonium and discuss our upcoming plans.

New Content

Caravans: With the world map featuring resources scattered across different regions, a single settlement can't fully meet its residents’ needs alone. Settlements require stone or wood for furniture, barley or grapes for wine, and leather for garments. When a settlement lacks specific raw materials, it will now attempt to import the finished goods through trade caravans from nearby locations.

Kobolds: We’ve introduced Kobolds as a new barbaric race that cannot farm. Instead, they survive through hunting, gathering, and raiding enemy parties. On the map, you’ll now notice a new party type, Raider, sometimes stationed at settlement entrances and sometimes pursuing under-defended caravans. These raiders intercept enemy parties, loot supplies, and even take prisoners. Expect some new quests inspired by these raiding encounters.

Soldier Classes and Training: Settlements can now build barracks to draft citizens or train existing soldiers. These soldiers join caravans or migrant groups, serving as their protectors. This feature integrates well with the current character system; experienced trainers at the barracks will be skilled in strategizing, leadership, and teaching skills — some of which are useful in combat!

Settlement Events: Settlements now experience events that impact residents. For instance, if people die of starvation, a temporary negative mood effect spreads, reducing the work efficiency of affected residents.

Technical Updates

LuaLS Support: We’ve enhanced the code generator tool holgen by adding support for Lua Language Server (LuaLS). This integration brings about lightweight static analysis, helping to catch errors before runtime, allowing modders to figure out the details of the entry points they can use without leaving their IDE, and also helping keep my sanity.

AI Revamp: Originally, Party AI in Armonium was implemented with simple logic. Later, more complicated AI of 3D-view Actors required a better approach: Behaviour Trees. However, this initial code was heavily tied to actors. To improve flexibility, I’ve now generalized these components using C++ templates, creating a unified and extensible system. This new setup allows both Actors and Parties to use the same behavior system, making it easier to expand AI functionality.

Experiment with C#: I explored C# for Armonium’s scripting needs, adapting my code generator tool, holgen, to support most of our requirements. While C# has advantages in computational speed in number crunching use cases, embedding in a host application is whole nother beast. This use case introduces significant performance overhead when data frequently moves between languages, and in certain hot paths,  .NET’s performance fell short of Lua's. After a week which was my timebox, I decided to stick with Lua, especially since LuaLS now gives us the main thing that excited me about C#—typed code!


The Visit

Last month, I visited Ankara and met with several fellow game developers. Showing them the game and getting early feedback was both exciting and eye-opening. Some asked if it's a Runescape-like game, some likened to Ultima Online. I've also heard the mention of Mount & Blade and Dwarf Fortress. There was common theme in their feedback, however: “The game is missing!"

While people were excited about the detailed simulation and interactability of the environment, many asked, “What’s the main goal here? Where’s the game loop?” Hearing this from multiple people underscored the need to emphasise Armonium’s core gameplay.

This feedback wasn’t entirely unexpected, but it did push me to reevaluate the next milestones. Originally, I’d planned version 0.5.x to focus on quests and a bit on new player experience, with version 0.6.x dedicated to graphics improvements, followed by another milestone for expanded content (new workspaces, labor types, diplomacy and gods).

Based on the feedback, I decided to make combat a priority for the next few sprints. Versions 0.5.1 and 0.5.2 are now focused entirely on combat mechanics. In the next report, I hope to share the different combat approaches I tested and explain the final choice. This planning change will also make it possible to release a playable demo sooner.

All in all, it was a busy month packed with technical and content updates. There’s a lot more content on the way, so stay tuned for next month’s report!

Leave a comment

Log in with itch.io to leave a comment.