Exploring Game Systems With PvZ

I'm going to do a little bit of a dive into how games play with the variables in their systems to become the games that they are. Doing this well is difficult, and exploring games that do it well is part of my research for my new game. This idea is more thoroughly explored in this IndieCade talk by Jon Blow and Marc Ten Bosch (though in their case, I think they're talking less about adding gameplay elements as much as wringing out every last interesting bit from the fewest systems possible).

Right now I'm designing levels for my new game, and am struggling to feel confident in my ability to keep levels interesting. I semi-recently showed the game to Carter Dotson at an Indie City Games meetup. He suggested I look into Plants vs. Zombies as an example of a game that varies and teaches its systems well. I had played the game in college, but that was before I had started making games myself so don't remember much about the design specifics. So let's get into it as I look at the design of Plants vs. Zombies, and try to learn some lessons for my own game.

Introducing Systems

Plants vs. Zombies introduces the foundations of its systems in the first level. The mechanics introduced are the following:

1. The play-field is a strip of grass.
2. One one end is a house that you have to defend. 
3. On the other is a street where zombies come from.
4. You click on suns that fall to the playing field to give yourself "sun", the game's currency.
5. This "sun" currency is spent on buying plants, and purchasing these plants has a cooldown.
6. Plants defend your house from the zombies.
7. Zombies attack your house.

Plants vs. Zombies' first level

If you think about it, that is a lot to digest in one short level! A lot of these initial rules are spelled out in text-tutorials that stop the game and tell you what to do. As an aside, I'm still not sure how I feel about this.*

With these basic variables the game sets itself up for a lot of variation. If you didn't know anything about the direction the game's design takes, you could probably make some interesting guesses at the options the designers had in the game's creation. All these gameplay system variables create a possibility space, and the game is just a subset of all of these combinatoric possibilities. Good games choose the most interesting of all these combinations.

I'm going to step through the variables I identified above and examine the system components, and a tiny subset of their possible gameplay variants. This may seem like a pointless exercise, and a lot of these are somewhat obvious. But doing this always gets the design part of my brain going. It often makes you think of a lot of games that "could have been", especially since a lot of great games are just other games with certain system variables switched out or modified. This is, of course, not a complete or definitive list.

1. Play field is a strip of grass.
Components: length, number of strips, affect on game components sitting on the field
Possible variations: a varying number of strips, strips of varying length, strips that only certain units can exist on, strips that eat sun faster if it isn't picked up, etc.

2. On one end is a house that you have to defend.
Components: position, vulnerability
Possible variations: changing the number of zombies the house can absorb, changing the position of the house, making the house immune for portions of time, etc.

3. On the other is a street where zombies come from.
Components: position, visibility
Possible variations: Change where zombies come from, show or hide which zombies are going to spawn this level, vary the lookahead the player has on which zombies are coming in which lanes next, etc.

4. You click on suns that fall to the playing field to give yourself "sun", the game's currency.
Components: speed, value, position
Possible variations: change how frequently suns fall to the play-field, change how much currency each sun gives you, change where the suns fall to the play-field, etc.

5. This "sun" currency is spent on buying plants, and purchasing these plants has a cooldown.
Components: plant cost, plant cooldown
Possible variations: plants cost different amounts of sun, plants have varying cooldowns, certain plants have a shared cooldown while others have an independent cooldown, etc.

6. Plants defend your house from the zombies.
Components: defense mechanism, position on field, benefit granted, toughness
Possible variations: plants that shoot a single seed, plants that shoot many seeds, plants that have short range, plants that freeze enemies, etc.

7. Zombies attack your house
Components: attach mechanism, position on field, disadvantage granted, toughness
Possible variations: zombies that shoot back at plants, zombies that move in a zig-zag pattern, zombies that have a local buff for zombies on the tiles around them, zombies that can take a lot of hits, etc.

Once you list it out like this, you see that there's a game basically waiting to be excavated from this possibility space! But now comes the hard part: figuring out how to structure your exploration of this possibility space in a way that is interesting for the player and will maintain their interest. As you can guess, the last two systems seem to be the most rife for possible variations. There are so many components whose values can be modified in interesting ways! So unsurprisingly, those are the two systems that the game designers at PopCap focused on. 

You can read part two of this series here.

* The current mantra of independent designers is that tutorializing is one of the biggest problems with modern game design. However, Plants vs. Zombies has a pretty good mixture of an initial explanation of the systems while still having the player discover portions of the systems just through play. The battle in my head is that Plants vs. Zombies seems to have hit an audience of both players familiar with games systems, and players who don't play a lot of games in a very successful way. Non-tutorializing always sets a certain level of expertise (e.g. things that move are often moving to indicate that they can be clicked on) that may or may not be met. Anyways, that's probably a discussion for a different post.