Using Abstraction in Interactive Storytelling
The problem of plot versus interactivity, discussed in Chapter 3, sometimes takes another form: control versus interactivity. In its simplest form, the problem is phrased as follows:
If the story is to be truly interactive, then the player must be able to change the story. But, if the player changes the story, then the artist cannot control its development and the player will likely ruin the story.
The solution to the problem is, in a word, abstraction. Let’s look at some examples of how abstraction has solved some analogous problems.
Justice
The problem of exercising control over a complex system is an old one, and in every case, we find that the solution has always been to resort to higher levels of abstraction. For example, let’s consider the problem of providing justice to society. In small societies, justice can be provided by a single chief. The disputants present their case to the chief, who hears each side and then pronounces judgment. All very simple. But as societies grow, the number of cases grows and the chief—now known as king—finds himself overwhelmed with an impossible caseload. The solution is to delegate his powers of adjudication to lower officials called judges. This solution, however, creates a new problem: How is the chief to maintain control over the judges to ensure justice?
The solution is law. The chief declares the rules under which the judges will operate, and those rules are then applied to all concerned. The solution is not perfect. Judges can still apply the laws unevenly (if they are biased), misinterpret the laws, or even apply the wrong law to a given situation. But disputants who believe they have been shortchanged can appeal to the king in hope of a correct application of the law.
In this manner, the king can continue to exercise control over the society. The king gives up direct control of justice for indirect control. The king’s power is exerted through the laws that are applied by the judges. The ultimate power still resides with the king, whose laws control every aspect of daily life. The king may not be looking over the shoulder of each of his subjects, but he still retains indirect control.
Conflicting Laws
The problem with the use of law is not so much the application of law as the formulation of law. The king must bring great insight and wisdom to bear in creating his laws. Here’s an example from the first recorded set of laws. Nearly 4000 years ago, Hammurabi of Babylonia promulgated a set of 281 laws. Here are two of them:
- If anyone steals the property of a temple or of the court, he shall be put to death, and also the one who receives the thing from him shall be put to death.
- If anyone steals cattle or sheep, or ass, or pig, or goat, if it belong to a god or to the court, the thief shall pay thirtyfold for it; if they belonged to a freed man, he shall pay tenfold; if the thief has nothing with which to pay, he shall be put to death.
These two laws contradict each other; one says that the punishment is death, the other that it is 30 times the value of the stolen item. During the process of compiling 281 laws, Hammurabi forgot about the first law when he wrote the second law. It’s important that laws not contradict each other. The larger the body of law, however, the harder it is to be certain that a new law doesn’t conflict with an existing law.
All-Encompassing Laws
Another problem in formulating laws is that they must properly address every possible situation in which they might be applied. There’s an old, apocryphal story about the early days of the Environmental Protection Act. A provision of the law was that if a company wanted to build a factory in an air pollution administrative district, it had to compensate for any pollution the factory would make by paying another polluting company to install equipment that would reduce its pollution by the same amount that the first business was adding. In other words, if you’re going to emit pollution, you’ve got to do something to cancel it out.
Sounds like a good idea, doesn’t it? The law doesn’t punish owners of old polluting factories; it requires builders of new factories to install the equipment to reduce pollution in the older factories. No new pollution is added to the air district.
Then one day a businessman in Louisiana decided that he wanted to build a furniture factory. Unfortunately, his factory would emit a small amount of heavy hydrocarbons from the varnish and other coatings necessary to manufacture the furniture. So he searched for another factory in the same air district that he could upgrade. There were no other factories because it was a poor region with no industry—but the law must be obeyed. So when some bright fellow pointed out that trees emit heavy hydrocarbons just like varnish, the businessman had his solution. He bought a large tract of forestland and cut down all the trees. Problem solved.
Obviously, it was not the intent of the U.S. Congress that forests would be cut down in the name of the Environmental Protection Act, but the wording of the law wasn’t careful enough to provide for this situation.
This problem of abstracting reality to terms that can be addressed in a law haunts all lawmaking processes. Courts will sometimes annul laws that are so poorly worded that they permit entirely unintended results. It’s a tough problem.
The same thing applies to interactive storytelling: If your algorithm doesn’t consider all the possibilities, you’ll get a nasty screwup.