Two days! Two days!
That is all it took for Apple to respond to my plea regarding 1.0.1 (you can read the whole crisis here), review the update, and post it on the App Store!
Wow! Thank you so much!
(Is that enough exclamations? I don’t know, maybe I should do a few more.)
Yes! Yes! YES!!!
I think that will do.
A nasty bug has just shown up in Fare City and bitten several unfortunate players, some of whom are now rather upset! You can read all about the problem, how we are trying to get it resolved and the current workaround in the FAQ. Here I want to explain what went wrong…
The game includes a global leaderboard. This is hosted by the very generous cocosLive team. In the game it is displayed in a control called a UITableView. Now, as I began implementing this feature I hit a little problem. The first thing a UITableView needs to know is how many entries it has. However, the cocosLive APIs didn’t seem to support a call that would give me the number of entries in the leaderboard.
(At this point I should add a disclaimer – this describes my experience during development. It may not reflect the true situation with these components. I will be checking into this more when I have a chance and will update accordingly.)
To get around this technical gap I decided that I would just give a fake table size to begin with and then figure out the actual size if the player attempted to scroll of the bottom. To test I set the initial number to 200, fully intending to change it to something more sensible later…
…So, of course, I forgot all about it. Everything was working fine, even when we populated the table with a hundred test scores. Only after the game shipped and the leaderboard passed the 200 mark did I notice that you couldn’t scroll down to the bottom anymore.
I was pretty annoyed that I had left in this stupid limitation but it didn’t really seem that big a deal. So I worked on a few fixes and changes for 1.0.1 and submitted it to Apple on Friday (as mentioned in my last post).
What I didn’t realize was that this simple mistake was about to blow up in spectacular fashion. A “nice little feature” of the leaderboard is that when you first load the board it shows where your score is. This is done be remembering the rank awarded to the score when it is submitted. Great, but suppose you have just played and achieved your new personal best and although it’s not super compared to the taxi-jocks out there you are proud of your achievement and submit it. And suppose that puts you at 385 in the table. And now the game switches to the leaderboard so you can see how things stand, and the game asks the UITableView to display line 385 – and the UITableView says “Exception: invalid argument”. And you are staring at your homescreen wondering what happened to your game!
Worse yet, when you go back in the stats don’t show your score so not only did it crash but it LOST YOUR SCORE!!!
The irony is that the score was successfully submitted to the leaderboard so if you were to view it on the website or at cocosLive you would see it. But as you can’t see it in the game because you can only see 200 entries, it looks like you’ve just wasted a little bit of your life that you will never get back.
I first began to hear noises about the crashing on Friday but by this morning it was apparent that there was a serious issue. I won’t bore you with the details of how I managed to diagnose the problem in the end but there is some good news to this tale of woe: because 1.0.1 fixes the 200-entry limitation it also, at a stroke, fixes the crash (which is why no one on the team spotted the problem – we were all busily testing 1.0.1).
So now the million dollar question is: when will Apple approve the fix?
So here we are one week later. So much has happened since the last post that I am struggling to know where to start, and how to make this interesting or at least informative. Hmm.
I guess the most significant event was at the start of the week. Exhausted as I was from a busy weekend and all the frenetic activity preceding it, I was looking forward to an early night. Somehow that didn’t happen. Instead I was still poking around at midnight when I happened to open the games section of the App Store to look for inspiration on a product description update -and there was the Fare City icon. No. Yes. No, it can’t be. Yes, it is!
That is how I discovered that Fare City was in New and Noteworthy.
Now, many people have commented on the boost that comes from this distinction but I had not appreciated quite how significant this effect can be. Sales jumped ten-fold on the day after appearing – and this is only the games section, not the all apps. The strange thing, though, is that in the days since Fare City sales have remained fairly constant at the new level, even though its position in the action and strategy subcategories has steadily improved. I assume that Apple has some cunning algorithm, or there is just a lot of lag built into the system.
I’ve also started to try out AppViz, a nice Mac application that monitors your sales figures, rankings and reviews. So far I like what I see so I guess I’ll be spending $30 when the trial expires.
Oh, and we just submitted version 1.0.1 to Apple.
What? One week in the App Store and there’s an update?
Yes, that is right. Mainly I wanted to clear up a few bugs in the routing algorithm that had been annoying me but couldn’t be fixed for 1.0 in case it destabilized things. But then I discovered a very annoying glitch in the leaderboard that meant only the top 200 scores showed up in the game. And then there was the size issue…
Yes, we were well and truly bitten by the 10MB limit on over-the-air purchases. When I submitted 1.0 to Apple it was 9.8MB. It worried me to be so close but I decided to not risk making any changes. What a mistake! On the App Store Fare City is 10.1MB – no easy purchasing.
But what did we cut from the game to get it under? With some reluctance I have made the menu music mono. Not so good with the headphones now but sounds the same through the speaker (of course) and I think it’s better than cutting the bit-rate. Of course, we don’t know for certain that lack of over-the-air buying has hurt the sales at all, but I figure it has to be worth a try.
Well, there we are. I knew I would end up rambling in this post. Time to come to some sort of a conclusion.
Week one has been far more successful than we dreamed possible with a first game from an unknown team and no marketing preparation. At the same time Fare City still stands outside the doors of success. To break through to the big time it still needs more publicity, much more publicity.
So if you are reading this, and you have the game, and you like it, can you tell people about it? I’d really appreciate it.
And if you’re still reading, thanks. And have a great weekend.
Developers often think the products they create as their babies. The picture is of a proud parent looking fondly upon their offspring. But every parent knows that there another side – of sleepless nights, poop, vomit, and continual having-to-make-it-up-as-you-go-along because they don’t come with instruction manuals. So has been my last 48 hours!
The story begins with Fare City successfully submitted to Apple. There has been a collective sigh of relief. There has been a little celebrating. There has been some discussion about what needs to be prepared for the launch in the App Store. There has been some tinkering with the website. There is a sense of calm and movement towards preparedness.
Then, out of the blue, an email drops in my inbox at 2:41pm on Wednesday (September 16). Apple has approved the game. Cheers and high-fives ensue. But wait a minute, didn’t I set the availability date to September 17? And being based in Vancouver, isn’t it already September 17 in Australia and Japan?
So began an insane twelve-hour marathon to finish the website and … I can’t even remember all the other stuff we did that night! (And at this point I should disclose that most of the actual work was being done not by me but by my great friends, Kuni and Bruno.) We finally packed up around 2:30am.
Up early next morning with the noise of children being marshalled for school, I figured that the day could be rather more relaxed. After all, I just had update Facebook and Twitter, email a few friends and start reaching out in a few forums to begin the marketing activities. How hard is that? Well, as it turns out, doing those things is not too hard on their own, but when fifteen things are happening at once…
So last night became this morning again, with things finally winding up at little earlier at 1am with a new video in place. I have to say that iChat video is great for this type of working, but there were some very tired and grizzled faces staring across virtual meeting space by the end.
And today has continued in similar vein. All the work I had intended to do has been pushed back to next week and still the list is getting longer instead of shorter.
Oh well, there’s always the weekend to look forward to.
Now, does anyone know a good babysitter?
FOR IMMEDIATE RELEASE
FARE CITY NOW AVAILABLE ON THE ITUNES APP STORE
Finkly Interactive’s First iPhone Game is Released World Wide
Vancouver, Canada – September 17, 2009 – Finkly Interactive has released its first game for the iPhone / iPod Touch platform. Fare City is a fun action / strategy game in which the player guides taxis around the streets of downtown. Using the popular “line drawing” style of interface the player collects and drops off fares while ensuring that the taxis don’t collide.
The game is designed to offer a fun challenge for casual and serious gamers alike. Using a combination of an intuitive game interface, smoothly ramping difficulty, player-controllable game speed, and an innovative scoring system, Fare City delivers substantial game play in a sleek package.
Game features include:
- global leaderboard
- personal game stats
- e-mail challenges with screen shots
- auto save and load
- elegant visuals and a great jazz theme
- ability to listen to iPod during play
Priced at only 99 cents Fare City is a great value for the money. But the fun doesn’t stop with Fare City: First Shift (version 1.0). Finkly Interactive has plans for a series of free “episode” updates that will deliver new game modes and additional enhancements. The first of these – Fare City: Short Shift – is expected to be available in four to six weeks (dependent on Apple approval time).
Fare City is powered by cocos2d for iPhone game framework, and uses CocosDenshion audio library and cocos Live.
About Finkly Interactive
Based in Vancouver, BC, Finkly Interactive is a small independent development company delivering software products for mobile phone devices.
App Store link: http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=330222186&mt=8
Game website: http://finklyinteractive.com/farecity
Company website: http://finklyinteractive.com
cocos2d for iPhone website: http://www.cocos2d-iphone.org
cocos Live website: http://www.cocoslive.net
Fare City has now been submitted to Apple for release on the iPhone AppStore!
Of course, there is no knowing yet how long the approval process will take.