Suckerville: the Game (miniature agent-based society simulator toy)
Suckerville: the Game (early planning phase) is based on the comics I write. A few of which are at my comics page. I thought it would be neat to create a game with these characters where you could interact with them. This idea transformed into a lofty concept for a complex(-ish) society simulator. This game is single player and therefore all of the society, except for the players character, are simulated.
This game is loosely inspired by the Nintendo's "Animal Crossing." I saw my brother playig it one day and noticed his character had a shovel. I asked if he could hit people on the head with it, for a hilarious cartoony response. The answer was no, unfortunately. I thought I'd make the game like this except you could hit people on the head with a shovel. Naturally this would only be fun If they reacted to what you did, but how far could this go? The problem with the characters in Animal Crossing is that everything they do is tightly scripted. How can characters made to be dynamic. Many game programmers dream of creating emergent behavior in their dynamic content. Is this even possible?
Imagine walking around a city of ridiculous cartoon characters. They talk to you and to each other. They tell you what they like and dislike. They tell you that they don't like it when you hit them with a shovel. They don't like it when Charlie down the block hits them with a shovel and ask if maybe you could do a favor and hit him with a shovel. And the shovel smacking is only one of the many things you'll be able to do. The point is, the characters "know what you are doing and they "remember", and this affects the way they behave towards you. These characters are not like the typical video game characters that sit around helplessly while you run their errends either. They can do all of the same things you can do. And they can talk to each other as well as you.
The original idea is based around concepts
-
Each character in the game can do anything the player can do. They do not sit around and wait for you to talk to them, but rather they have a simulated daily routine.
-
Each character can like or dislike objects, characters, places or actions. Each can observe what any other character does, including the player, within their vision and decide whether they like or dislike what is happening.
-
Characters can talk to one another and spread their information.
-
Goofy stuff should happen often. The game should be dynamic and things should change over time. The general feel of the game is one of mayhem and humorous mischief.
-
Goals and Challenges
-
-
To make the game as dynamic as possible. In a game each character may become your friend or your enemy. Maybe you'll see them a lot, maybe very little. Where are your favorite places? Can the game seem different every time? How can you make the game elements random but not seem like noise? Can the decisions a player makes, make a big impact in the world?
-
They characters should be complex enough to be interesting. Each character should seem different from the others, and should seem to have a life of their own. Their personality and personal experience should affect what they decide to do. The player should get a sense that there is a whole world around him and that much goes on behind his back.
How far does their AI model need to go at simulating their personality? Is it possible to make the model complex enough so that they seem life-like? Can a general behavior model allow each character to have quirks? What sort of group behavior will emerge?
-
The player should feel free to do a variety of things. No game will allow a player to do everything, but the player should be able to react to the people and objects in the world in a variety of ways.
-
The game should be funny. Is it possible to create emergent comedy?
Component: Agent AI
The Agent AI is the focus of the simulation. Each character should seem to have a life of their own, and the characters collectively should act as a system. Aspects of this are:
- Disposition
A Disposition, in this case, is a relationship between the character and something else: another character, a place,an activity, an object, or the player. It represents how much a character likes or dislikes that thing. Simply a reference and a quantity are all that is required for a disposition. The character will form these as that character interacts with things and they will effect the character's behavior.
- Knowledge
The character can "see" all that goes on in the character's own "cell." These are added to characters "memory"- a list of events that the character observes. There are enumerably many actions that a character or the player may take. Each action has a negative or positive effect on whatever entity the action is performed on. In addition, the character may have a "disposition" toward whatever object the action is performed against. This effects how the character interprets ths info.
So when a character observes an event, the recorded "memory" includes the character performing the action, the action itself, the object that is the target and the computed reaction, which is how much the character likes or dislikes the action.
- Communication
Each character can share his information with others. What the character decides to talk about depends on the importance of the event, computed by how recent the event is and how it affected the character. Each character knows the difference between what they saw and what they heard. Characters will talk to each other as well as the player.
- Scheduling
Each character has their favorite activities and their favorite places, but they will not simply do their favorite thing all day and night. The compulsion to do an activity will decrease as the character is doing that activity. They will grow "bored" with what they are doing and go on to something else. Here, a boring equilibrium should not be reached. Randomness and in-game events will change the character's priorities.
-
- Personality
The characters personality is determined by a series of metrics as suggested in the paper "Personality in Computer Characters" by Daniel Rousseau. Each character's behavior will be affected by these.
Goals and Challenges:
One goal here is to avoid equilibrium for the sake of extremes. The society should not have a predictable daily routine and there will be several factors to keep this from happening. Primarily, the player will have great power to stir things up. The player is an element of the system that is not under computer control, so the player's behavior is not likely to be systematic. In addition random or scripted disasters may befall the town. Overall, randomness will be introduced into every decission a character makes.
Component: Map
The map represents the city in which the game takes place. It will comprise all of the physical objects in the game.
structure:
Sections
the map is divided into sections. Each section is a large visible area. One section is loaded into memory at a time, this being the section where the player resides. The current section has the focus for computations for character activity.
Cells
The Section is divided into arbitrary quanta called cells. Each cell represents the perceptural area for each character inside it. Each character can "see objects in the cell. Nothing else exists except what the character "remembers."
- Objects
Each cell can contain a number of objects. An object is any physical thing in the environment. Objects can include buildings, walls, trees, and so on. The cell also has references to moveable items and characters that are inside. An object has a reference to a mesh and a texture for drawing. Also, whether the object is solid or not is stored.