After some thought (and playing), I have decided to no longer make the game endless. The goal is now to survive 100 waves.
The game should get increasingly difficult, to make surviving those 100 waves a substantial achievement.
Following this we are going to tackle how the difficulty ramps up, wave after wave.
Firstly, we are going to assign each wave a total 'difficulty amount'. This amount will represent how hard we want a wave to be.
As we progress from wave to wave, this number should increase - for now, we are going to increase this number using logarithmic growth. This allows us to make the game progressively harder, yet keeps the difficulty from spiralling out of control.
Assuming the difficulty of the Wave 1 is 20, the chart below shows how hard each wave following will become:
Right now those numbers do not mean anything, but if we give a difficulty number for each type of enemy, we can then add these enemies into the wave until we reach our target total difficulty amount.
Bunnies - 1 point
Mushrooms - 2 points
Wave 1 Target Difficulty - 20 points
Possible combination for Wave 1:
10 x Bunnies and 5 x Mushrooms
Further to this I've set from which wave different types of enemies can appear (up until another specified wave), to create variety, and also added special 'boss' waves.