Saturday, March 08, 2008

Death by Misadventure

I'd like to bring up a dichotomy in game design. Not narrative vs. gameplay, but what I see as the "real" dichotomy: Simulation vs Scripting.

The weird thing is that these words don't really underline the basic problem: they simply describe the symptoms. The underlying problem is one of grain and agency.

It would be easier to show you an example of what I mean, I think.

Dynasty Warriors 5 versus Dynasty Warriors 6. In both games, you run around a battlefield and kill people. The play dynamic in that sense is very similar, so we're going to divide by killing people to simplify the equation. We can simply compare the rest of the game.

In 5, the game focuses on your nation. There are a few dozen zones that can be controlled by factions, and you win by controlling all of them. There is a remarkably interesting method of issuing edicts and so forth. Each zone can be improved, attacked, suffer problems, and so forth. Each zone also tends to provide access to specific upgrades that you can take with you into battle, such as tigers or the kill-o-matic charm.

It's like Risk, but with a bit of Civilization added in.

In 6, the game focuses on the stories of the characters. When you begin the game as a character, you are faced with half a dozen conflicts that are specifically geared towards the character. You are given cut-scenes with full voice acting and so forth to further the character's arc.

There is no control over this: you proceed from battle to battle. Instead of giving you control over a detailed nation, they let you improve your character a'la any modern Final Fantasy game.

Now, 5 is simulation, 6 is scripting. (The combat section in both is mostly simulation.)

Which is better?

Well, if you've been reading me for very long at all, you probably have the strong impression that I prefer one over the other. But that isn't really the case.

Simulation is invaluable in providing play. You simply cannot script in deep play. The harder you try, the more bogged down you get.

So if you want to have any play that keeps players playing, you need simulation. You need to have very high-grain interactions that are under the player's control. Whether this is moving around a battlefield stabbing things, trading stuff between cities, tweaking your character's progress, or building a robot. You need simulation because it gives the player something to do.

But simulation is limited to the things you simulate. You can simulate a battle, you can simulate an economy, and so forth. But they will follow only the rules you create for them.

Scripting allows you to inject things from outside the game. With scripting, you can make the enemies spring a trap without needing to write up an algorithm for trap-springing. You can make a player leave to star in a TV show (and then show snippets of the episodes) without needing to write up an algorithm for leaving for and filming TV shows. You can make a castle collapse without needing to write up a structural simulation. You can make a wife and a husband not get along without needing to write an algorithm for simulating marital bliss.

While you could, in theory, write simulations for every single little thing you ever wanted to put in the game, it's prohibitively expensive and complex. Also, you still will have a very hard time injecting a meaningful theme into your game, even if the computer has the theoretical knowledge of themes. They just cut across too many layers.

Okay, in honesty, to me the ultimate game would be a system that simulates a million billion things including theme-building.

I also want to live on Mars for two hundred years, then move to Alpha Centauri.

In the reasonable scope of things, I think that scripting does have an important place in games. You should think carefully: what is your gameplay? Simulate it. What drives your gameplay? Script it.

Yeah?

5 comments:

Patrick said...

Yeah, beautifully illustrated.

But you might be (can never be too sure) overlooking the thematic implications of certain types of gameplay. For instance, DEFCON simulates units moving around, 2-d trajectories of nuclear missiles, time-queues in actions (including general movement) and the X/2 point calculation for non-symmetric target centers (cities). It scripts the geography and city names of the world we live in, which accentuates the basic psychological process that you end up developing as you get better - the cold, calculating optimization of megadeaths. This algorithm is given the context of being about nuclear war by the (extremely light) scripted content. So ultimately it's a dance between the two, even in something is is almost all simulation. It's just a question of what ratio suits the psychology of your game.

Do I get an "A" or what?

Craig Perko said...

I don't know that I'd argue things like names to be scripting: there may be an important difference between scripted CHOICES and scripted COLOR (such as names).

It's something I've been thinking about, but I haven't decided one way or the other.

Assuming there is no difference, then you're 100% right.

DmL said...

So have a game where you also simulate where to put your scripting.

Or have the simulation simulate "importance of scene"... so when the machine says, "Oh this is important!" You take control away from the player and put black bars on the screen.. and the player will add the significance. : ) Weird.

Craig Perko said...

I don't really understand how that would get around the issue, but it would be interesting to see.

Patrick said...

Persuant to Dave's idea:

After playing a lot of Harvest - Massive encounter I dreamed about a grid with little sparkles moving around (a graph analogue to Rocket Heart perhaps?) and in my dream each spark had some code attached to it, as well as code regarding what kind of code to pass or not. A memetic network where the memes are little bits of code. Sounds cool, huh?

In regards to DEFCON, the names of the cities only make sense in the context of the geography. That's the key. They scripted the world map. So in that instance there is no difference.