§7.16. Social Groups
Crowds of characters introduce new challenges, because we often want to show them interacting with one another, or to describe individuals in less detail when a whole group is present.
Strictly Ballroom gives us a set of characters who pair off each turn, making sure to mention each one once, and leaving one unfortunate person behind as a wallflower: this exemplifies how we might use a behavioral rule not to dictate the behavior of each individual separately but rather to model a whole group together. Happy Hour does calculate movements for characters individually, but then collates the descriptions, creating a single paragraph to describe whatever group is currently in the room.
Characters can also have complicated attitudes to one another, and it can be helpful to use relations to track these. Unthinkable Alliances demonstrates the grouping of characters into alliance factions, while The Abolition of Love provides a host of relations to track love affairs, marriages, memberships in families, and mere mutual respect.
Emma combines these two effects: its characters move between social groups depending on how they feel about the others in their particular talking circle, and descriptions change depending on who is where in the room.
Lugubrious Pete's Delicatessen simulates a queue at a deli, in which the customers who most impress Pete get served first.
See Traveling Characters for groups of characters who move around and have their movements collated into a joint description
![]() | Start of Chapter 7: Other Characters |
![]() | Back to §7.15. Goal-Seeking Characters |
![]() | Onward to Chapter 8: Vehicles, Animals and Furniture: §8.1. Bicycles, Cars and Boats |
|
|
|
Many simple repetitions can effectively be done with a "now..." instruction: it is quicker to say
than
Repeat comes in handy when we have something a bit more complicated to do with each item:
Notice we did not say "repeat with dancer running through alert people who are not the player...". This is because Inform would draw up a list of alert people at the beginning of the repeat, and not take into account which people became occupied partway through the repetition. If we want to make sure that each person dances only with one other person, we have to continue checking alertness each time we run through the repetition. After all the partners are assigned, we can set up for the next turn by making everyone alert again, and for this we do not need "repeat":
|
|
Many simple repetitions can effectively be done with a "now..." instruction: it is quicker to say
than
Repeat comes in handy when we have something a bit more complicated to do with each item:
Notice we did not say "repeat with dancer running through alert people who are not the player...". This is because Inform would draw up a list of alert people at the beginning of the repeat, and not take into account which people became occupied partway through the repetition. If we want to make sure that each person dances only with one other person, we have to continue checking alertness each time we run through the repetition. After all the partners are assigned, we can set up for the next turn by making everyone alert again, and for this we do not need "repeat":
|
|
|