Spider-Man: Web of Shadows

I just finished playing Spider-Man: Web of Shadows, the game that I worked on when I was a intern at Treyarch. My overall impression? I am both excited and disappointed at the game.  It is honestly quite exciting to see something you've worked on finally in stores and onscreen. After playing the game, however, I was terribly disappointed at how much things didn't improve from when I was there.

So, I have been inspired to do a series of posts about Spider-Man: Web of Shadows.  Each post will try to tackle specific design lessons I have learned during my stay at Treyarch.

Let's get to it!

Part 1: Designing a Combat System
I've always had a bias towards combat systems in games.  Mostly, it comes from growing up playing fighting games and beat 'em ups.  Coming into Spider-Man, the first thing I wanted to learn about was how the combat system was being designed.  

Combat systems are a tricky beast, mostly because, like locomotion, they require so many disciplines to come together - design, art, animation, programming.  The other tricky thing about combat systems is everyone thinks they're easy to design!  "Sure, I'll just think of some cool moves and it'll be awesome!"

Not so.

So let's break it down.  There are two parts that make a great combat system: style and substance.

Style is the part that most people get: awesome looking moves, cameras that zoom in to get a closer view of the action, cool combos... you get it.

Substance is something that people don't seem to understand as much.  Gamers will always talk about combat being "button-mashy" and this is obviously undesirable in a combat system. But what is it that makes combat button-mashy?

Meaningful Choice
Just like any other game design, combat design needs meaningful choice.  Why should I use move A and not move B?  Is the Ultimate Smash Move too powerful?  All these moves need a reason for their existence.  

Street Fighter 2 is a good example of a game where every special move is meaningful.  That's why characters have such a small moveset - because they are the exact tools that players need to get the job done.

The flipside to that, though, is that because of it's strategic nature, Street Fighter 2 has such a high barrier to entry.  Also, action-adventure games typically have more to it than just fighting, so players will be expected to learn more than just the combat system.  This brings us to...

Forgiveness
Because we want to set the entry bar lower for our action-adventure players, combat systems in these games will have a subset of moves that are "gimme moves," meaning they will typically work in normal situations.  The ever-familiar "X, X, X" triple punch combo comes to mind.  This is important because we still want players to feel a sense of power even though they don't completely understand the complexities of the combat system.

Intentionality
Typically, action-adventure games should have a couple of these combo strings.  But too much of these "gimme" combos takes away from the meaningful choice that we are seeking to give players. How do we rectify this? A common solution is to have the "combo ender" be a special move in itself, for example: X, X, X could be a simple punch-punch-punch combo while X, X, Y is a punch-punch-uppercut.  Again, the assumption is that each special move is meaningful in its own way. God of War uses this technique.

Another solution is to have a directional arrow + button combination, ala Devil May Cry. Holding back on the d-pad + attack is an uppercut.  This technique is used in more "hardcore" games, which are expected to have a bit of a higher barrier to entry.  

Whichever technique you decide to use, the point is simply to enable the player to perform these special moves in a predictable manner.  If players can easily grasp how to perform the moves, they spend less time worrying about the "how" and more time worrying about the "when" and "why."

Enemies
Now that we've tackled the player moves, it's time to talk about enemies.  Enemies are challenges placed in front of the player to test how much they have mastered the combat system.  Therefore, each enemy type must be specifically designed to provide a special kind of challenge to the player.  Most games will simply make enemies stronger and tougher as the game progresses.  While this does add challenge to the game, it is the number one reason why many action-adventure games end up being repetitive.  Simple things to change player dynamic with enemies could be: 

1. ranged enemies
2. enemies with shields that need to be broken
3. enemies that need to be attacked from the back
4. fast enemies, need to be hit with fast attacks or area attacks

One thing to take into consideration when designing enemies is: what skills do you want to test? Ranged enemies can test both players' abillity to dodge and use ranged attacks.  Enemies with shields or those that are fast test players' ability to perform specific special moves.  Does your player have a jump attack?  Flying enemies give them opportunities to use their jump moves.

Enemy Quantity vs. Attack Arcs
Attack arcs are how wide and far attacks will reach.  Typically, you will want to scale the number of enemies a player is fighting at a time depending on the size of his attack arcs.  The equilibrium we are looking for is: the more enemies you want a player to fight at a time, the wider his attack arcs should be (and vice versa).  This helps us give better pacing to fights.  If these numbers aren't in balance, fights can either be too long or too short, and thus can be frustrating (especially if they are too long!).



God of War uses wide attack arcs, so they can have Kratos fight many enemies at once

Whew!  That was a lot!  And I'm not even done yet... I still have to talk about pacing between attack and defense phases in a fight, animation interrupting, integration with locomotion systems... and I haven't even gotten into how all this relates to Spider-Man!

How exciting! Stay tuned for part 2!

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS

GDC

I just thought I'd write a short bit about GDC.  This was the third GDC I have attended, and I have never felt so out of place.



Not a student
In the past, I have always come to GDC with some sense of purpose: it used to be that I would go there to meet people and apply for jobs.  This year, I wasn't really looking for a job so I wasn't sure what to do with myself.  I suppose I should have gone to parties and tried to meet new people, but I really wasn't in the mood.  Maybe I'm just getting old.  It was nice being able to meet up with old friends, though.

Insecurities
For some reason, of all the GDCs I've attended, I felt the most insecure this time around.  Maybe it was because I spent so much time in the IGF Booth, but I began to question whether or not I was doing enough to call myself a designer.  Some of my friends are working on more high-profile games, and I wondered if I should have taken that position with that higher profile project. Ah well, the grass is always greener...

Resolutions
So this GDC wasn't all bad.  If anything, it lit a fire within me to be a better designer.  It made me want to push my abilities further so I wouldn't be so insecure next year.  To that end, I have resolved to do two things:

1.) Start working on my own game (it has been bubbling in my head for a while, so now I have to go and just DO IT)
2.) Work on my level design and level scripting chops!

That's it!  See you next year! 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • Twitter
  • RSS