12
\$\begingroup\$

I would like to design games with very high difficulty levels. I have read these questions:

Yet they focus on general game design and balance, and not on the particular topic of increasingly adding to the difficulty of a game.

I understand that difficulty is different for every game, so I would like to know if there are any general guidelines I could follow to avoid falling into common problems that there may be while designing games and levels on the hard side of the difficulty line, regardless of the genre of the game.

Some sub-questions that come to mind are:

  • How to ensure 'beatability' while designing insanely hard parts of game?

  • How to know it is possible to actually beat my game?

For instance, when designing a platformer, I could make a really hard sequence of jumping and dodging. Now, as developer, I know precisely how far the player character can jump, how fast projectiles are moving etc, but how can I ensure that the designed level is actually beatable?

I know that the most obvious answer is to try and play it, but then, the game would be only as hard as how good at playing it the developer is.

Does anybody with actual experience making hard games know of any tricks or guidelines I can use to successfully create a difficult game?

\$\endgroup\$

closed as too broad by Anko, Kromster, Josh Oct 24 '14 at 16:06

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    \$\begingroup\$ My question is about games in general, i just picked platformers as easiest way to specify what i have in mind. And im not after killing player, just how one can design extremaly hardcore moments and not making them impossible \$\endgroup\$ – 4rlekin Oct 24 '14 at 8:00
  • 1
    \$\begingroup\$ @Trilarion: Platformers are simple and their difficulty is more easily measurable, that makes the question answerable. Empirical measurement of difficulty in RTS or FPS is a lot harder. \$\endgroup\$ – Kromster Oct 24 '14 at 8:02
  • 1
    \$\begingroup\$ @4rlekin Okay in general this is quite a too broad question because there are so many different types of games out there. In strategy games for example you can increase the strength or number of the enemies until every player finds it hard. Obviously also there is no difficulty level that is equally difficult for every player because some player are just better than others. Maybe you just offer a range of difficulty settings and hope that all players abilities out there are covered. That's how it's done out there. I guess there is just no general formula of difficulty for all games out there. \$\endgroup\$ – Trilarion Oct 24 '14 at 8:07
  • 3
    \$\begingroup\$ @4rlekin I actually think opening such questions for each genre (you are interested in) would be a good idea, since each genre is a bit different and probably requires different solutions without a general formula for all types of games. But it's okay. I don't want to disturb this question more since I also cannot contribute much beyond player testing. \$\endgroup\$ – Trilarion Oct 24 '14 at 8:16
  • 1
    \$\begingroup\$ You could try to have individual tasks, which you yourself can test. Say you practice your game a lot and then you manage to set up a perfect situation in 1 try out of 40. Now you try to profit from this set-up to further succeed in 1 of 50 attempts. For these 50 attempts you can cheat and artificially create the perfect set-up you proved to be possible. But the user cannot cheat and his success-rate would be 1/40*1/50. All you have to do is to chain many of such challenges. \$\endgroup\$ – Gerenuk Oct 24 '14 at 8:57
19
\$\begingroup\$

It certainly depends on the type of game, and as always, there are no foolproof ways to increase difficulty, but in my experience, I have found that making difficult games/levels is much, much more difficult than making easy games/levels. Some reasons that come to mind are:

  • It is very easy to cross the line between difficult and plain impossible. I really enjoy very difficult games, but many times I see that a specific game or level is just too difficult, or even impossible, that I get frustrated. Remember balance is paramount.

  • Difficult games and levels are mostly about training and repetition. A player should feel that he's getting closer to finishing the level each time he plays and gets better at it. Making a level that creates this feeling is very difficult.

  • Difficult games and levels tend to have much more variables/entities than easier ones. Be it more enemies, more bullets, more curves or whatever, every single entity has to be placed and set up. Just the setup takes much more time than simpler levels.

  • The more complex the game becomes, the more possible it is to have a vulnerability that renders your entire difficulty scheme useless. Making sure that the game remains difficult for various playing styles is very difficult.

There are no foolproof ways to make your game/level more difficult, but I have some recommendations for the level designer:

  • I think you can only make a game as hard as you could play it yourself, not harder. Or in other words, "if you can't beat it yourself, make it easier". Because of this:

  • Make sure you like the game genre you're playing, and you have plenty of experience with similar games. That means that you're VERY good at the genre. I would say that at least 100~250 hours of play for each of at least 5~10 similar games would give enough experience to lead the design of moderately difficult levels. Extremely difficult games/levels (like IWBTG and similar) may require more time.

  • Make sure you keep on playing other games while you design yours. It's very easy to get too involved in your levels and make them just too difficult. Also by making levels you will notice new things that you may had not noticed before, and you may want to check other games to see how they deal with those things.

  • Even so, show the game to other people who have less experience with the title, at least to make sure that the goals of the game/level are clear even for newcomers.

  • Play, play, play and play the game. For a single action game, it may take dozens, or even hundreds of times to playtest each level to make sure they are balanced. Of course, the more difficult the levels are, the more you have to test them.

  • Make sure the game is easy to test. If you can change a level without recompiling, cool; if you can change a level without rebooting the game, awesome; if you can change a level without having to go through the entire game sequence, super; if you can change the level as you play it and rewind it to test your changes immediately, ultra-awesome. The shorter it takes for you to retest your game, the more you can play it and the better you can make your game come out.

  • Don't be afraid to throw away a level and remake it afterwards. As you learn more about the game you're making, your levels will be more fun. The first levels you made will probably have to be rewritten at the end. This also means that:

  • Leave the first level until last. The first level people play will probably have to be the best designed one, as first impressions count very much.

I have two specific experiences of two indie games I worked on, I would like to share (disclaimer: I made these games. I am including this information for illustrative purposes only. If you want more information about them, there are some links in my user page)

Game 1: action shooting game

Gameplay video: https://www.youtube.com/watch?v=n2t3nw4KQXQ

Game 1

This was my first full game. Enemies shoot bullets at you, and you have to dodge the bullets while attacking the enemies.

Making the levels for this game was tough. I had played several action and shooting games, and cleared some on moderately hard difficulties, but I have to admit I am no pro-gamer.

The first thought I had was to simply have more enemies as the difficulty increases, and have enemies shoot more bullets at you. Certainly, that makes the game more difficult, but sometimes you will end up in places where there are so many bullets there are simply no way to avoid them. Simply increasing the amount of bullets is just not enough to vary the difficulty of the game.

Another thing I tried was to vary the speed of the bullets fired. It is not trivial whether faster bullets make the game easier (faster bullets mean less bullets on the screen at the same time) or harder (faster bullets require better reflexes to dodge)

It is also possible to make the bullets harder to dodge, by having them move in unconventional paths, or have them follow you or something.

Additionally, it is possible to make enemies take more damage to destroy, or make the player take less damage to destroy. If you're mixing this with other techniques, make sure you don't go overboard, as it is possible to make the game unfair.

The game turned out to be very difficult. To be honest, it turned out a bit more difficult than I had wished, even on the easy difficulty. I made a huge effort to make sure the game was beatable, but I certainly believe I could have made a better job. I am considering making an improved version of the game with more balanced levels.

However, making this game was a huge learning experience for me, which takes us to:

Game 2 (rhythm action game)

Gameplay video: https://www.youtube.com/watch?v=tAYrbmpoS-8

Game 2

Packed with more experience, my second action game was of a genre with which I am much more comfortable with: rhythm games. I have played pretty much every rhythm game in Japan, and have gotten pretty high in the world rankings of a few of them. Making and balancing this game was much more enjoyable, but certainly not without problems.

The game consists of moving left and right while avoiding getting hit by bullets. The bullets are designed to come out in a way so you can easily avoid them if you move to the rhythm of the music that is being played. If you get hit by a bullet, you die. Lose all lives and it's game over. Live to the end of the song and you move to the next level.

Balancing rhythm games is much easier. Making the rhythm faster as the difficulty increases makes the game more challenging, but not unfairly so.

However, double the speed means at least double the bullets, and quadrupling the speed means four times as many bullets. I also made the more difficult levels have more bullets horizontally, so a hard version of a level has 10~15 times as many bullets as the easy version. We put every single one of those bullets by hand, so making the hard levels took the vast majority of the time to make and test.

So, The faster the rhythm, the closer the bullet pattern has to be to the actual rhythm of the song. Bullets on every second beat are much easier to place that bullets on every half beat. I went to make the game engine support changing the bullet patterns -during- play, which greatly made the level design much more enjoyable than having an external editor.

I really wasn't expecting the hard levels to take so much time to make (about 3 days for just the initial design of one hard stage vs 2 hours for an easy stage), that we had to made some sacrifices in other parts of the game to finish development on time.

But even so, the level design was pretty ambitious. I wanted to have a speed based level, a technical level, a reaction-type level, and I think we pretty much achieved what I wanted. The hard stages ended up pretty hard, but not impossible.

I believe the most critical factor in getting a much better result for the second game was the fact that I play MUCH more rhythm games than action shooting games.

So to sum it up: yes, making hard games is very tough.

I wonder what I'll do for the next action game...

\$\endgroup\$
  • 1
    \$\begingroup\$ @KromStern: Some times I find some very rare questions that are really fun to answer ^^ \$\endgroup\$ – Panda Pajama Oct 24 '14 at 8:57
  • \$\begingroup\$ @PandaPajama: nice to read it :) \$\endgroup\$ – 4rlekin Oct 24 '14 at 9:04
  • \$\begingroup\$ @4rlekin: It would be really cool if you upvoted the answer if you liked it. \$\endgroup\$ – Panda Pajama Oct 24 '14 at 9:11
  • \$\begingroup\$ Actually i'd like to do it even double if possible, but unfortunately i got downvote recently and effectively got stripped of upvoting ability \$\endgroup\$ – 4rlekin Oct 24 '14 at 9:15
  • \$\begingroup\$ @4rlekin: Oh, I'm sorry to hear that. I think it's a pretty good and fun question, and I upvoted it myself. Welcome to GDSE! \$\endgroup\$ – Panda Pajama Oct 24 '14 at 9:18
3
\$\begingroup\$

Platformer difficulty is about perfect timing of player actions.

I would use 3 main approaches:

Playtesting Let you level be played by players and adjust the difficulty appropriately.

Simulating That will work for simple levels and parts of levels. Make a simulation with all the moves required to pass the level part and see how much they are allowed to change to still let the player win. The stronger the restrictions are, the harder the level is to beat.

E.g. if player needs to jump over and crouch and jump over again, you can start off with making the perfect sequence mapped to time. Any imperfections (e.g. jumped 20px too early, crouched 100ms too late) could lead to loose. Now you can relax this schedule by allowing player to jump within -40..40 px interval and crouch within -200..200ms by making the jump platform wider and enemy attack shorter.

Reverse-simulating - Make a run on the empty level and then add pits/turrels/etc to make that run as restricted as possible, so that any change in sequence of key-presses makes the player exposed to an attack and loose. The more restrictions - the harder the level becomes.

\$\endgroup\$
  • \$\begingroup\$ I see how simulating can be useful in slow-paced games, but what about faster ones ? (as you say simple levels, just faster) \$\endgroup\$ – 4rlekin Oct 24 '14 at 7:17
  • \$\begingroup\$ good suggestions, just don't take the 10ms too seriously, games don't refresh fast enough for that normally (60 fps => 16ms) and human reaction isn't fast enough unless we are talking about edge cases. Just do testing with too many traps (unpassable) and trim traps no test player was able to avoid. \$\endgroup\$ – wolfdawn Oct 24 '14 at 7:39
  • \$\begingroup\$ well, it could always happen by sheer luck, that player will fit in such 10ms window, regardless of reaction speed. Though refreshing speed may be issue \$\endgroup\$ – 4rlekin Oct 24 '14 at 7:44
  • \$\begingroup\$ "Let you level be played by players and adjust the difficulty appropriately": If it only were that easy... \$\endgroup\$ – Panda Pajama Oct 24 '14 at 8:53
1
\$\begingroup\$

Rule 1: Do not use random behavior in traps and enemies. This is why Roguelikes could be problematic if they are not fine tuned as randomness could create massive difficulty spikes if not handled correctly.

The point is only making the game hard to beat; this may sound obvious but you also need to convey to the player what challenge they are facing and why they failed, otherwise it would be just one of those trial and error "trapformer" games.

Platformers


tl;dr 1. Make the level completely unpassable. 2. Then slowly trim traps and bullets/projectile' timings that no test players were able to beat. Keep the traps that the test players managed to avoid. You can draw statistics on how many times a certain trap was avoided to measure it's approximate difficulty level. 3. To increase or lower difficulty dramatically, you can make a trap that normally does damage insta-kill the player instead and vice versa.

longish version:

  1. Throw in all the possible traps, turrets, spikes and flaming balls of lava you can think of to an excess into the room you wish to make extremely difficult.
  2. Make them run automatically on a timer (so the behavior repeats itself) or make them activate as a response to player movement (i.e the lava ball spawns when the player approached). The point here is do not use random behavior as it is extremely hard to test.
  3. Play the level over and over while doing your best and avoiding as many collisions with death-traps as possible (you could also let a very skilled alpha-tester play instead).
  4. Have the game code record every collision between your character and a death trap. Remove the traps you were never able to avoid in any of your attempts.
  5. To make this easier, you could slow down the game without changing it's rules, physics and behavior. This will let you simulate the playing skills of a player with extremely fast reflexes and lots of patience.
  6. You could increase the size of the bounding box of the collidable test character to make things a bit easier for the real players.
  7. Record you winning play through and systematically add obsticles that would have been avoided during your victorious run.

Just to be clear, when I say remove I mean that if the lava pit spawns 20 lava balls per 5 seconds and your test character touches two of them, remove these two spawns from the timed spawner. If you can't avoid a specific spike that is there 100% of the time, you could remove it completely or turned it into a timed trap that is active only 50% of the time (like an electrical barrier, a flamethrower or a laser). The same principle regarding the lava balls applies to turrets as well.

Also it's assumed you already have an idea for a level design.

Racers


Racers are surprisingly simple to tweak. You play the game and get the playtesters best times. Now you simply make the enemies drive nearly as fast as that. You could make them a slightly slower ghost version of the best player or alternatively, make them faster but allow the player to slow them down using weapons, collisions and what not.

You could also record the player's car behavior and path during the run i.e break, accelerate, turn right and left and then construct a course based on that path. Placing oil spills, rocks and other obstacles on the road that would likely lead to a loss (similar to platformers).

General


It does not matter what game you are making, record the winning key strokes, add an epsilon room for mistake and let the player lose otherwise. It could be DDR, endless runner and what not in this case. The idea is to visualize the obstacles in a compelling way instead of making an invisible wall of death or something that confuses the player. You need to let the player understand why they are losing over an over or they would quickly rage quit and for a good reason.

\$\endgroup\$
1
\$\begingroup\$

This may not be exactly on-topic, but I want to add my two cents about the global experience on high difficulty :

Please give a focus on player frustration. When I'm confronting a very difficult level that requires lot of deaths/replays, any tiny thing can make the player rage, especially if he can't focus on the difficult passage. More precisely:

  • how far is the checkpoint from the difficult part. If the difficulty is far away, the 2 minutes you have to play before going back to it is just so boring and frustrating that the player may abandon without having really tried the harsh part.
  • make restarting very quick. I can't stress out how frustrating it is when you retry for the >5th time, and then you can't skip/accelerate lose screen (or starting screen, or loading screen, for that matter). I've seen games which do this very well: for instance there is a countdown before starting but you can skip it by touching the screen.
\$\endgroup\$
  • \$\begingroup\$ I would say that wouldn't apply to all types of games. In particular, advanced play of rhythm games is all about making a flawless performance. Having to redo the entire song if you make a single mistake is what makes the game fun, and beating it rewarding. Making it trivial to redo just the difficult part would defeat the entire purpose of the game... \$\endgroup\$ – Panda Pajama Oct 24 '14 at 9:22
  • \$\begingroup\$ Also, strategy games where you can save and reload wherever you want is the easiest way to spoil all the fun. To be honest with you, I don't know what you're talking about, especially since the topic is "very difficult games". Making it easy to redo things is a way to make a game easier, not harder, which is what the OP is interested in... \$\endgroup\$ – Panda Pajama Oct 24 '14 at 9:24
  • \$\begingroup\$ Well about checkpoints, i played recently in CoD 2 on normal difficulty (come to think i should try higher one maybe) but then dense checkpoints and no health bar + healing over (short) time made it possible to go head first everywhere and win about 80% times. I don't deny it was nice in terms of "feeling competent" but this thought "it is too easy" kept bugging me. Though chances for player rage-quit are relatively small in such situation i guess we should also take into account "long-term satisfaction" which was also small. \$\endgroup\$ – 4rlekin Oct 24 '14 at 9:44
  • \$\begingroup\$ It might be my fault for too easy settings, but then again im rather average player and i played on "normal" which is second out of four total - so it shouldn't be that easy anyway. Such playstyle should be impossible in the first place i guess, but thats just my opinion - some may like world-war-2-set-quake ;) \$\endgroup\$ – 4rlekin Oct 24 '14 at 9:46
  • \$\begingroup\$ Well, the checkpoint frequency depends on the type of game. I was thinking about games where the difficulty is not constant. For example, imagine you have to run through 3 minutes of level which offer no particular challenge and thus becomes boring when repeated often. It's not about making the game easier. \$\endgroup\$ – BiAiB Oct 24 '14 at 13:11
0
\$\begingroup\$

You suggested testing it with a real player, however as the developer, you can create an ideal player (i.e. a computer) and test it with them - this works wonders for deterministic games (i.e. not random chance, the same moves will always end up in the same result). You can also use a real player and allow "cheats" like say turning back the clock 5 seconds instead of being forced to re-start the level - doing so will allow you to test faster, but still determine if the level is possible to beat or not.

\$\endgroup\$
0
\$\begingroup\$

Here is a way to do that on a platformer; this is probably possible on other kind of games, but I won't develop here.

  • First, implement a record/replay feature in your game [*]
  • Create the platforms of the level, and be sure they require a fair amount of jumping
  • Record yourself finishing the level (it should be easy at this point since there is no trap yet)
  • Add lava pits/killing spikes/enemies everywhere you can without interfering your recorded game (make sure that if player jumps a little sooner or later he will hit one of those killing things
  • Add some moving obstacles: Be sure that they will cross the position of the player moments sooner or later when he is supposed to be there (make sure that if he pauses too long or not enough, he won't be able to pass)
  • Check by replaying your saved game

Now, if you want just a couple of hard passages in your games, you can do that by hand but if you want an almost impossible to play game from start to end you may want to automatize the process: You may do that by writing a modified replay engine that will not kill the player when he hit a trap but instead delete the trap from the level

  • After you've performed the 3 first steps above (up to the recording), randomly add a bunch of traps (like a few hundreds/thousands depending of your level size)
  • run your recorded game on the modified replay engine to create a possible route and save the modified level.
  • That's it: you can move to the next level

Extra thought: you may even make the game procedural with a few changes: - Just create all your levels without any trap. Whenever the user starts a level, your game engine would have to: - add a bunch of traps (you may have various difficulty level with more or less traps) - run in the background an AI run of the level which delete the traps in the way - display the level and let the player trying to pass the level

Or you could script the game entirely, like in "I wanna be the guy" but then it's closer from "movie making" than "video game design".

[*] this is for level design only but you may consider leaving it in the final game since players which successfully finish the level will be very happy to brag about it by sharing the video :o)

\$\endgroup\$
-2
\$\begingroup\$

Just think, what can i do to make this harder? - on an entirely possible level.

Given that the game is a platformer (like mario)

More advanced enemies, less power-ups, moving screens/timers and less breathing room will guarentee that the player is on their toes.

Or, if you're really thinking of 0.001% possible, take an entirely possible game and take away that one feature that would stop them 100% of the time and replace it with a 99.99%

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.