Sweet zombie Jesus, what a stupid dialog box.

Eclipse Software Updates dialog
Sweet zombie Jesus, what a stupid dialog box.

Eclipse Software Updates dialog
It seems Apple have reinvented the job-system method for parallelizing tasks across multiprocessors.
I’m amused, because this has been a hot topic in games programming since the introduction of processors like the Playstation3’s CELL CPU, and has probably been around for even longer, but I’m too lazy to google any references.
Key findings from “Interactive Australia 2009” research, published by Bond University.
• 88% of homes have a device for playing computer or video games.
• 68% of Australians play computer or video games.
• 46% of gamers are female.
• The average age of an Australian gamer is 30 years.
• 84% of Australians aged 16-25 compared with those 50+ play computer and video games.
• The average adult gamer has been playing for 11 years.
• Half of all gamers play daily or every other day, a quarter play once a week.
• The average game play session is one hour.
• Computer and video games compete with other media leisure time, not with outdoor activities.
• 70% of parents in game households play computer and video games, 80% of these parents play them with their children.
• 78% of parents say an adult is present when games are purchased for their children,
• 92% of parents say they are aware of the games played in their homes.
• 75% of all computer and video games classified in Australia are G or PG (Classification Board).
• 63% of adults do not know that Australia has no R18+ for computer and video games.
• 91% of adults (including gamers and non-gamers) say Australia should have an R18+ classification for games.
What say you now, game-haters?
Well, using Xcode to build iPhone ready resources is a lot easier than I thought it would be.
I once had the misfortune of working with The Worst Resource Builder in the World. It would take hours and hours, and then crash or simply lie about having completed. Most of the developer’s time was spent trying to figure out what data they need to jiggle, just to be able to run a build. What was even more painful was that it was completely re-written to be distributed, without improving the reliability. The main change was that now you needed to walk around to random machines in the office and restart each offending builder.
Anyway, as I mentioned in a previous post, I’d like to be able to transform COLLADA files into my own model format, in a reliable and easy method as possible.
Doing the exact opposite of my previous experience seemed to be the logical start – make it simple. The simplest thing I could think of was to use make. And then an even simpler idea was to use Xcode, which would use make for me. It turned out to be correct.
So I had DAE (COLLADA model) files, my “convert_dae” program which generates LXTM files (Luxatron model file), and my Xcode project. Here’s what to do.
Thats it. From now on editing the DAE files means they get automatically converted from wherever they are and correctly added to the project’s resource bundle. Win.
This resource was pretty useful, and Apple have some good documentation on their developer site.
This is why programming in a language that hides the hardware from me makes me scared. Note the order of severity below – its not what most people would choose, but its correct:
Data alignment: Straighten up and fly right.
“If you don’t understand and address alignment issues in your software, the following scenarios, in increasing order of severity, are all possible:
- Your software will run slower.
- Your application will lock up.
- Your operating system will crash.
- Your software will silently fail, yielding incorrect results.”
Well written article, worth a refresher if you’ve forgotten why you should care about alignment.
First big COLLADA mesh converted and loaded – over four thousand triangles of ducky goodness.

Sony Duck
There’s still lots of work to be done in the converter:
I have now have
There is a simple model class that contains a tree of “meshes”.
However at this point I really need to be able to load some interesting data. Spinny cubes don’t cut it anymore.
COLLADA is an text format for interchange between 3D programs (like Max, Maya) and your engine code. Until the creation of COLLADA, there was simply no common way to share 3D information.
However, for me (and every other game developer), the problem is that I really don’t want to be loading and parsing DAE files (XML) which describe several thousand polygons each. COLLADA has a concept of ‘conditioners’ and ‘refineries’ which are really just fancy names for old-school game “data converters” or “data packers”.
So my next bit of work is to look at creating a build step with an offline tool hosted on my mac. The build step will simply “make” (in the makefile sense) my nice binary data from source COLLADA files (.DAE).
Oh and for what its worth, the “engine” or framework I am developing (as a base for the actual game) has a name: LUXATRON or LXT for short. And I already have the domain name.
I’d love to see “Powered by LUXATRON” on the splash screens of some cool iPhone games in a years time. And my Ferrari will be red. The only colour they should be.
Here’s a screeny of the customary rotating square demo:
Features at play here:
Confession – I actually got started a couple of months ago, but didn’t think of writing about it until just recently. Unfortunately, progress is pretty slow, as this isn’t my full time project. However, the good news is that I have a bunch of stuff almost ready to post.
Pardon me while I wrestle with the formatting – this is my first time using WordPress on a non-default format. Small children or those with a weak constitution should avert their eyes for a few days…
I’ve compiled a list of things you need to get started:
Total cost (if you don’t have a Mac or an iPod) = approx. AU$1278.
1. The iPhone/iPod Touch is a sweet machine: with a kick-ass CPU, and a kick-ass GPU.
2. The development environment is free(-ish) if you already own an Intel Mac. (More about this next time)
3. You can develop in a real compiled language in the C family – C/C++/Objective C. Inline assembly works. No JIT compilation, no virtual machines, just you and the code you wrote.
4. Personally, its a new thing to make my brain hurt while I learn, and thats when I’m happiest.