Wednesday, 30 September 2015

Week 1: September 30th 2015

Before I started this project I already had a foundation which I built over the summer. Over the next 12 weeks I will expand on this foundation which I have made in Netlogo. Then I will port it to Unity where it can be used in a more playable game setting.

Currently my procedural village generator starts off with a user defined number of couples, these couples can either be hetero or homosexual. They are also given a random name and a random age from 18-100. Currently the age is totally random, so it is just as likely two people of a similar age will get matched compared to a couple with a 60 year age difference. This needs to be changed so that couples with a larger age gap are less likely to occur.

Once these couples have been generated, a user-defined number of occupations are also created. Currently none of these occupations are unique, later I plan to make them more individual. Some will be schools and some will have specific limitations on how many can work there. Perhaps I will also include how "fun" the job is, adding a level of desire for other people to work in more enjoyable jobs. People who work in these more "fun" jobs will also have an increased level of happiness. Additionally, each one of these occupations has a boss.

After this initial setup procedure the simulation can be executed on a year-by-year basis.

Every year a number of processes are executed:

  • Processing births for partnered couples. Each couple has a chance to have a child each year. Currently this chance isn't effected by how many children the couple already has. In the near future the number of children will effect the chance.
  • Processing deaths. (This isn't fully implemented yet)
  • Processing retirement for those currently in working above the retirement age. Once a person exceeds this age they don't immediately retire, there is simply have a chance that each year they will retire.
  • Processing redundancy. There will be a chance someone will get made redundant from their job. 
  • Processing new friends. (This isn't fully implemented yet)
  • Processing occupation-change. If a person finds a position for a new job they want, they will quit their current occupation and join the new one.
  • Processing new bosses. Each occupation has a boss, each person has a chance to become a boss of an occupation. If a new boss isn't found an outsider is created and made the boss of the occupation.
  • Process applications. Each person who is unemployed applies to an occupation and has a chance to be accepted. If none of the applications are accepted they wait until the next cycle to apply again.
  • Find partners. Each person who doesn't have a partner tries to find another person who doesn't have a partner. There is also a chance they will be partnered with an outsider. 
Before I port this to Unity there are a few aspects I need to finish off:
  • Death by old age needs to be implemented.
  • A friend/enemy system needs to be implemented. 
  • An emotional system needs to be implemented.
  • Schools need to be implemented. 
  • Affairs need to be implemented. (They were in a previous version, but not one adapted to the year cycle)
  • Job history needs to be displayed in each person's bio.