I was working on society generation, where the system would generate whole socities (villages to be specific), inhabited with people. These people could be part of various factions or secret socities and have their own agendas. Moreover, some of them might have powerful artifacts or other special items, that would have history attached to them.
The original idea was to generate the whole thing from one seed, in hierarchical fashion. First generate main details for the society, then add people, their items and so on. Each person would have their own agenda, be it simple or complex. Simple examples would be just surviving or gathering enough raw materials for building some specific item. The problem with generating everything based on seeds is that while it works really well with a directed graph (society -> person -> items for example), loops are hard to express with it (society -> person -> plot -> person). Also, the direction is always from one item to many items, not other way around.
While I haven’t solved the problem yet, I have some ideas that I’m throwing around and comparing. The most promising one in regards of agendas and plots is to genrate them as the last step, independed from seed based generation. Essentially I would generate whole society first, with all its inhabitants and such and then as a second step, add agendas and plots on top of that. One of the requirement for the system is that it can genrate same society, over and over again, based on a single seed. Therefore, agenda and plot generation has to be deterministic. I suppose it would be possible to keep the seed used originally generate the society and use that as a seed for generating all plots and agendas as a second step.
This still leaves artefacts and their history. The reason I want to have them is that I can have a bit of background story in the game, that is always the same. That was players don’t have to discover it all in one playthrough and can safely ignore it if they so choose. Various unique characters (Librarian and Hunter for example) are subject of multiple legends and any legend usually concerns more than just one person. Throw in artifacts in the mix and you have something that definitely isn’t a directed graph. And as usual, the whole process should be deterministic, otherwise lore would change every time it is being generated. I’m probably going to try generating legends from seed and people and artifacts get generated based on that seed. This doesn’t easily allow one to check in which legends certain character or artifact is involved though.