I am making a tower defense game for iOS using Sprite Kit. I would like for my game to support an endless number of levels, like in Bloons TD 5. What approach should I take to implement this?
By "endless levels" do you mean that there is no limit to the number of waves i.e. the waves keep coming until game-over?
If so then you need to develop an algorithm that takes the wave number as an input and returns an set of enemies suitable for that wave.
The most trivial of these would be to take the wave number and return a number of enemies or as peudocode:
function CreateWave(waveNumber) enemyList = new list for i = 1 to (waveNumer * 5) enemyList.add(grunt) return enemyList
A more interesting approach would be to determine a difficulty rating for the wave, and a difficulty rating for each enemy type. Then you could add different enemies to the
enemyList until you have reached the desired difficulty.