This is probably going to be a big thread for me and I have been putting off starting it but, well, theres been a number of posts in the last few days so now is as good a time as any.
I have had an idea for a very long time to try to make a map using character economics. I mentioned it in this thread and in there I said it was an old idea. So this has been rattling about in my head for a few years now.
The idea is to make a program that auto generates a map by monitoring a continuous simulation of the everyday life of characters in a fantasy village or town. The basic premise is that we randomize some stats for some characters - and these stats will be nothing like D&D or game stats - and then let them loose. They will do stuff to satisfy their needs and desires one of which is greed so that they attempt to maximize their wealth. So its like running SimCity in full auto mode but in fantasy.
I know of lots of people who have made auto generating mappers and some auto city mappers but these fall into several camps. One is the pure random approach and the other is fractal or L-system. Now I am not saying that any of these systems is a bad one but I personally have no faith that they will encode the complexity of human (or non human) behavior. We don't build random cities. They are grown.
Theres been many people who post up generators for characters and I have even seen one which tracked a persons state, got them married, had some kids and died. So that it generated a full town listing of all characters will spouses, brothers, children, parents and a full obituary. So thats not so different from what I have in mind.
The key thing tho is that I don't know of anyone yet who has tried to plot the map of that village of tracked people.
I mentioned in that thread a while back that its a very ambitious project and a very hard program to code up. For about a month now I have been scribbling making notes and drawing a lot of tables, boxes and arrows and I think I have whittled it down to something that I can code.
I have for a while been hacking it out. I took GeoTerSys and gutted it and reinstalled a new set of commands. Then set about writing up the tables of stats, items, world, and transactions. I have been coding for some days now and not got to run it and produce a single pixels worth of map yet but I can dump the status and get about 10 screen full's of stats and I made the very first transition tree search the other day. So I *think* it might be possible that this is still a goer. But I am not entirely sure I have to say.
The program is another of my closed source things - sorry - but I will be dishing out betas (with maybe some small limitations) to anyone who wants to have a go. I don't really know where this will end up. Maybe it works real well and maybe it falls flat. I may use it to model other non fantasy mapping too cos I am programming it as an engine so we change rules and items and we simulate something else. So I just don't know.
So where am I with it. Whats the dirt ? Well I have scribbled out what I think is the minimum set of stats, needs and so on to get one human into a base map and start working on it. Oh I should also say that you do in fact have to enter a base map. That consists of just a 4 color bitmap showing where the trees, ground, rock, and river are. The idea is that the map it produces will fit into that layout so you can take a bit of your world region and just blat down the basic resources available and then let it grow a city on top of it.
So far a human will wander around and never die of starvation or thirst but would like less of each. He does not die from lack of sleep or exposure but will really want to prevent being subject to them. He will have basic skills in everything a peasant might do and carry basic tools like an axe, a hammer, and also have some grain on him for planting. He starts with no money, no house, no land, no quantifiable possessions of any type.
Then he can move to water and drink, chop down a tree into logs, plant some grain, bash up some rock or rest on the ground. These things I call transactions and will satisfy some thirst, hunger and rest or increases his wealth in the case of the logs which are worth more (to him) than trees or aggregate being worth more than rock in the ground.
The idea is that he must satisfy his needs and then optimize his desires by looking at the supply and demand of all item types from his point of view (which might be different from the next man in which case there is scope to trade).
Once I have him drinking, planting corn and eating, I am hoping that he will build a log cabin, a house or a shack or something. His choice on what and where he builds it might be beneficial to him or a detriment. As he moves about it will track the paths he is laying down and I hope from the choices that people make and the paths they use to get about it will eventually generate a map.
It will also generate a full list of characters with stats like some of the other programs out there, but, it will also have their skills, their bio, history, their current state and even their future desires. And it should all make sense. I.e. We will know that Bob cuts trees and sells them to Jim the blacksmith and we will know for what price and how often. We will know how much tax is required to keep the village operating, who owns and has inherited all the buildings. It will have a kind of newspaper of notable events like major burglaries, scandals, devastation, invasions and so on.
The output map might be quite simple and used as a basis for a more sophisticated renderer such as something that POVray or a 3D app or virtual tour might be able to use. My intention is that it will take the base maps out of GeoTerSys (tho its designed to be a breeze to put these in manually) and then, aside from writing a bitmap of the village, write out a set of files so that ViewingDale can move around and access all the extra info about the people on the map. But neither of those apps will be required for it to be extremely useful.
Yeah its a tough programming exercise and I am not saying that I will be capable of actually making it happen. But I have started on it and ill post about its progress right here ! But I reserve the right to quit on it and not look like a ninny, OK ?