Managing Your Game's Story On-the-Fly
Now we're ready to say goodbye to traditional flat-screen interfaces and start looking at immersive real-time 3D games. The instant that we drop an interactive camera into a real-time 3D world, the rules change. Many of the conventions of branched narratives and 2D input that we have become accustomed to are immediately discarded when working in a 3D universe.
Adding 2D navigational tools inside this sort of universe can be an acceptable and even successful part of the narrative. However, it is not the most intuitive solution in most cases because 3D worlds seem a lot like the world in which we live. It is logical to approach interaction in a manner that is more consistent with the manner in which we might interact with actual objects in our own world.
One of the most fundamental elements of life in our 3D universe is that it is dynamic. Things change over time. Now you can either look at this as a terrifying limitation, or you can see it as an awesome and liberating opportunity. I choose to see it as an opportunity.
After reading and understanding the chapter, you should
Know how to create characters that choose their own responses dynamically
Know how to randomize responses
Understand what actors and playwrights do about conflict and stories
Understand how to encourage actions that lead to conflict
In this chapter, you'll see concrete examples of several game elements, learn how to use object-oriented design to craft dynamic game spaces, and learn ways to make your characters and objects exchange information.
I'll talk about the pitfalls of exposition (the most common reason that stories and games don't get along), and then we'll examine conflict. Conflict is the glue that bonds games and stories together. You'll have a chance to get your Director 3D feet wet as we walk through the creation of Battle Ball. You'll see some simple examples of these concepts in action.
I'll discuss the importance of conflict, even in game moments that feature friendly communication. Every character needs something, and it should always cost your player something to advance his or her own cause. Finally, I'll talk about the importance of reducing predictability in your games by randomizing responses.
Creating Dynamic Plots
You may remember my introduction to plots from Chapter 1, "The Story: How Much Is Too Much?" Think back a second to the description of plot as a series of events, each unresolved and each more tense than the preceding moment. In a static plot, these events are always the same. They generally occur in the same order, and their content remains fixed. The manner in which characters interact remains constant. The strategies that led to success the first time you encountered the plot lead to success the second, and the strategies that led to failure the first time always lead to failure.
In a dynamic plot, the events are flexible. The manner in which the characters interact does not remain constant. It is deliberately variable. The effects of an action are unpredictable, just as they are in everyday life.
In a static plot, the princess always awakens when kissed by Prince Charming. In a dynamic plot, you can't be so certain. The princess may only be able to find true love with the dragon during this incarnation, at this moment of game play. Moments later she may shift her affections to the villain or an ogre. Characters are dynamic, ever changing, and full of surprises in a dynamic plot. (We'll likely place a few limits on that dynamism in order to prevent total insanity.)
Change is a central part of a dynamic plot. The characters, environment, and objects within the game are all subject to change without notice.
Although dynamic plots are a more logical approach to building real-time 3D immersive games, using dynamic plots versus static plots creates some new problems for the developer.
In some ways, dynamic plots are considerably more difficult than static plots to wrap your head around. In another sensethat they more closely mirror the personal experiences of peopledynamic plots can be much less cumbersome.
Spatial, Psychological, and Narrative Spheres of Influence
The concept of spheres of influence was introduced in Chapter 1. The simple game/proof we will create later in this chapter relies heavily on spheres of influence. We will use model-based spheres of influence to detect collision and interpenetration of spheres due to relative proximity. Think of this type of event as a spatial use of spheres.
Spatial spheres of influence are simulated physical areas surrounding 3D nodes that register and alert the system to collision events between nodes within the 3D world. They are spatial, because they use the distances and coordinate systems within the 3D world in order to work. The ball bouncing off trees in the forest in Chapter 1 uses this type of sphere of influence. The ball sees the tree, reads the angle of impact, and bounces off the tree in a semiplausible direction.
Although we haven't seen any other types of sphere of influence yet, they do exist. Psychological spheres of influence may be modeled in a similar fashion. Obviously these would not depend on the coordinate systems of the 3D world or on simulated physical proximity. Psychological spheres of influence are scanning for a different type of violation. These may include emotional violation, intellectual violation, and spiritual violation.
Remember, any interaction between two objects is an act of violence. Given that understanding, you can begin to access the degree of violation and compare it to the level of desirable violation (yes, there is such a thing).
There are simple parallels to this concept in everyday human behavior. Have you ever met a person who stood way too close while he talked to you? Of course you have. This is an undesirable violation of your personal space. Have you ever wanted someone to get closer than that for a hug? Of course you have. This is a desirable violation of your personal proximity limits. A hug from an enemy during a fight will meet with a different response than a hug from a loved one.
In the same sense, communication between people is rooted in this fundamental concept of levels of desirable and undesirable violation. Speaking is a violation of silence. Emotional expression is a violation of emotional tranquility. Intellectual curiosity is a violation of memory.
Substitute the word event for the word violation and this concept is both easier to accept and easier to translate into code. Any object, physical or conceptual, that has a rest state and an excited state may model dynamic states this way.
The last sphere of influence we'll talk about is an overarching story sphere. It has a default resting routine and is capable of being violated. This resting (or stasis) routine consists of the behaviors that the story sphere object performs in order to remain balanced and stable. It is not that hard to see that we'll be able to give our narrative sphere of influence a set of desired violations. The resulting narrative sphere object will work diligently to encourage the sorts of events it wishes would occur.
Exposition That Engages
One of the most common reasons that dramatic writing (play, screenplay, and game) fails to entertain an audience is the lack of active, well-integrated exposition. People get really hacked off when you feed them too much passive exposition. Exposition should be revealed as the result of conflicts. Exposition that is not evoked by conflict is passive.
Imagine a couple getting ready for a date. Now let's start a fight between them when she finds another woman's clothing in the sheets of the bed. It is not difficult to see that they will argue. Now is the time she (as your messenger) should introduce the exposition that reveals that he is a real dog. If it were done before this, it would seem contrived and forced, but as a product of genuine and relevant action, it works.
The same concept applies to a game. Don't tell us that the princess turns into a swan via lame text screens that we don't care to read. Let us work to find the princess, meet her, and experience traveling with her as she struggles to avoid revealing this truth to us. Eventually we'll learn about the amazing transformation either by witnessing it or by forcing it out of her through some marginally related confrontation. Either way, the results heighten the reaction and increase the plausibility.
When you add to all of this our desire to deliver dynamic rather than static exposition, you quickly identify a need for a fundamentally object-oriented approach to this problem. If we see the objects as the characters and intelligent agents within our environment, we can begin to form a model for the game.
One good way to visualize an object-oriented approach to dynamic narratives driven by the actions of intelligent agents uses a good deal of toilet paper. That's righttoilet paper.
I'm thinking of a Mummenschanz Mask Theatre performance that was insanely popular when I was a kid. Essentially, a giant head formed only of rolls and bits of toilet paper entertained us for a few minutes (see Figure 3.1). I suppose that we, as a culture, were easier to entertain in the late 70s.
Figure 3.1 The Mummenschanz Mask Theatre performance of the toilet paper face.
The comparison here is simple. Within this toilet tissue metaphor, the rolls of toilet paper that construct the mouth and eyes of a Mummenschanz puppet are networked dynamic objects with variable propertiesnetworked in the sense that a central intelligence object (the performer) knows the state of each roll of toilet paper. When the mouth roll is unraveled, we (the audience) perceive an extended tongue. These qualities are remembered by that central intelligence and every imaginable variant is attempted by the performer in order to explore the potential for response.
Now let's pretend that a computer-driven simulated intelligence controls the rolls of toilet paper. Our software dynamic object could do the same things. It can unravel and re-roll the toilet paper. It can try lots of variations and record responses to different combinations. It is even possible for the dynamic object to learn the effects of its self-modification on the environment. When the Mummenschanz puppet's tongue goes out, people laugh. The manner in which the tongue goes out affects how much people laugh. In this example, the rolls of tissue are not intelligent; human performers lend them intelligence.