Weekly Update – March 7, 2025

This update covers the past two weeks.

GUI update work continued. Improvements were made to the Continue screen and main game screen.

Last week I reacquainted myself with the history generation system and determined the next steps. It was beneficial to step away from the history generator for over a year. This allowed me to escape the overwhelm caused by the complexity of the system’s code and design tools, and the enormous effort required to author enough content for the system to achieve the desired result. Some of the complexity is inherent, and some is of my own doing. I initially envisioned that the history generator would generate the history in an implementation-agnostic manner and then transform the result into a concrete representation on the level map. But, as the system took shape, it became apparent that the history could not be generated without knowing some things about the map – first the structure, then the entity placement rules, and now, the entities themselves. And so, history and map generation became more tightly coupled, requiring significant retrofitting and consequently making the system more complicated than it would have been had I started with this approach.

The history generation system reassessment resulted in a few decisions:

  1. Link every game entity to an entity in the history state. Currently only actors and items are linked. Objects must also be linked to the history state to apply history events involving them (such as an earthquake that damages everything in an area).
  2. Apply aging. This was previously partially implemented but never working. Bullet 1 makes aging fully possible.
  3. In the map generation process, combine the history event generation and entity population stages. This was required to implement bullet 1. It has a bonus in that visual map generation can now display map updates chronologically, as well as the effects of the aging process.

I implemented these features this week. As I worked on them, I contemplated the massive content creation and additional coding required to generate a wide variety of interesting histories. It would require another year to complete this work. After coming to that realization, I considered killing history generation altogether. It’s so interwoven into the map generation at this point that it’s not worth the effort to pull it out, but I am narrowing its scope.

Next week, I’ll create new history event types to validate the existing history generator capabilities and do some miscellaneous GUI work. 


Posted

in

by