Thursday, December 13, 2012

It's been roughly 2 weeks steeping myself in Objective C, XCode, and iOS programming, and I've made a respectable amount of progress. Solar Vengeance for the iPad is coming closer to a reality. In this week I've ...

Gotten a handle on UIKit/Appkit, and Apple's MVC application development architecture. In particular, I've figured out how to create UIViews that represent different screens in the application, and how to easily navigate between these screens. I've also developed a simple, custom color picker control, and gotten comfortable with the ubiquitous TableView component.

Port much of the game's "model" classes into Objective C, and wrapped my mind around the ARC programming concept. Coming from garbage-collected C# this was a bit of a leap, but Apple's recent ARC feature eases memory management substantially.

Successfully integrated the cocos2d OpenGL game engine into my app, and have some StarSystems, Shields, Scanners, a starfield background, and nebula rendering.

Build the foundation of my RealTimeEngine class, which will manage multiplayer games, and keep the impulses pumping in general. The RTE is kicking off an impulse every second, and my prototype game is chugging away, with Resources being generated! This also includes the beginning of the game order and state change architecture, with a Build Shield and Build Scanner order already operational.

A major challenge ahead will be working on the client/server layer to facilitate multiplayer matches. But I have a head start. My C# PrismServer is running on a dedicated machine at home, and I think I can write an Objective C PrismClient class to communicate with it.

I leave you now with a happy accident as I was testing out some tiled graphics to represent nebula. I had accidentally rendered the tiles twice as large as they needed to be for the nebula, but when I saw the result, I liked how the nebula now kind of looks concentrated and brighter where it is thickest, thanks to the translucent tiles blending on top of each other.