Just an update, yes, I still play with this off/on. Minor tweaks, adding ideas, etc..
Anyway. I managed to improve the performance of the game by doing the following.
I found that ‘generating’ lists of meteors(parent=self) as well as projectiles(parent=self) at the start of the game helps. For example, 500 basic meteors.. 2000 laserProjectiles.
Each time a new meteor is to be spawned, I pop it from the list and move on.
Each time a projectile is to be spawned, I pop it and move on as well.
The Stage Timer is happy at 15 seconds (60 second Boss Round).
Each time the Stage Timer hits 0, the Stage Number increments. When this happens, if Stage Number % 10 != 0, I check the length of each list. If any list is less than a threshold, I enter a function that generates objects.
If any list count is VERY low, I append 1000/4000 meteors/projectiles to their respective list.
Otherwise, I generate less of each, just enough to double the threshold. This prevents frame drops due to excess generation mid-stage and small ‘loading’ times between stages is acceptable. Like 100ms loading times lol.
I found that generating initial lists that are >10000 or totaling ~20k children, the frames drop even if none of those children are in-view. I assume memory issues. So I try to keep the lists just large enough to sustain them to the next Stage.
So to put it simply... Create lists at startup with items, pop from the lists as needed, and refill the lists as needed between stages. In emergencies mid-stage, I am able to call the generation function as well, to prevent popping from an empty list.
Anyway, thanks again for everybody’s help with this!
Oops, this appears to be what @JonB was recommending all that time ago..
Thanks Jon, now I get it ;)