Tips for Levels 1 thru 3

September 28, 2009 - balord | Comments Off
Watch for our upcoming in-game fan community launching soon -- powered by playhaven.com.

Level 1: The Dark Wood
This is the standard "teaching" first level. All you need to do is figure out how to roll forward and turn just a bit to get into the exit.

Level 2: Little Jump
Here we have our first challenge. You are too small to get across the gap to the exit, so find some snow to get bigger. But dont take too long -- summer is coming and you'll melt!

Level 3: Switches
Here we see our first of many interactive items you'll encounter in the Inferno: switches. There are two on this level -- one on the floor that drops your platform down to the lower level, and another that lowers the drawbridge so you can cross to the finish.

Snowferno available now on the App Store!

September 1, 2009 - balord | Comments Off

We are pleased to announce the debut of Snowferno on the App Store, available immediately!

Late this afternoon, our server registered a new user playing v1.0.2. Only Apple had that version -- not even Ben! -- so I knew this was a good sign. About 90 minutes later, we got the email:

Your application is now Ready for Sale. If your contracts...

Woohoo! There it is. We submitted this build late evening of August 24. Approval this time took 9 days (7 business days), so the process appears to have recovered from whatever caused that mid-August slowdown. Two bugs, three builds, and nearly 6 weeks of waiting -- it's like a whole new game to us again!

We're already working on some updates, including building from the newly released Unity iPhone 1.5. We hope you enjoy!

Snowferno is available on the App Store

[sigh] v1.0.2 submitted

August 24, 2009 - balord | Comments Off

It's been pretty quiet here while we have been waiting for the App Store to get to our 1.0.1 resubmit. Until this past Friday night when I got our second rejection. Man oh man.

...cannot be posted to the App Store because it is crashing on iPhone OS 3.0 and Mac OS X 10.5.7. Whenever the snowball falls off of the track the application crashes.

This was a new one to us, and again the crash logs were no help. However, we lucked out and it was a really quick fix. In short, some of the network reachability code Ben added after our first rejection introduced a new bug. And this time I was able to reproduce the crash, but only when the phone was in Airplane Mode. This would explain, however, why I have not registered any IP activity from new players. Are the App Store testers simply firewalled off, or could they actually be testing in Airplane Mode?

Anyway, with our network code patched up, I rebuilt a fresh v1.0.2 tonight and resubmitted.

For those keeping track (we sure are), we submitted v1.0.1 on August 5 -- 16 days (12 business days) until rejection. Our first rejection took 10.5 days (7 business days). Not a good sign that it's getting longer.

In the meantime, much news has been made these past two weeks about app delays, but Facebook 3.0 was submitted after us as well as Yahoo Messenger. So it appears to be just a heavy workload -- I'm thinking some August vacations have taken a few of those 40 App Store testers away from their 10-an-hour quota. There doesn't appear to be any other funny business or favoritism happening.

It's interesting to note as well that the App Store testers haven't been upgraded to 10.5.7 yet. Should we not have upgraded yet either? Or maybe they wait until a critical mass of iPhone users upgrade to 10.5.8 first....

While we wait: Leaderboard Twitter integration

August 8, 2009 - balord | Comments Off

(Three business days into the v1.0.1 resubmit and counting...)

In the meantime, I've been working on integrating the Snowferno Leaderboard with Twitter. Of course, that has been complicated by the DoS attack against Twitter over the last few days. But, it's coming along nicely and might even be ready to go live by the time we get our approval.

Our Twitter integration works basically like this:

  1. Players who have setup their online leaderboard account (Settings > Score Board > Edit Leaderboard Settings) can click the "Sign in with Twitter" button and allow the Snowferno Leaderboard to access their Twitter account. At the same time, we ask the bit.ly API for a shortened URL to points to that player's Leaderboard profile.
  2. Twitter sends us back OAuth tokens for that player's account, and we store those for future use. (OAuth incidentally is a really cool system. It's way too creepy these days to ask someone to give you their actual Twitter login and password. Using OAuth authentication, they only login to Twitter, whom they already trust. We avoid the security risks inherent in storing passwords, and players can revoke our app's permission whenever they want. Win/win/win (except for when Twitter throttles down OAuth to defend against DoS!))
  3. During regular online gameplay, the Leaderboard API logs certain achievements (such as getting a Top 5 score for a level... more to come).
  4. A cron script crawls the achievements log every minute and posts tweets on each player's behalf to the accounts that are Twitter-enabled. The reason I do the tweeting as a separate process was so that we could return global leaderboard data back to the game as quickly as possible.

The foundation of our integration is the PHP Twitter API wrapper twitter-async. The rest are custom additions to the Snowferno API and my Snowferno WP plugin.

Alot of the work on this has gone into getting the structures in place to gather and store authentication and making my cron script and achievements logger modular. (Also, my ongoing education in talking to APIs from inside and outside of the WordPress core.) Once the Twitter stuff is humming along nicely, I plan to delve into the Facebook Connect code and do something similar with Facebook statuses.

v1.0.0 REJECTED! (v1.0.1 submitted)

August 5, 2009 - balord | Comments Off

The big email finally came Sunday, August 2 at 1:24 PM EDT with the exciting subject "Snowferno 1.0.0: Application Submission Feedback".

Hello Brent,

At this time, Snowferno 1.0.0 cannot be posted to the App Store because it is crashing on iPhone OS 3.0 and Mac OS X 10.5.7.

Ouch.

I had done a Build and Run of v1.0.0 before submitting and it played just fine, so we knew the game itself was solid. I was away this weekend so Ben tried symbolicating the crash logs Apple sent us, but with no luck -- probably the crash was happening inside the Unity core of Snowferno. Also, being the Team Agent I have to do the final builds, so we didn't have a chance to get to this until last night.

Best we could tell, based on how far Apple said they were in the bootup when it crashed, it was probably a bug with the device having network access but not necessarily internet access -- we imagine that the App Store testing ground is heavily firewalled. I never recorded any game activity from Apple's IP addresses tho, so we know that it didn't get even get that far.

Ben went in and beefed up the networky bits and added some "no network found" messages if any of the WWW responses came back empty. We also took this chance to fix some not-terrible-but-glad-to-catch things like the end screen wasn't locked and the starting point on one level was left halfway into the level from a screenshot photo-op.

So, from v1.0.0 submit to rejection took 7 business days, or 10.5 actual days -- they did email us on a Sunday afternoon, after all. Not bad... We rebuilt last night and submitted v1.0.1 last night. Start the clock again at Wednesday, August 5. Tick tock...

P.S. I encountered this error when uploading the new binary:

The binary you uploaded was invalid. The signature was invalid, or it was not signed with an Apple submission certificate.

Well, I made sure the app was signed properly. Ben found this thread, and the solution for us was to change the Bundle Identifier in Info.plist from com.mycompany.${PRODUCT_NAME:identifier} to com.mycompany.Snowferno.