We've found tablet devices with an ARM processor gets CPU bottlenecked. You'll even see FPS drops on Cut The Rope and other MS endorsed js games.
We were able to optimise to get an average 25fps (up from 16) on the Surface, which isn't ideal, but it's playable.
Here's what we did:
- Went through every loop and made sure stuff was only running when it absolutely had to. Changing every tick, to every 0.1 second etc.
- Only made objects physics if they absolutely had to be. We'd work out if it was impossible to collide with something, and remove the physics if so.
- Removed as many collision mesh points as possible.
We've found that number of sprites on screen don't seem to impact the bottleneck. I tripled object count with no detriment to performance on Surface.