Hello, my name is Jason Halvorson. I’m a Gameplay Scripter here at Maxis. As a Gameplay Scripter, I’m responsible for writing the logic that drives the systems of the game. One of those systems being what we call the “Sim Flow Rules” of SimCity. In order for the citizens of your city to thrive, they must work to earn money and then spend that money to receive happiness. I thought it would be fun to expose the logic that went into these rules. In this post, I’d like to focus on the work system. I’ll go into detail about shopping rules in a future blog post.
There are two methods in which the simulation sends Sims to work. There are “requested” workers and “extra” workers. Every workplace has a minimum amount of workers needed in order for it to become active. The requested worker system is responsible for spreading your workforce throughout the city to meet the minimum requirements for each workplace. Otherwise, all of your city’s Sims would simply work at the business nearest to their home, leaving the work places further out without enough workers to function.
The workplace sends out a request agent that contains information regarding how many workers it needs. Think of this agent as a recruiter, traveling door-to-door signing your Sims up to come to work. If the agent finds workers within walking distance, the Sim will walk to work. If not, the Sim will drive.
After some time, the agent returns to the workplace with a count of how many workers will be arriving by foot and how many will arrive by car and then opens up spots for them accordingly. This ensures Sims walking to work will target the nearby workplaces while Sims driving will target workplaces further away. Also, since workers do not drive to workplaces nearby, having workplaces nearby residential units will reduce traffic significantly.
Once the request system has distributed the required workers throughout the city, the “extra” system begins. Businesses have a bare minimum amount of workers needed in order to become active, but your Sims need jobs to survive and workplaces are happy to employ them if need be. This system takes the remaining unemployed Sims in your city and sends them out looking for any workplaces that have extra positions available. If a residence has eligible Sims, they will walk to a nearby workplace or transit stop. However, if they do not find something close enough, they will drive if a car is available.
From time-to-time, a workplace opens up in the middle of a work shift after everyone has already settled into a job for the day. In this instance, the worker request system will fail since there are no Sims at home looking for a job. Therefore, when the request agent returns and reports that it hasn’t found the minimum required workers, it will try again. However, this time instead of targeting homes with idle Sims, it will target workplaces with extra workers. These extra workers will then leave their current job to fill the required spot at the new workplace. Now, instead of having one business with an abundance of workers and another without any, you have two businesses with enough workers to work efficiently. Everyone’s happy!
The worker request system doesn’t end there. If the request agent returns again, still reporting that it hasn’t found enough people, it’s fair to assume that this city’s population doesn’t meet the demands of your workplace. Therefore, the third and final request will be sent to your city’s neighbours. If the request agent finds eligible Sims looking for work in neighbouring cities, they will commute into your city to fill the job. This allows you to have a two neighboring cities working hand-in-hand. One city can be where all the workers live and the other city can have all of the work places.
So that is how we spread Sims out to each workplace. There’s still the matter of workers returning home with the wages they’ve earned for the day. Much like the minimum workers required in a workplace, residential buildings require a certain amount of money each day in order to pay their rent and to shop. Therefore, we need to make sure Sims are spreading the money they return with amongst as many residential units as possible.
Essentially, there are two work shifts. A day shift and a night shift (technically, there is a 24 hour shift, but really that’s just a day shift and night shift combined.) When a Sim leaves to work the day shift, he reserves a spot to return to at night. Therefore, a Sim returning home after working a night shift will be unable to take the spot of someone who just left for work. As the day shift ends, the residential unit unlocks and now accepts people who are returning home from working the day shift.
Also, every worker who returns home is ineligible to work again until they are rested. A Sim returning from working the day shift will ignore all work requests until the night shift ends. This prevents Sims from working both a day and night shift, allowing all residents a chance to work and earn money for their household.
Buildings are often built, destroyed, upgraded, demolished by garbage-starved monsters, etc. This means workers are constantly in flux, going from job to job trying to meet the most current needs of your city. Sims are selfless little troopers, working at any place they are required. Even if their home was destroyed, they will take up occupancy in a new home all in the name of keeping the city running as effectively as possible.
Look here in the coming weeks for the Sim Flow Rules for shopping. Thanks for reading!