tl;dr Make the level unpassable and then trimRule 1: Do not use random behavior in traps and bullets/projectile' timings that no test player was able to avoidenemies. Keep the ones
The point is only making the test players managedgame hard to avoid. You can draw statistics on how many times a certain trap was avoidedbeat; this may sound obvious but you also need to measure it's difficulty level. Alsoconvey to increase or lower difficulty, you can make a trap that normally does damage insta-kill the player insteadwhat challenge they are facing and vice versawhy they failed, otherwise it would be just one of those trial and error "trapformer" games.
Platformers
The actual way this is done by professionals is simple.tl;dr
- AddMake the level completely unpassable.
- 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.
- 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:
- 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 difficultextremely difficult.
- 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.
- PayPlay the level onceover 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).
- Have the game code record every collision between your character and a death trap. Remove these traps or attempt the level again andtraps you were never able to avoid morein any of the trapsyour attempts.
- 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.
- You could increase the size of the bounding box of the collidable test character to make things a bit easier for the real players.
- Record you winning play through and systematically add obsticles that would have been avoided during your victorious run.
There is no other true way to maximize difficulty. You need to make it so only one tiny route is passable without dying. To make it easier, increase the bounding box of the character responsible for removing death traps during testing.
Just to be clear, when I say remove I mean that if the lava pit spawns 1020 lava balls per 155 seconds and your test character touches two of them, remove only thethese two spawns from the timed spawner. If you can't avoid a specific spike that isis 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.