Ok, the next game: Smart Brick. You can think it as a 3D version of Tetris. Instead of filling an 2D plane as in Tetris, the user should fill a 3D volume using bricks that stretches on all three dimensions. It is not a fresh idea actually, there are several versions of 3D Tetris over the web; however, the key is not about the idea, it's about the control. Manipulating bricks in a 3D space, like flipping and movement in three dimensions is far more complicated than in 2D. It will leads to frustration and fun-less-ness. However, thanks to the multi-touch technology of iPhone, "3D Tetris" is made possible. Screenshots and demos will go online soon. Stick closely.
It is also planned to port Smart Brick on iPad - natively, not "stretched" up. But not until I get the product. I need to wait longer because I actually want the 3G version.
For the end of the post, a little tip for the mix C++/Objective C development:
You can have C++ classes as parameters of Objective C functions. However, Objective C does not allow namespace syntax, the "::", in the function declaration. So you need to put a namespace using at the top of your Objective C header. It's kind of nasty, and I still prefer plain C struct as means of communication between C++ and Objective C.