What came before
At the end of last month, I transplanted THE OCTOBER GAME to a fresh app template. For the next week, I fixed lots of niggling little bugs, did more code cleanup, then another round of tweaking artwork. I also added a graphical display of lives, progress and score to the Play screen.
The last week or so was dedicated to rebuilding the Settings, Scores and About screens.
I’d implemented quick & dirty versions before but now was time to flesh them out and get the art style up-to-date. These areas were simpler than the Play screen since they didn’t have to manage a lot of real-time animation. Even so, art had to be planned, built, processed and revised over several iterations.
Next, I wanted to get a feel for the project as a whole. I’m visually-oriented so I thought I’d start out with a dependency graph of all the classes. Unfortunately the Class Model feature was removed from Xcode 4. Luckily for me, Nicolas Seriot wrote a very useful python script called objc_dep.py to generate a GraphViz file showing dependencies.
The raw graph it creates is a bit, ahem… dense.
I hand-edited it to take out most cocos2d classes and that cut the node count by half.
Muuuuch better. Yet it was still hard to get a clear picture. While the alternative graph editor yEd offers better layout controls, it doesn’t read GraphViz formats (.dot or .gv). To convert it, I found another python script called dottoxml.py by Dirk Baechle. With some jiggery-pokery in yEd, I got it looking more organized.
This helped me get a feel for the app structure. Then I was able to do some refactoring to clarify the intent of the code. I found a few loose ends. OCD says what?
Other than a memory warning, there haven’t been any real surprises in this last sprint. I’m sure writing that will, in no way, come back to haunt me.
What I learned
- It helps to break down future tasks a day in advance.
- Planning is a task in itself and takes a lot of mental energy.
- My master chart helps me stay focussed on the right work and not go on tangents.
What went right
- Held my productivity to 80% of my peak. Suck it, regression to the mean.
- Learned to break down tasks even more finely, whenever I felt stalled.
- Kept focus by frequently referring to my master task chart.
- All screens are fully functional. If you put a gun to my head, I could release this month. With no music, no marketing and a few sound bugs, so no.
What went wrong
- If I finished a task, like artwork creation, it was very hard to switch to sound editing or coding in the same day. I’m not sure how to overcome this yet.
- Performance problems keep recurring on older hardware (iPhone 3G, I’m looking at you). I’m a hair’s breadth from dropping support for older devices entirely. A good cutoff point seems like the iOS 5 barrier. I would probably have to buy a iPod Touch 3rd-generation to test on. How I suffer for my art.
- Building out and play-testing levels.
- Polishing the background art.
- Product landing page on the web site.