Friday, October 12, 2007

Idiot's Guide to Navigation

Last post I talked about the importance of making navigation fun. I even talked about how to check whether it was fun. But I didn't talk about how to make it fun.

Here are my personal observations on the matter: I encourage people to post their own observations.

To me, it seems like making navigation fun boils down to three things: commitment, pacing, and juice.

Commit me!

In order to have fun running around the world, the player has to have to commit. As they romp around the world, their actions have to be nonreversible. Take a look: most games that are fun to navigate have strong elements of commitment.

In Skate, you're always committed: it's hard to turn around even when you're just skating, but jumps and grinds are even more one-way.

In Crackdown, a large part of the game is jumping from tall place to tall place. And, usually, it would be pretty hard to jump back even if you wanted to. Climbing is technically reversible, but pointlessly so, since if you wanted to go down you'd just jump it.

In Katamari Damacy, once you pick up a new object, it's not like you can just drop it again, unless you're the sort that enjoys slamming into large stationary objects. It's all nonreversible.

Contrast this to games with boring navigation: in Bioshock, you VERY rarely commit to a movement. The same is true in RPGs and nearly all FPS games.

Of course, when I say "commit", I don't mean "fire and forget". Most games these days let you change direction somewhat while in the middle of a jump, and for good reason. The point isn't to take agency away from the player, it's to make them choose to limit their options for a bit.

Nothin' But Net

The other half of the actual play of a good navigation is pacing. Some games with good commitment have poor pacing (in terms of navigation), and some games with no commitment have great pacing.

Pacing means variation, both on a local and global level. In Crackdown, it's not simply leaping from roof to roof. You have to spend time climbing from ledge to ledge, or running across open areas, or looking for a well-positioned ledge, or billy-goating up rock faces...

Similarly, in Skate it's not simply about grinding (or whatever you like best). You have to take the lay of the land into account, your speed, and even then you're allowed to tackle a grind from a hundred different angles and styles, with or without jumps... just in grinding, the choices are limitless. However, the game also has global pacing in that not everything is grinding: you've got manuals, jumps, half-pipes, etc.

This is where most platformers fall short. Although Megaman and classic Mario commit to the various jumps, they're basically all in the same pattern. Platformers like Sly Cooper get this right, and if you haven't played it (the first one), then you should.

Generally speaking, to get enough variation you need to have several "modes" of navigation and have a lot of control within the mode AND you need to have a lot of fun ways to go and limits on going from mode to mode.

For example, Skate: grind, jump, manual, coast. The tricks that you can do while in any of those modes are largely limited by how much time you have before you have to be in position to hit the next mode. IE, in a half pipe, whether you can pull a flip off depends on whether you go high enough to have that two seconds of air time.

More: Crackdown. Run, leap, cling, (fight?). Measured in distance rather than time, a big part of the navigation is setting it up so that you transfer from one to the next at the right place. IE, you can't make that long leap to the next roof, so you instead leap to grab a ledge, then claw your way up the building to run across it...

Now Katamari Damacy seems like an exception at first glance, but it isn't. Katamari uses continuous variation rather than discrete variation, altering the elements of dodge, hunt, gather, and follow (a line of debris) to different proportions depending on your size. In fact, a big part of Katamari is how well you can see what's ahead: when you're small, it's a very claustrophobic game, and as you get bigger, it gets more open, less dodging and hunting. So, yes, Katamari has modes, which is mixes like paint rather than switching like gears.

See if you can dissect Prince of Persia using this...


The last element is making the experience juicy enough. This is actually just a method of telling the player how "well" he is navigating in whatever way he is navigating.

For example, in Skate, depending on how "straight" you land a jump, you'll get various sounds: a nice roll, a thump, a squeal... and you can say, "oh, I didn't land that quite right".

Similarly, in Katamari, when you pick something up awkwardly, your roll becomes "lumpy" and you can say, "oh, that was a big one!"

In Crackdown, landing produces a louder thump and more cracks in the pavement the longer you fell, and your guy has a highly satisfying mid-air flail. And, of course, exact landing spot is more important (and therefore juicier) than in many other games, even Skate.

Compare this to games with boring navigation. There is no juice for walking from point A to point B in an RPG or most FPS games. You are simply in a new location. Some games, especially those intended for younger audiences, throw in things that seem juicy but aren't. For example, something that goes "SPROING!" whenever you touch it. That's not juicy. It becomes juicy if it goes "SPROING!" differently when you touch it well as opposed to poorly.

So, follow these three rules and I think you'll have fun navigation.

Commitment, pacing, and juice.

What do you think? What game do you want to design, and how would you make it fun to navigate?


Olick said...

Well. I am currently making a game in XNA for a class. I won't have it completely done for the class. But that doesn't mean I won't.

The idea is you are Fatman. The fat powered super hero. The concept is well.. silly. Anyways the fatter he is the stronger he is and the FASTER he is.

The game is a 2d platformer.

The idea is to have a character who ramps up in speed while he runs. Obviously when he's going faster he has retain momentum in the air. So the goal is to have him victim to the momentum, but at the same time I want him to feel controllable and responsive.

So Fatman always has a minimum speed. This is to make both stopping and simple platforming easier. As he gets fatter, though, his top speed increases. His minimum speed decreases. Stopping will be faster than speeding up, probably 2 times faster, and more if you hold the opposite direction.

Unfortunately, so far, all I have is the intuition that this will be controllable and fun. When cooking it up I didn't think of Commitment or Pacing. I guess I always thought of the screen shaking when he dropped far. Its not y'know.. exactly constructive to gameplay. Not a reward. But it should be satisfying.

Additionally I was thinking of adding some sort of wall-jumping when he was fat. Basically it would be a rebound-jump. the faster (and fatter) you are the more you'd squish into the wall, and the longer you'd have in order to push the jump button. Naturally the further in you are squished the further you go in the jump.

Being skinny will have its advantages too. From obviously coded ones like he can stand on thinner things, or not break stuff, to more subtle things like.. he can stop very easily. And his minimum speed is higher so he's more responsive. Good if I do like.. moving platforms.

Anyways. The only thing I thought about was Juice. Commitment wise, it will be harder to go back when you have high momentum. If you stop you'll stop going faster once you turn around. Pacing I always considered level design, not algorithm design. Altho I suppose with the momentum I could set up some really nice moments.

Patrick said...

Very informative though perhaps unsurpising that your title is a bit insulting. Es ok, the games I have in the pipe check out for the most part I think. I'll keep this in mind though.

Olick, XNA sucks dude, if you know how to avoid re-draw bottlenecks, Flash is a million times better for 2d from a market perspective. Knytt rules, for instance, but I've never played it because its fucking Windows only. I played that Flash Portal game though, not quite as good I'm sure, but more people will play it because its convenient to do so.

Olick said...

I understand that XNA has a lot of overhead (since it is managed code.) Also that it is a bitch to distribute. Flash is not much better from an overhead perspective. Knytt only succeeds since it is a crazy simple game, requiring very very few calculations. What I am doing also requires similarly few.

XNA has the advantage of being easier. You don't have to spend 10 hours (not all at once) looking for the arcane way to set it up, only to find using the SDL_Image load function causes your game to crash.

Flash, the only example you gave, by comparision, is ALSO something you have to struggle against. My limited experience in scripting in flash (comprising of the demo and a few follow your cursor style snakes) was not very.. intuitive. XNA is the only game-programming environment I have not had to fight to get to work for me.

Besides the class required using XNA.

Just for the record, coming up with my own architecture for a game is my end goal. XNA just lets me practice pacing and designing games until I have the massive amount of time (and knowledge) necessary to build one from scratch.

What flash portal game are you talking about? N? Most Flash games, additionally, set the bar very low. This is an internet culture thing, not an engine thing I realize but.. still.

Craig Perko said...

XNA isn't bad at all, if you recognize the limitations and the scope it's intended for. Right now, I'm doing a lot of work in WPF, which is also very limited... but within its scope, it's quite useful. Flash is the same way.

Anyway, Olick, it sounds like it has some potential! The 2D platformer is inherently limited in how much commitment you can get out of it because of the limited view range. In a 3D game, you can see far ahead, and jump for something that might be five or ten seconds of airtime away. Unless you're doing something really unusual, you simply can't see that far ahead on a 2D game.

On the other hand, what 2D games can do is alternate modes of transportation such as rolling, grappling, and bouncing. I don't know about grappling, but the other two seem like they would suit Fatman well. :D

As ever, if you get something playable, I'd love to see screenies or even play it some. Making games is more important than theorizing about them.

Craig Perko said...

If you do decide to go for rolling and/or bouncing in addition to running and jumping, remember that the way you transition between modes is a lot of the fun and depth.