Fixing the remaining "Observer Effects" turned out to be easier than expected. It was again a language generation issue, though now related to syllable creation. In the current version, syllables are generated on demand when new words are requested. This caused problems because the chances of creating a new syllable depended on how many syllables had been created already. I changed this so that now there's no dependency on the existing amount of syllables when generating new ones. Instead, every time I require a syllable I peck into a hash table using a random index. If the indexed position is empty a new syllable is generated and assigned to the position. Both the syllable and its index in the table are generated in deterministic fashion (based on the language's seed) so every new word will always get the same syllables regardless on when and how it was generated.

To continue with the work with Decisions I began consolidating all clan related events (clan splitting, core migration, etc) into a single clan update event. This will allow me to trigger decisions independently of when the associated events will occur. For example, the event will check if a split should occur and, if the clan is under control of a player, then it will trigger a decision for the player to handle, regardless if the actual split would had occurred or not. This is very different from the way I originally wanted to implement decision triggering, but in the end, this is way simpler and hopefully it won't be too taxing for the simulation to execute.

On other news, I decided to create a subreddit for this project: reddit.com/r/worldhistorysim/

There isn't much going on there right now. But hopefully it will serve in lieu of an actual forum. For now, I'll add a new post there for every development blog entry. Feel free to use the subreddit to discuss this project or anything you might feel relates to it!