And yeah, there is some basic socialization that goes on. An NPC will see an event happen (ie: A building collapses and kills another NPC), and it’ll store a record of that event, modified by the NPC’s opinions about the other NPC and the building. So if it likes the NPC, it’ll claim the NPC died in some epic way.
That information is then told to other NPCs, who modify it to suite their opinions, and it starts propagating. It creates a really interesting social simulation, since conflicting opinions lead to more conflicting opinions, and you can start to see NPCs have great distaste against other NPCs.
I’m even considering adding a super elementary NLP library into things (Most likely just use an open source one) so that the player can contribute. I’d most likely do a quick parse over what the player is saying to pull out the subject and verb, then run a sentiment analysis pass to see what the player’s opinion is. Moderately light weight, and it’d produce great results.
Also the 1GB thing is the simulation running without this component on. I’m trying to figure out ways to keep this below 4GB once I enable social. At the moment every record is stored as 4 bytes, the issue is there are just SOOO many of them, and it would take to long to see if that particular NPC has already stored a record before, so there is way too much repetition.