Aha I can force it to to 16-bit too, didn't realise that would make such a huge difference. So I shall, in the next quick test, when I've figured out how to fix that small lifecycle problem.
@theagentd: so... basically a Sprite is any little rectangular bit of graphics. Once upon a day on machines like the C64 we'd have only 8 "hardware sprites" and a character-mapped background which could be arbitrarily scrolled 8 pixels in any direction, and people designed games around this curious limitation and did pretty well at it though of course it did rather limit the designs.
These days, every single thing you see on the screen is made up from one or more sprites layered on top of each other. Each sprite can be arbitrarily positioned, rotated, offset, scaled, coloured differently in each corner, and arbitrarily transparent, and also each sprite runs its own independent animation program. One small exception in the Puppygames sprite engine is that things like those expanding circle effects and bitmap fonts are actually psuedosprites injected into the scene at the appropriate point. They're not just simple rectangles but arbitrary bits of dynamic geometry, so they're a bit more expensive to draw than plain sprites but that's why there's not that many of them around - we only use them for text rendering and the odd special effect like a radar range or strobe.
It may not look like it at first but Titan Attacks typically has around 500-1000 sprites on screen in any single frame, drawn at 60fps, and each sprite is animated. Some sprites are huge - for example, the background and HUD consists of a few really big sprites - and some are tiny. This is why it always makes me chuckle when people dismiss Puppygames' graphics as being no better than what you can achieve in Flash
I haven't yet seen Flash reliably demonstrate maybe a tenth of that performance, typically, and we've been able to achieve that in Java for about 8 years now through LWJGL. Our more complex games like Droid Assault and Revenge of the titans have literally maybe 4,000 - 8,000 sprites in every single frame. This is also probably why though many people like to dismiss our "retro" style as being trivial and simplistic, nobody has actually managed to emulate it or copy it yet
because it's actually a lot more involved than it looks.
So anyway: porting Titan Attacks to Android, we're aiming for 30fps on account of the fact that it's almost indistinguishable from 60fps on small phone screens and there's no point in aiming too
high just yet what with Dalvik being so lame. This means we need the average phone to be able to cope with at least 1,000 sprites @ 30fps, just to port our crappy Space Invaders game! We could maybe optimise some of that stuff away - at least 300-400 of those sprites are particles in things like bullet trails and explosions and smoke from ruined buildings in the background, so we'll be looking to tweak in those areas to get the performance we need.