A Day in a Table
Sidenote: as you might notice, I completely overhauled the website and blog. Let me know if anything stopped working for you or looks weird!
Today I was trying to really narrow down how complex the household decision making should be and I think I arrived at a practical and simple solution:
Whenever a person is done with their current activity and they want to decide what to do next, they first choose their biggest 3 problems by looking at all their personal and family resources, taking the difference to the ideal value and then weighing that according to a per-resource importance. The person then checks all their favorite places that offer resources and chooses the place that offers the biggest improvement on the top 3 problems in proportion to the time required (transport & doing an activity).
One realization that I had today was that the importance of different resources should probably vary depending on the time of day. If I modeled that alone using a simple lookup table, I should a have pretty direct and straightforward influence on producing realistic activity patterns throughout the day.
I came up with this importance-per-time table that I will use as a first shot:
Edit: A clarification, since this short description caused confusion and made it look more simplistic than it will be:
The table that I showed you does not directly determine what a person will do next. They will not just look at the importance in the table, but rather: they will check how well they're doing on all their resources (difference to "good enough") and then multiply that difference by the importance weight factor from the table (for the current time of day) to determine the top 3 problems to fix next. From those they choose the one that they can deal with the most effectively (depending on transport conditions, etc.)
So a better formulation for the table might be that it slightly influences how likely someone is to do something about a problem regarding a specific resource, compared to problems regarding other resources, depending on the time of day. Let me know if that sounds better for you (so you don't have to be afraid anymore that I went a fully simplistic way).
End of edit
Obviously this is very tweakable and as the file name suggests, children will have different importances than adults (and will thus get their own table). Most likely even different social classes or kinds of people have different tables and I might just randomly distort the table just a tiny bit for every individual person to create more variance.
But in the beginning it will be one-lifestyle-fits all, just to make debugging/balancing as easy as possible.
What's next
- Implementing the family behavior using this table
- Putting in some simple, static businesses to offer employment and resources
- Integrate it with the traffic simulation, make it run and just watch the ensuing chaos
- Write debugging tools that log the whole day of a large number of individuals so I can look at it and see at a glance if the simulation produces sound behavior
What's later
- Come up with a decision model for businesses. This will most likely be mostly about adjusting prices of offered goods depending on the business situation
- Come up with a model for residene choice for families and companies