I've run into some baffling frame drop issues on ipad (and to a lesser extent, iphone5). My game involves a single screen environment where an object bounces around and rams into things (think billiards). The engine uses pure math to deal with object collision and deflection. The collisions are just radius checks that use the Advanced Direction Object to get distance every frame the player object is moving (using a For Each loop). I can have anywhere from 6 to 20 objects for the player to calculate against.
On ipad2, I am seeing a pretty consistent drop to 30 fps when the player is moving or when the object count increases to anything over 5 or 6 objects. I have tried disabling all my collision routines but there seems to be no affect. No matter what I do to regain frame rate, nothing seems to work. There are even times when just sitting idle on the screen causes a drop to 30 fps. My general object count at any time is around 200 in the debugger.
I should also add that the game is at 160x240 window and 180x284 frame resolution. The assets are tiny, ranging from 16x16 to 48x48 for normal objects. The background is half the size of the frame and tiled once.
I have done the following to try and optimize:
1. Color Reduction: ON
2. Group all loops and enable/disable them as needed.
3. Create object (like bullets) at Start of Frame and keep them in a pool offscreen. This is to avoid too many create/destroy actions, although I saw a slightly worse frame rate when I did this.
4. Direct 3D 9: ON
5. Vsync: OFF
Can anyone suggest a more direct way to track where my problems are coming from? Is anyone at Clickteam able to run any sort of profiler to see where I am being inefficient? I have spent 3 days now toggling different groups of my code on and off and I am not seeing any real change.
Any help is appreciated,