30 Jan 2010

The Dark Side

Yeah, so I finally defected to the Dark Side and got myself a 13.3" MacBook Pro. Now that N3 runs on all 3 console platforms I'd like to explore the iPhone/iPod/iPad platform a bit. And iPhone development is only possible from the Mac, so the MacBook actually serves as some sort of hardware dongle.

Overall, the MacBook is a great device. It (still) looks slick, has a great display, and is relatively light weight. I considered the MacBook Air, but finally went for the Pro, because it had twice as much hard disc space and RAM, but was still cheaper then the Air. And since I also want to run Windows on the machine, hard disc space is precious.

The keyboard sucks ass though. I don't like those ultra-cheap ZX Spectrum keyboards which become more and more common on laptops. And the most important key, the Return key, is the smallest and easiest to miss. WTF?

Surprisingly, I'm not a big fan of the user interface. I've only used the machine for a day or so, and while the UI certainly looks slick, I had a quite a few WTF moments. The most puzzling thing is that I have no idea where to find an application after it's installed. The XCode installer for instance simply finished and I was left wondering how to find and start the damned thing. It's not in the dock, and its not under Applications. Turns out its "somewhere" on the hard disc under the /Developer directory. I was looking for something like TortoiseSVN, found a Finder plugin, and pretty much failed to install it. The read-me file told me to find some files and manually drag them somewhere onto the Finder tool bar, and to drag something else somewhere else to start it automatically after login. However, those files where nowhere to be found after the installer was done. Why doesn't the installer take care of all that crap? I'm pretty sure I could have fixed it after investing some more time, but something like this shouldn't happen these days. I'll see how the Subversion integration in XCode works.

I haven't found something like Live Writer to create blog posts (only some commercial apps, come on paying money for a blog editor? A good blog editor should come free with the OS like a web browser or a mail program).

I tried Safari and I was shocked to see the web pages I usually visit cluttered with blinking ad banners. Not Safari's fault of course, but the next thing I did was installing Firefox with AdBlock Plus.

I've dabbled around with MacOS from time to time during the 90s a bit, and at that time, usability was so much better compared to Windows. Today, I'm not so sure which one is better. Of course I've learned to get used to Window's quirks over the years, but I was honestly expecting myself to say something like "yeah, that's how its done" after playing around with OSX. But I didn't. Things are different, but not better. I'm still extremely excited to dive into Mac and iPhone development though :)


Bruce said...

Interesting news!

Some notes ...

For Subversion, I tend to just use the command line ... but I know people that like SmartSVN (http://www.syntevo.com/smartsvn/index.html) and Versions (http://versionsapp.com/).

For XCode ... there's a lot of bad stuff to XCode and more people seem to hate it than like it. I tend to just do my builds on OS X from the command line and use whatever editor (vim, emacs, textmate, etc).

There are some tricks to setting up a project for iPhone and such though and getting everything working. You might look at Joshua Jensen's jamplus (http://jamplus.org/) as he's well down that path. You'd want to look at the sources in Github though as he hasn't had a release on the site listed above in a while: http://github.com/jamplus/jamplus

There's also some pointers out there for getting this to work in cmake like this:


There is a Safari Adblock based on Adblock Plus for Firefox. Firefox really isn't as nice on MacOS X as it is on Windows.

As for installation on MacOS X ... a lot of things don't use an installer. They ship as a disk image and then you copy the executable / application to your Applications folder on the root of your hard drive. Fully agreed though that this is a pretty poor corner of the MacOS X experience.

While you're looking at the dev tools though, there's a lot of REALLY nice stuff in Shark, Instruments, etc.

Hope this is useful ... and I'd be happy to help out with any other questions.

- Bruce

Bruce said...

Actually, going one page up on one of those links is a bit better ... for cross-compiling to the iPhone:


- Bruce

Unknown said...

Hi Bruce, thanks for all the pointers, it's highly appreciated :)

Joe Woynillowicz said...

A few other things to note might be:

(1) If there are any apps you count as "must haves" on Windows and don't want to use one that is inferior or costs more than it should I highly recommend VMWare Fusion running an XP VM and using that in Unity mode. It then allows you to drag apps installed in the Windows VM to the dock and start them up just like they were native apps. I use this for a few things and the performance is extremely good I actually played through the entire game Torchlight at 2560x1600 resolution!

(2) You'll find everything gets installed to Applications other than the developer tools. Like Bruce mentioned make sure to check out /Developer/Applications because there are some insanely good tools.

(3) Check out the basic OpenGL sample template in XCode. Not for the rendering code or anything but just to take a look at the game loop. We found using CADisplayLink is overall the best solution but only runs on people with the updated OS so you want the fallback to either Timer or threaded.

(4) If you plan on supporting both the iPhone 3G and the 3GS/iPad you'll want to have a bunch of conditional project settings. With the 3G you definitely want Thumb turned off or you will get killed with floats and using the VFP, meanwhile on the 3GS/iPad you will most likely want thumb mode on for the smaller footprint as floats are allowed in thumb on that chip so there is no mode switch.

(5) Animation and skinning *need* to be written in VFP assembly for any "higher than demo complexity" scene. If done just in software or using MatrixPalette you are bottlenecked badly. Another note is that on the 3GS it is still much better performance wise to do the skinning using NEON and not in a vertex shader as it runs faster than the GPU.

(6) The iPhone 3G OpenGL driver will make you physically sick. Verts are copied across to the GPU every frame even when using VBOs so you are extremely CPU bound in the vast majority of cases. The 3GS hardware and drivers are much better in this regard and for a "higher than demo complexity" scene you do see the benefits of VBO as it uses them correctly.

I have about a million small items I've run across like those and should probably make a blog post with them one day :)

Out of curiosity can I ask if you are looking to target only the shader based devices or you plan on developing for all of them?

Joe Woynillowicz said...

I forgot to leave a link a video that I think you would really enjoy:


The lead iPhone tech from Unity discussing the drivers and CPU/GPU interaction on the iPhone 3G.

六福村 said...

精彩的部落格 要繼續加油 ..............................

Martyn Mlostekk said...

oh my god... .floh is on osX...

have fun :)


12356 said...


fibric said...

hey flo,

you can get an ad-block plugin for safari here:


one question from me to you...
why is there no update on google code for nebula3?

Anonymous said...

你的文章讓我有種特別的感覺,請加油哦~~ ..................................................