Monday, April 26, 2010


Many improvements for KazRace for iPhone (now codenamed TheRun) since the last post.

It finally runs on the actual iPhone and the framerate is quite good. The XCode OpenGL ES profiles shows numbers above 50 Hz on my 3G, which is notoriously slower than the 3GS.
This means that I can comfortably expect it to be running at 30 Hz.
The underlying OS however will slow down the game from time to time. This is a multitasking environment after all, and the phone has to do its duties.

Running on iPhone was both simple and complex. The actual device connection doesn't require any special magic, but one has to generate some private/public key pairs and do some initial setup.

Actually getting this thing to publish will be more troublesome. The whole system is complex and requires quite a bit of reading. It doesn't help that I was doing all of it on my MacBook on a mere 13 inches monitor, going back and forth between the instructions on the browser and the XCode window.
(Note to self: I need a real desk !)

Alongside I've been developing the PC version too. The goal is to develop mostly on the PC side, where there is a build that is enhanced with whatever is needed to edit and debug.
For this and other reasons, I'm keeping the Objective-C stuff to a minimum... just some sample application skeleton !

Looking into some sample minigames for iPhone, I was impressed how easily some simple games can be done by using XCode and all the API/system stuff that comes with the iPhone SDK.
As for any platform, there is always some base high level and proprietary API that helps to make simple things very quickly... but that's usually also the stuff that more advanced developers never use for their own reasons.

In this case my reason for not using the Apple stuff is that I need to be multiplatform. At the very least I need a PC build (maybe one could be OSX/iPhone OS multiplaform ?), but it's also desirable to potentially target other phones.
Speaking of which, someone already got an Android version running !!
Pretty impressive, though, sadly, Android doesn't seem so developer friendly: C++ code is confined and cannot do things such as loading files on its own. to do that kind of stuff, it needs to beg its Java overlord.
Arghhh... c'mon, enough of this BS.. C/C++ is here to stay, and making it hard to use it is only going to make it hard to develop games or any other serious software.

Anyhow, here is a list of the improvements in TheRun:

- iPhone version running at good frame-rate
- Added a simple buttons GUI (using OpenGL and touch messages)
- Added game flow code to move between modules (main menu, game play, options, etc..)
- Added on-screen virtual buttons for steering
- Added accelerometer steering
- Added PC simulation of touches (single touch using mouse)
- Added PC simulation of accelerometer (a clickable window, see, picture)
- Major cleanup of road-related code in preparation for adding multiple stages
- Cleanup of code for car handling
- On PC, added a bird-eye view of the track to aid track editing for the future
-- Developer can click on track and drag around to instantly move to that location

...there is a lot more to do, but so far, I think things have improved greatly.

At some point I'll need some "art", especially for the GUI.
I've also been thinking on the process of taking pictures of new car models, and I have to thank my sister for buying a couple of small tripods and setting up a system to keep car models on a tripod (hint: involves some sort of sticky tape ;)

Oh and today was my first day at home. I'll be using my remaining holidays to the end of the month and after that I'll be officially unemployed ;)