New since my last entry is font rendering, a particle engine, playing audio, and support for drawing the game in both portrait and landscape orientations.
(Listen, you're way better off not asking just who 'Ken' is.)
This was chiefly made by porting my old text rendering code from Skirmish Online. Since that doesn't explain much, let me be a mite more specific. AngelCode produced a Bitmap Font Generator that produces, given various input parameters, a bitmap containing the desired character set, alongside a text file with the metrics of the various characters in the bitmap. The bitmap is loaded in as a texture on the iPhone, and the text file is parsed for the locations/dimensions/etc of each character. When text is to be drawn, a 2D quad is drawn for each letter of the string, using the texture coordinates from the font bitmap that correspond with the character that should appear. If memory serves, I believe I followed this NeHe tutorial on the subject way way back in the day.
(Particles and proper display in portrait and landscape.)
Using the accelerometer, it's a simple matter to determine whether the device is being held in portrait or landscape. The only real 'trick', since the SDL port has no notion of drawing in 'portrait' or 'landscape' is to execute a 2D transformation -- a rotation about the origin followed by a translation -- on the projection matrix whenever you wish to make the game appear to be in a different viewing angle.
The particle engine isn't all that fancy either, despite never failing to produce visually stimulating results. Spawned 'batches' of particles are all stored in a single array to minimize the number of OpenGL ES calls, not to mention they all share the same GL state data (colour, size, texture). I'm using point sprites for the rendering itself, which is thankfully supported natively on the iPhone hardware. I have no idea if the older devices support it though, so it's somewhat likely that I will need to implement a fallback implementation eventually.
Audio is harder to capture screenshots of, so you'll have to trust me that it is in fact present. It's a mite hacked together. And by that, I mean I more or less nabbed the audio example that was included with SDL and wrapped it up in my engine somewhat cleanly. There are a few other feasible options out there such as Finch or fiddling with SDL_Mixer or even getting dirty with raw OpenAL, but I'm more or less fine with the limitation of using simple WAV files for my sound effect needs. I will need to get around to figuring out how to leverage the hardware audio playback when it comes to playing game music though. Thank goodness there is a vast abundance of examples available. [smile]
Anyhow, that's the scoop. All of the major items on my wish list for a 2D engine are now satisfied, and it's finally time to sit down and write, say, a game. [grin]