Monday, May 27, 2019

Impact Mapping for Games

Advanced Scrum Master for Video Game Development Course, June 17-18 Denver Colorado

While working on a game, have you ever asked:
"Why are we making the player do this?  Why am I working on this feature? Why did we waste time modeling this section of a level in detail when the player doesn’t see it?"

Knowing the reasons for why we are working on something has tremendous benefits of engaging with our work and being able to contribute more creatively.

Impact mapping is a useful technique for doing this. It leverages the creative input of everyone on the team in finding the best way to achieve a goal as opposed to having a few people document a set of requirements that don't communicate that. It's also a good starting point to generate a product backlog and release plan.

The book "Impact Mapping: Making a big impact with software products and projects" is an excellent introduction to impact mapping, but it doesn't apply directly to video game development. However with a few variations, it can be very useful.

Impact Mapping for Game Development
An Impact Map asks questions
Impact mapping starts with identifying a goal for the game or a feature and then deriving purpose, incentives and finally implementation details to achieve the goal by answering the questions asked. The goal will be expressed, like a user story, as something that benefits the player in the game. This is the root of the impact map. Let's take a look at the questions the impact map raises by using PlayerUnknown BattleGround (PUBG) as a simple example:
  • Goal? This is the goal of the game or feature.  For example, the goal of PUBG is to win the game.
  • How? One or more ways the game's mechanics will serve the goal. For example, in PUBG you win the game by being the last player alive on the island. Note: other games might have multiple ways of winning the game...there can be more ways than one to achieve a goal.
  • Why? This level will list the incentive for the "how" mechanics. For PUBG, you become the last player alive by eliminating other characters and avoiding elimination yourself.
  • What? What dives into the specific features that will be worked on to implement "Why?".  For PUBG, this will include weaponry, combat, inventory, using sound, etc.
An Example of the Benefit
A frequent example I use in illustrating the benefits of including the team in understanding the purpose and reasons for a feature was from an experience with a racing mechanic team. When initially handed a set of requirements, such as complex police chase AI, it was clear that the team didn't have enough time to implement everything asked for.  So instead, we explored at the reasons behind requirements. 

The reason for police chasing the player was to incentive them to drive fast, which required the player to develop improved driving skills. When this was understood to be the purpose (rather than simply implementing the initial requirements handed to them), the developers found ways of implementing police that:

  1. Saved months of effort
  2. Focused on the player's driving skill, more than simply navigation
  3. Likely produced better results
This approach is a variation of the YAGNI principle ("You Ain't Gonna Need It"). By focusing on the outcome, you often end up minimizing the work to get there.  Think about the sets that they build for western movies.  Since old west towns aren't around anymore, they need to recreate them.  However, they don't create the entire town, but merely recreate by focusing on what the camera will see. This saves a lot of money and time.

Give it a try.  It can take less than an hour at the start of a release cycle and save you weeks of wasted effort.

No comments: