I am really psyched about this. This isn't just test or partial code; the complete engine is working, with "little" things like audio and everything. I believe the game is fully playable at this point, though I haven't gone through it to the finish yet.
The discerning will note: FPS: 0.96432 (and so on) at the bottom. Uhoh... When I first noticed the FPS, I was horrified. I mean, that isn't just a little slow. Step 1, I tried the Release version. No difference. Oh dear.
Step 2, I turned on the debug tracing. This was even more horrifying, as even running a game tick (without rendering anything) was taking 30ms. Getting 30 FPS isn't likely when you only get 30 FPS without even rendering! And rendering a frame was taking almost a full second.
Step 3, I turned to the XCode profiler. After some tomfoolery with debug symbols, I got it going, and at last, some good news. Under the profiling, doing a game tick is really fast, a millisecond maybe. On further reflection, I believe that tracing from the iPad to the debugger (on a Mac) is really slow, taking almost a millisecond just to trace a line. So with tracing on, performance craters.
I'm left with the rendering code, which I know can be much more optimized. But, I got even better news from the profiler. The actual level rendering code is quite speedy. The vast majority of the bad performance is coming from the HUD rendering! Well, I can optimize the heck out of that... in fact the majority of the bad perf is from text rendering, which should be super easy to cache on a texture. So, that's good news.
Just to verify, I turned off the HUD and the game did actually render at 30 FPS. There were a few little glitches here and there, but I suspect I know what that is, and can optimize that away. So, all in all, good news.