Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm currently working on a 2.5D space shooter and there will be a survival mode in the game. I'd like a few suggestions on how to tackle the enemy generation problem. This is not procedural generation at all, it's more like a sequence generation. The characteristics the system needs to have are:

  1. Increasing difficulty based on time
  2. Ability to use enemy patterns as input and not only single enemies
  3. It has to be beatable, it's quite easy to make a wall of thousand of enemies :)

I'm not looking for a fully-optimized, ready to use algorithm, just some suggestions or links to papers or articles. I have found many resources on procedural generation, but nothing that can be applied to this game genre. The game is 2.5D but the level will be generated as it was 2D, in addition it's not omnidirectional, it will scroll in only one way (this should make the task easier).

share|improve this question
    
If you have a 'bomb' ability/powerup/whatever which has limited uses but clears the whole screen, up to [numofbombs] 'walls of enemies' can be used. Ofc, the number needs to be smaller for easier difficulties, but could be much larger for 'unfair++' difficulty ;) –  sarahm Apr 19 '13 at 11:27
    
Here is an article that may help: en.wikipedia.org/wiki/Dynamic_game_difficulty_balancing –  amb Apr 19 '13 at 12:28
    
and another: tvtropes.org/pmwiki/pmwiki.php/Main/DynamicDifficulty –  amb Apr 19 '13 at 12:35

1 Answer 1

What I have done in the past is to have a single value to represent difficulty of each wave:

float wave_difficulty = START_WAVE_DIFFICULTY;

then every wave:

generateWave(wave_difficulty);
wave_difficulty += DELTA_WAVE_DIFFICULTY;

The hard part is taking the value and building a wave based on it in a fair and balanced way. Here are some ideas.

  • number of enemies
  • frequency at which enemies come
  • total health of enemies
  • spread of enemies
  • inverse probability of getting a powerup
  • intelligence of enemies
  • manuverability of enemies
  • targeting skills of enemies(use dead reckoning with randomness)
  • interval between waves

Everything that is not affected by the difficulty value should be constant and consistent, so that there is just a single variable to tweak for difficulty. This is to make level design and tweaking as simple as possible, which is incredibly important for balancing. It's a bit of a vague answer, but I hope it gives you some ideas.

share|improve this answer
    
Thank you for your nice idea, i'll add them to my feature list! –  Edoardo Tyger Dominici Apr 19 '13 at 10:18

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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