Tonight, starting at 7pm MST, I will be pairing up with Erick to build my first iPhone game. Erick and I built myDomains together, and we wanted to try our hand at an iPhone game. I’ll be updating this post as we go along through the night, into the wee hours of the morning, and finally finishing up tomorrow at 7pm. For now I’ll leave you with a little bit of a game teaser:
9 PM :: 22 hours remaining
We stalled pretty badly starting the project. We sat down to eat some greasy pizza, and drink beer, and we ended up staying there chatting about Apple and their newest idea of the subscription model.
After an hour of that we went down to the office to begin planning our work. We talked out the general app layout, and made a couple of paper & pencil sketches. Getting a good division of work was important if we are going to finish this project. We also setup a cron job to take a screen shot ever minute on our machines. We’ll cobble that together into something neat.
And the bad news… we lost Ricardo. He was unable to join us tonight, so Erick and I are going it alone.
At this point, it would seem appropriate to reveal what we’re going to be doing… but instead I’m going to go with the suspenseful slow reveal.
12 AM :: 19 hours remaining
I posted this on forrst with the caption:
Laughing Cat is amused by your attempted iPhone app
I thought it was funny…
2 AM :: 17 hours remaining
Erick has been able to make some fantastic progress on the graphics. As you can see we’re taking a lighter approach to the game. I think it’s looking great:
I just finished the key logic for the game, and I’ve got 2 more major pieces before the game is feature complete. Basic games are awesome!
I’m starting to get to the point where word spellings are starting to look weird. You know that point where you stare at the word screenshots and it keeps looking more and more incorrect. Coffee helps to push the delirium aside.
3 AM :: 16 hours remaining
I just finished implementing an algorithm to scramble my gameboard tiles. To celebrate, I tried to solve the puzzle. And tried… And tried… Turns out that the 15 puzzle can reach a state where it’s unsolvable. Guess I’ll have to redo that scrambling algorithm.
5 AM :: 14 hours remaining
The scrambling algorithm has been re-written and is working nicely. I’ve done some manual tests to make sure that the puzzles are solvable, and I’m confident that I’m in the clear on that one.
I moved on to getting the app loaded on an actual device. The first load was very scary, and I thought I had some tough work ahead for myself. Turns out that it was a simple retina display fix and everything was cleared up.
Also Erick has been drawing up the title screen. This is what he’s got so far:
8 AM :: 11 hours remaining
It’s hard to believe we’ve crossed the half way point. A lot of things have come together in the last couple of hours. I’ve got the title screen showing up, and I’m able to click over into the level select screen. Erick’s designing that screen right now, so there’s nothing to show, but when he’s finished I’ll put it up.
I feel like I hit my stride with cocos2D in the last couple of hours. There’s less searching, and more coding (which is a good thing because the doc website was down for a couple of hours.) At the beginning of the night I was having big doubts whether we could pull this off or not. I was having a heck of a time picking up cocos2D – it made me really appreciate all the cool stuff that’s been built for the iPhone. I now know how hard it is!
11 AM :: 8 hours remaining
The more we work on this game, the more we’re finding out about the little details that add to the user experience. We were just building out the level select screen, and noticed that we need to keep track of the levels that have been completed, and have yet to be completed. Something neither of us had thought of. It’s not big, but it pushes out the scope. It’s easy to see how scope creep can really hurt project delivery.
On the note of the level select screen, here’s what Erick drew up:

2 PM :: 5 hours remaining
I’m not sure where the last 3 hours went. Coke is brutal for staying awake. I almost forgot that I had to eat. We’ve been bringing in a lot of assets to round out the puzzle levels for the game. And we’ve almost got all of the puzzle assets done. In terms of coding there are a lot of little things left to do. I’ve got a bug that’s been hanging around where a 1px space appears randomly between two puzzle pieces. Also commit messages are getting less coherent. Here’s a gem from this morning:
I have no idea what’s in this commit, so there.
Erick is working on our pause screen right now. I’ll paste that up next once it’s coded into the app.
4 PM :: 3 hours remaining
Things are looking smooth and polished. There are some little bugs here and there, but nothing major (yet?) I am afraid to open Instruments and run through this program. I’m sure I’ve committed many a cocos2D sin. Mostly I spent the last 2 hours working on the animation for finishing a puzzle, and bringing in the rest of the assets for the remaining puzzles. Here’s some of the puzzle finished goodness:

7PM :: 0 hours remaining
Wow – Was that a ride or what! At this point I think my brain has stopped functioning and refuses to go any further. It wants – no – demands! sleep.
Erick and I took stock of where the game is at. We’ve got a handful of tiny features to implement, and a larger handful of bugs to fix. We didn’t even get to touch sound for the game, which is pretty important. I’d also like to put this game into the hands of a few beta testers to get an outside opinion on the game. So there is still work to be done, but we’ve got a solid foundation that should allow us to skip through this part nice and quickly.
I hope you all have enjoyed this post as I enjoyed the process of creating it. I’ll write a retrospective post when the delirium has worn off.
Also, have a look over at Erick’s blog where he’s been writing about the code-a-thon.