You might look into academic use of agent-based programming, which has been used to understand the ecology of
human settlement during the medieval warm period in what became the US southwest, think Mesa Verde and the
Anasazi peoples. It treats the map as a productive surface of varying qualities, and set loose a small number of
agents that behave like a family of paleo Native Americans: gather food, fuel, build, garden, age, reproduce and
split up when a locality becomes too crowded. As I recall, there is specialized Linux software to host this kind of programming.