The New Year Cleanup Sprint, a post-mortem

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.

A sneak peek

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.

What’s next

  • Building out and play-testing levels.
  • Polishing the background art.
  • Product landing page on the web site.
This entry was posted in Technical, Uncategorized, iDevBlogADay, process and tagged , . Bookmark the permalink.

Comments are closed.