I want to share with you the different roadblocks that I encountered while creating this game. I believe it is more meaningful for creators to know that instead of telling you why you should play this game. If you don’t like a LONG read then go ahead and download the game on the App Store by Apple or on the Play Store by Google. Don’t forget, there are 217 iMessage stickers for iOS 10 users – the game is more than just a game!
This is my first project using Unity and I wanted to create a game with very simple rules. The character must only have one ability - JUMP. Nothing to shoot, no boss to kill and no elevated privileges on the host device. The game must be playable offline. I set these rules so I can finish the game in just 7 DAYS.
I started the project with just one character – the black ninja in MyBirthday.Ninja. All it has to do is to endlessly jump on the platforms and collect coins. Several days later and I have a working version. There’s no balance and there’s no economy in the game. After collecting coins then what? Where will the player spend it? It’s quite boring if there’s only one character so I added 77 more characters. Instead of collecting just coins, the character is now collecting party items – all 249 of them. The most expensive item is an Aquamarine gem for 400,000 coins.
Roadblock #1: Trembling Knees
Whenever I test the finished build on an Android device, everything is smooth. However, when I deployed the project on my iPhone 5S I noticed the platform the character is jumping to is somewhat shaking. The top and bottom of the platform were fine but the middle sides were vibrating like trembling knees. You can notice this on the preview video here https://mavicus.wistia.com/media... I searched high and low on how to fix this on iOS. Even to the point that I have to write some 1,000 lines of code just to achieve the same behavior as the Android device. It took me several weeks just to realize that the solution is quite simple. It’s so simple that I don’t even need to write a single line of code to fix it. All I have to do is change one value in the default settings of the project and that’s it. I really feel dumb for not knowing this. Don’t trust the default settings – they behave differently on host devices.
Roadblock #2: First Apple Rejection
Once everything is working properly I submitted the game for review on the App Store first. The Android build size was 45 MB while the iOS version was a staggering 898 MB!!! That’s how different Android was from iOS when it comes to deployment size. I waited for a few days until I received an email from the Apple Review Team. Yay! Wait a minute; this is not an approval letter. It’s actually a rejection letter. After several months of working on it Apple rejected my game! I wanted the game to be out there immediately but the reviewer saw right through me on the features that I intentionally left behind for future updates.
Roadblock #3: Scotty Me Up, Beamy!
It took another month of integration and testing the “feature” the Apple reviewer suggested. I ended up using Facebook + AWS combo to handle the user data synchronization. As always, no problem on the Android version of the project. It’s always on the iOS side that’s causing a real headache. The game works fine when tested on a real iPhone device. The problem is in generating an archive build for submission to Apple. The SDKs were not cooperating with me. As a big Star Trek fan, I remembered what Spock said “If you eliminate the impossible, whatever remains, however improbable, must be the truth.” I was wrong to assume that a big tech company such as Facebook would never release an SDK that fails to link when bitcode is enabled. I have to rollback to a several months older version of the Facebook Unity SDK just to support bitcode in iOS.
Roadblock #4: Third Time’s A Charm
Okay, everything is ready now. From the original version 1.2.6 it’s now version 1.3.8. I’m expecting that everything will go smoothly but it didn’t. Apple rejected my game for the second time. I apparently have to show them the Facebook login-only features by providing access to a test Facebook user account. That was easy. I uploaded version 1.3.9 and Apple finally approved my game!
That is how this 7-day project ended up being a 7-month project. I like to celebrate with you a recent “small win.” This is what a senior member of the Touch Arcade forum said about the game:
==
This game is simple to play, but you know you can beat your last score! If you get going fast, you're gonna screw up! But it's hard not to go fast! Great simple jump mechanics. I don't believe I've seen anything like this in the store before! Pretty original. Anyone can play, whether you pick it up for 5 minutes or an hour! Having a good time with it. Wanna see how it is as I get further into it!
==
Now go and give the game some love.
Trivia time: Is the background music familiar to you? It’s from a game made by the creators of Slack.
Jump Birthday Party