Game Development Reference
randomly picks that person's partner, but the activity picked matches the first
person's strongest need. The activity is also randomly picked. The pair is
removed from the pool, and the selection process is repeated until the pool of
people is empty. The random pairing and selection drives toward all the people
doing all the activities with all the other people. This is not intended as a game
mechanic, but as a way to validate the simulation by driving toward good cov-
erage of the interaction space. We know that left to themselves, people would
self-select toward their own preferences and established friends.
In addition to the needs, preferences, and relationships, we will compute some
other scores to help us make sense of the simulation. Our people have their own
views on life, computed as the simple sum of all of their preferences. We expect
people with a positive view on life to more easily build positive relationships
because they like to do more things. We expect the reverse as well. We will also
compute how opinionated each person is by taking the average of the sum of the
squares of their preferences. Strongly opinionated people might be candidates for
strong relationships, positive or negative. We certainly expect people with weaker
opinions to build their relationships more slowly. The final derived score we keep
is compatibility. Compatibility between two people is computed by multiplying
the matching preferences of each person and summing the result. Since the first
term of the relationship score is based on multiplying the two values of a single
preference, we expect compatibility to help predict strong relationships.
Why do we compute the extra numbers? The derived values are to help us predict
and tune. Our system mixes determinism with random chance, so trends may be
slow to emerge. The preferences and needs for our people will be randomly
initialized; these numbers will make it easier for us to see if any particular set of
people will make for interesting interactions. Compatibility score is one of our
better predictors; without some strong values in the mix, the simulation is
boring. This has game design implications; randomly generated characters are
fine so long as they are not all boring randomly generated characters. Let us build
the simulation and see how they turn out.
Our user interface will be quite simple, as shown in Figure 9.4.
1. Launch Visual Basic if it is not already running.
2. Create a new Windows Forms Application project and name it