Two Finger Play

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

Name: Noah Witherspoon
Location: Atlanta, GA, United States

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

2.5.09

Landscaping

Been doing some work on landscape support in Mines. I decided that the bar at the bottom used a lot more space than it had to, considering it wasn't even going to include the “menu” button, so I dropped it entirely and moved its contents to the side.

Landscape overlay

Right now it's just the clear/flag button as a translucent overlay. If you scroll to the edge of the board the control's on, it extends a bit so the button doesn't get in the way:

Border thing

For left-handed folk, tilting the device the other way shifts the button to the other side.

Southpaw mode

Things are moving along pretty well overall—I'd like to get the scoring system updated in the next few days, people testing it in the next week, and submission to the Store a week or so after that. Let's see how that goes.

Labels: , ,

21.4.09

Mines 2.0 Development

So, it's been dead quiet here for way longer than it ought to've been—most of the work I've had going on has been for people who probably wouldn't appreciate my talking about it here. I have finally gotten back to my own iPhone work, though (just in time for finals—hooray!), and most of that has been going to updating and improving Mines.

The most frequent complaint I got about the original was that the board needed to be bigger. That took a bit less work than I expected, and is now pretty solid; boards can be arbitrarily large. I originally wanted to have it “snap” to the mine grid, but that made the scrolling really jittery—maybe enough messing around with the events would fix it, but by that point it might be easiest to just write my own scroll-view implementation entirely. Most noticeable other change here is that I've added some color to the control bar—the X and O buttons glow appropriate colors, and the whole thing gets illuminated from the bottom. I've found that's a good cue for what mode you're in: not eye-catching enough to be distracting, but noticeable in your peripheral vision when it changes.

Main screen preview

Mines 2.0 has a few gameplay changes, too, most noticeably support for an analogue of the left/right click of more mouse-y platforms. When you've got all the mines flagged around a cell, and you double-tap that cell, all the others around it, and any empty cells adjacent to those, get cleared as well. It saves a lot of time and mode-switching.

One of the other big things I've added is support for landscape orientation. Not a lot to say here, except that most of it was staggeringly easy to set up; much love to UIView's autoresizingMask property.

Landscape mode

I might adjust the UI when in landscape mode for more convenient thumb access and more space; also, I expect it to be an enormous pain to make the menu system lay out well in both portrait and landscape, so I want to eliminate it from the latter if possible.

Other plans: scoring. I'm going to stay away from attaching this to my shared hosting this time around—I lost two domain names that way, the first because it got incessantly hammered by the tons of people who're still playing Tris, and the second because my host got... confused? I don't even know. Anyhow, I'll be running it on Google's App Engine, which is crazy easy-to-use, free at the outset, and will pretty much never shut me off as long as I pay them. On that note, I've changed my mind again about the “deluxe edition” thing, partially because I checked the download stats (one word: wow) and partially because I had an idea that I'm really, really excited about. Can't share much more about that right now, but I'll be making an announcement about it as soon as I can.

Labels: , ,

30.11.08

Mines 1.0 released!

Mines 1.0 screenshot
During a few months of being completely distracted with everything else — jobs, classes, life in general — I found a couple of days here and there to work on my other lump of archaic jailbreak-era code and polish it up into a presentable state. I'd been planning to have both a free and not-free version, which was holding me up; if I was going to charge for something, it had to be appreciably worth more than the free version. So I decided to ditch the undoubtedly limited money-making prospect there and keep Mines completely free, updating it as I get ideas for new features and time to implement them.

It's been on the App Store for about a day, and I'm already getting lots of useful feedback. A couple of ideas, like it taking two taps to clear a “flagged” cell and having them show some kind of marker beyond the bland blue color, I've already got together and will be pushing out once I've tested them a bit more thoroughly; others, like a more advanced scoring system and stats tracking, should be coming in a few weeks when I've got time that I shouldn't be devoting to, e.g., deadline'd work and final exams.

I welcome any and all comments and suggestions on Mines; feel free to email me, or post them here or as App Store reviews.

Labels: , , ,

25.8.08

Over, for now

Well — I've received notice from Apple that they've been contacted by The Tetris® Company about Tris. That, I'm afraid, is essentially game over. Do they have a case? No. Not really. I am convinced that if it went to court, the "copyright" claim would get thrown out completely. The trademark, perhaps not — but if I changed the name, to e.g. “Trys”, that would be much harder for them to argue.

The trouble is, I'm a college student, and not an affluent one, and I simply do not have the time, energy, or resources to fight this battle right now. There's a point at which I am willing to give up and be practical, to let the world have its way with that ever-mistreated little ideal of “principle”. Thus, it's with great sadness that I must announce that I'll be pulling Tris from the App Store on Wednesday, August 27th, to remain in Apple's systems but publicly unavailable until I work out a solution to this.

A few last words on the subject, then. I don't believe The Tetris® Company consider themselves to be acting in bad faith. The lack of protection for the idea of a game is troubling, in that it promotes quick ripoffs of a concept that someone, somewhere, spent a lot of effort on. The Tetris® Company are protecting their own interest; without a name that meant something to license, they would have, as I understand it, no significant assets at all.

That said: the approach they're taking seems to me little more than petty bullying. They have little to no legitimate legal claim, and are, presumably, relying on my being a small developer with insufficient resources to defend myself. And — hey ho — it appears to be working. All I can suggest is that, if you have the slightest interest in playing Tris, you download it while you still can.

---

To clarify: if Apple had not told me they'd “take action” of their own if I didn't resolve the “dispute”, Tris would be staying up. I don't think this will be permanent; when I have the time and can find a good copyright lawyer, I'll be figuring out exactly what my position is and how I can make Tris available again.

---

To further clarify: several news sites have taken this to mean I consider Apple at fault here. This is completely and totally untrue, and I have received no form of official legal notice, threats, or anything of the sort — indeed, anything other than polite and helpful communication — from them. Apple, as I see it, are making sure they aren't liable for individual developers' mistakes, and they're doing it the right way. Please don't take this up as an “Apple are being evil corporate jerks” story, because they aren't and it isn't.

Labels: , ,

22.8.08

Indesistion

First time for everything, I suppose: now, a cease-and-desist from everyone's good buddies at The Tetris® Company. I won't post the full thing here in case there's some reason I oughtn't, but the gist of it was that they considered my game an infringement on their copyright and wanted it taken down immediately. I'd been forewarned of this possibility, and appraised of some information on The Tetris® Company's activities (thanks, again, to Adam Sissman for that) — long story short, I'm near-certain they have zero case, given that U.S. copyright law doesn't provide any protection for the “idea” of a game. The name “Tris” might possibly be considered an infringement on their trademark, but I think that's a separate issue, and said as much in my response to the C&D.

Anyhow, my apologies for the delay in getting the score system up and running again, and the updates I've mentioned out — had rather a lot on my mind. I'll get back to work as soon as I can.

One more thing: I understand Tris was recently featured on TV — a show called “Infomania”? Fantastic, if so; if anyone's got a link to video, I'd love to see it.

Labels: , ,

19.8.08

Score Downtime; Deluxe

Well, Tris has done astonishingly well — download count as of this morning was over half a million. Unfortunately, the amount of traffic from the score system completely and totally overwhelmed the shared hosting my database and script were sitting on. I've talked to the host and am hoping to find some good dedicated hosting soon; for now, though, the global score system is simply dead.

In the time in which I wasn't fiddling with and worrying about the score system, I got a few additions made that I'd seen a lot of requests for. Tris 1.0.2 (I've submitted a 1.0.1 but it's chilling in “In Review” limbo) lets you set the movement sensitivity, whether the sidebar appears on the left or right, and whether pieces rotate clockwise or counter-clockwise. Also, there's a bit more of a delay when a piece lands before it gets locked into place.

There's one or two suggestions I've received in comments here that I'm pretty sure I'll add at some point — all, alas, from "anonymous", so I'm unable to properly credit them. One involves multitouch, and letting the player drag and rotate a piece at the same time by tapping with a second finger while moving the first; the other, simpler if a bit less intuitive, would have a tap on the bottom row or two drop the piece immediately.

Another thing: I'm considering what I can do for a Deluxe version of Tris. The original version will stay free, and get the bugfixes and most features that I add in future, but the non-free one will get some improvements over the original. Mostly these improvements are features I would like to add to the free one but that would be time-consuming to implement. What I've got planned so far:
  • Sound (piece rotation, piece landing, row clearing, possibly music)

  • Row-clearing animation (this will be pretty, I promise)

  • Leaderboard split up by time period (separate top-ten scores for the past day, week, month, and, uh, eternity)

I'd welcome any other suggestions. Is there something you'd absolutely have to see in Tris to pay a buck or two for the Deluxe version? Let me know.

Labels: , , , ,

15.8.08

First Days

So, Tris has been on the App Store for a bit more than two days. In that time, it's become the most popular free app on the Store. I'm absolutely blown away by the attention and positive response this has gotten; according to the iTunes reports, it's been downloaded somewhere between a hundred and two hundred thousand times. The high score system, last I checked, had over a hundred and fifty thousand scores submitted.

That, actually, is turning out to be a problem — my host's server appears to have been eaten by the CPU usage of my score-handling script. I fixed a bug in it this morning that was making it continuously overwrite the high-score file, even when a new score didn't actually change anything; I thought that would resolve the issue, but it seems not. I've contacted the host's support department, and should ideally hear from them in an hour or two. Keep your fingers crossed.

In any case, I want to thank everyone who's downloaded and played Tris; you've made this project more successful than I could possibly have hoped for. I've received a ton of feedback from App Store reviews, blog comments, and emails; I'll be addressing as much of that as I can in my next post here.

Labels: , , ,