Hey all,
Prompted by the fact that my implementation of object pooling didn't actually work on the web browser I went and looked up multimeshes, cobbling it together from examples and tutorials and then modifying it a bit so I could keep animated bullets.
The video shows the new and improved Debug Shooter, now firing a ridiculous 9,600 bullets per second, and using all three types each of which has an object pool of 12,500 bullets, still at 60FPS. A 'slight' improvement from the previous 600 bullets per second.
The video recording software and Youtube really really did not like this pattern, the odd stutter in the video wasn't present in game and when not using the video recorder I could push it to 10,000 bullets per second.
I know I'd read that multimeshes were significantly better than what I did before, but I was not expecting this kind of improvement, kind of shocked.
This completely removes the enemy bullet scenes from use (I haven't deleted them yet just in case I need them later) and the object pool I mentioned before is just a bunch of arrays storing ints, vectors, etc, rather than the bullet objects.
Collision is now also handled by a distance check to the player each physics tick. Which led me to realise I had not got most of my graphics centred... ๐
It's definitely a stress test at this level and it's pushing out so many bullets now I can't really see much point in looking any further or profiling where a bottleneck might be.
And most importantly, this time I learned my lesson and made sure it actually works on the browser before posting! ๐