Saturday, November 27, 2010

Difficulty

I made a few remarks about this topic in the last two posts, that is, difficulty in games. I think this is probably the hardest thing for a game developer to get right. The important thing to discover is the difference between challenging and hard.

When a game is challenging, the player is kept on their toes and have to use most of their ability to win. When they mess up, there are things that are easy to see which they need to fix. For instance, in street fighter, if you keep getting punished for throwing out some move that is -23 on block, it's not too difficult to realize that unsafe moves are called that for a reason. Stop using that move in that situation. You have only yourself to blame for getting beat for doing stupid things.

On the other hand, if a game is just plain hard, things get really frustrating. It's no longer a feeling that your skill beat the game. Now you just feel that it was luck. If you're playing street fighter and all of your cross-ups (requiring your opponent to guess if they need to block right or left), or your high-low mix-ups get blocked, its hard to win and it seems futile to attempt to. That's the thing with computer opponents though. They don't need to guess. They can have the ability to know what side an attack will land on. Game developers need to make them "stupid".

Of course it's not just about the game being hard. You also need to make things challenging, but not easy. If its easy, then its not fulfilling when you win. It seems to keep up the challenge in a game, there are a few routes a developer can go.

1) Introduce new enemies: If you are further into a game and you see a new enemy, you will not be surprised if he takes different tactics to kill or needs more work.

2) Increase the number of enemies spawned: If you are going to keep seeing the same enemies and their abilities will be the same as every other time you see them, you increase the difficulty of that encounter by having more enemies that need to be killed. You don't want to swarm them, but keep things hectic enough so that they can't pick off guys one at a time either.

3) Keep enemy difficulty a constant: No matter where you are in a game, enemy type A will always be .75 of your strength and enemy B will always be 1.5 times as strong. As you get stronger, so do they. This sort of makes sense, but at the same time, you, as a character were doing all these crazy things to get stronger. You opened the blue door with the blue key and killed the evil robot to get the new gun. The enemies, on the other hand, did not. Technically you have no idea what a later game enemy was doing while you were looking for the blue key, but since enemy AI tends to be very simple and static, you assume that they have just been patrolling their area, back and forth, for the past three hours, waiting for you to give them a lead salad. Enemy B did not get a text that said "The Hero has leveled up. Better do some push-ups"

1 comment:

The Blaggernaut said...

I'm not really sure that those are three ways a developer can go, but rather he needs to go in all three simultaneously. What I want to see is the goblins you had to kill 10 of to become level 2 come back with reinforcements 25 levels later except now they have nukes. I'd think that JUST making the mob bigger or JUST keeping the difficulty constant would make for a boring progression. Especially the latter, I think would be more boring on its own than having a game that's too easy all the time. Different enemies at least would require a different approach. If all you ever encounter are groups of three melee fighters then all of a sudden you meet three casters, that would definitely make things more interesting.