Two Finger Play

iPhone game development, by a college student with a short attention span

Location: Atlanta, GA, United States

I don't wear shoes. If you see a barefoot kid walking around the Tech campus, say hi.



Mines 2.0.1 has been out for a few days, and while it's seeing an extraordinary number of updates—almost 29,000 as of yesterday—it's also seeing some pretty nasty App Store reviews. For one thing, there's still a bug or two I haven't chased down; the timer still disappears every now and then, which is apparently pretty annoying, and, more significantly, some people really don't like the expanded, scrolling board. Over the year or so I've had a bigger board on my own copy of Mines, I've gotten used to it, and learned to pan around, scanning for areas I might've missed, but it seems that's not an easily picked-up pattern. Part of what made the original Mines good was its simplicity: everything gameplay-related was present in a single screen and required no gestures more complex than single taps. The scrolling board has broken that, badly, and I'm working on a fix.

First, I'm removing the bottom two rows of mines so that the only scrolling, in portrait mode, is horizontal; second, there'll be a switch in the menu to disable the expanded board entirely. I'm also nixing the "remove ads" in-app purchase; over the last three days of 2.0.1 being in the wild, exactly one person has hit that button. I took care to make the ads unobtrusive, so I suppose everyone else is just dealing with them.

Also, I'm adding, as per many peoples' request, adding a "number of mines left" view; it looks like this. You can tap the view to switch between seeing the timer and the remaining mines.

Mines Remaining (see bottom left)

Labels: , ,


Mines 2.0 Gremlins

As soon as the Mines update appeared on the App Store, it immediately started picking up one-star reviews like a horrible Katamari of failure. Some of them mentioned a bug that I knew about, where the timer sometimes wouldn't appear, but some mentioned a much uglier problem: there were no mines. That made no sense to me at all until a helpful comment here from Adam Wilcox, who sent me some screenshots that definitely showed mines (and their surrounding numbers) disappearing from the board as they were tapped.

I recognized that as a misapplication of the code I added to prevent the player from losing on the first move of the game; if you haven't opened up any of the board, and the first cell you touch is a mine, the game quietly removes that mine and acts as if there was empty space there all along. It sounded like that was somehow continuing to happen after the first move: the game simply wouldn't let you lose.

GDB came to the rescue, as it so often does: it informed me that a certain variable—the board view's “did that move just lose the game” value—was getting optimized away by the compiler in the Release build. As it turns out, I never initialized it, only set it to YES if a touch landed on a mine; the issue never came up in my testing because I always used the Debug configuration, in which, it appears, the compiler doesn't do that kind of meddling.

Lesson learned: test using the Release configuration. Mines is off the Store for the moment; I'll submit an update to Apple later today that'll fix the problem.

Labels: , ,