This past Saturday, I rolled out a quiet but highly impactful update to the Forge42Engine, the battle engine that runs Tharendell.
One of the biggest pieces of feedback I had been hearing was around battle responsiveness. Previously, when a fight was executed, players had to wait for the entire simulation to complete before receiving the results. In larger encounters, this could take up to a minute.
That bottleneck is now gone.
Live Narration is Here
Narration now streams in real time as each round completes.
Instead of waiting for a full payload, players now experience the battle as it unfolds — round by round. This dramatically improves perceived performance and makes encounters feel far more dynamic.
Under the Hood: Major Engine Refactor
While preparing to implement spell casting, I identified a growing architectural issue: the battle executor had become a catch-all service responsible for too many concerns, combat resolution, movement, narration, rewards, and more.
Rather than layering spell casting into that complexity, I paused and refactored the engine.
Over the past two days, I:
- Extracted core logic into 7 dedicated services
- Reduced the battle executor into a true orchestration layer
- Preserved full behavioral parity across automated battle runs
- Improved maintainability and testability across the system
This refactor is foundational. It allows new features — especially spell casting — to integrate cleanly without increasing technical debt.
What’s Next
Spell casting is now approximately 85% complete and will be the next major feature release.
Once that is finished, I’ll begin testing a mini campaign scenario, a controlled environment to evaluate how close DM42 is to functioning as a fully autonomous Dungeon Master.
More updates soon.
— Babble Baz

