Our re-occurring theme of "Everything that can go wrong, has" continues this week... But, hey! At least we're consistent!
In the last blog post we mentioned that there was absolutely no reason R.A.B.B.i.T. should fail a second submission. Turns out we were very wrong. Before that though, let's rewind a little...
RE-RE-RE-SUBMITTING THE GAME
We'd put the 'final' version of the game into submission shortly before writing our previous blog post. Armed with the knowledge that the build before that had taken six days to go through this process, this gave us two days of leniency to hit our expected release date.
However, the next day we found a pretty significant issue: A particularly obscure flag hadn't been set in regards to localisation. This flag stopped the game from switching to the correct language when the game was run on Apple devices (for some reason this made no difference on Android devices where we'd done most of our localisation test). To be fair this was mostly our fault for not double checking the localisation properly on Apple devices, but we decided to pull the build down and re-submit it with a fix. This eliminated our leniency time. But we should still be fine... Right?!
ONE MORE TIME FOR GOOD MEASURE
The next day we found yet another previously un-discovered issue: We'd been using the Android version of the advertising identifiers in the iOS builds.
This meant that the iOS version of the game was incorrectly pulling Android banner adverts down instead of the correct iOS versions. We're actually totally surprised this worked at all, but it basically meant that R.A.B.B.i.T. wasn't monetising correctly on iOS devices. We couldn't risk shipping this version of the game so, yet again, we pulled it down and started again. This meant we were likely to overshoot by a single day. But we could be lucky and have the game go through submission a bit faster... RIGHT?!
THE IPHONE 5S DILEMMA
At the weekend I visited a friend. She enquired about playing R.A.B.B.i.T. and I gave her access to the recent build via Test Flight. But something weird happened: Every time the rabbit died, the game would stop rendering new frames and start flicking back and forth between the previous two. It didn't crash mind, it just didn't draw new frames properly. You could still continue to play the game. However, this baffled us as we'd never seen this pretty serious bug before on any device.
We weren't sure where this issue was coming from, so firstly we tried completely re-building the entire project from scratch and then had our friend test it again (we don't have an iPhone 5S in the flat to test it ourselves, so this was a particularly time-consuming process). Nothing changed though.
Then Dave wondered if the particle system could be to blame. We asked said friend to turn off the blood effect in game and: Voilà! That immediately fixed the problem. From there we quickly worked out that the issue was related to the materials used by the blood's particle system: They were set to 'Lit' instead of 'Unlit'. For some weird reason, on this particular Apple device, this caused a unique bug in the engine's rendering pipeline. We presume because we've disabled the engine's static lighting.
We put another build together with a fix and confirmed it with our friend.
It was now Wednesday. A day after R.A.B.B.i.T. was due for release. And there was no sign of the game passing submission. In fact, it hadn't even entered the review stage yet and that took approximately 24 hours to complete the first time.
There was no way we could risk releasing the currently-in-submission build onto the App store, though. Apple's iPhone 5S accounts for approximately 20% of their mobile market. And that presumes that it was ONLY the 5S that was exhibiting this issue.
We'd also discovered over the course of the week that the ideal way to generate some additional pre-release hype was to have a build go through submission, then release promo codes to the press. With this is in mind as well as the fact that we expected the build to go through any moment, we decided we'd allow the first build to finish its submission, use it to generate submission codes then start submitting a new version with the blood fix.
However we had to wait yet another entire day for the game to finally enter the review stage and, yup! The following day it failed submission. Ironically, Apple found the issue with the blood (even though it's seemingly been present the entire time) and failed it as a result. We were left with no choice but to push the new build straight back into submission.
THE UPDATED PLAN
The plan now is to let the new build go through submission and release it immediately. We'd love to hold onto it for a bit and generate some more hype via the press, but we figure that this has been going on long enough. Presuming no more issues, the earliest we expect it to be in the App Store is on the 16th, but it's more likely to be around the 18th, give or take a couple of days.
Almost there... yet again!
IT NEVER ENDS
Oh yeah, one more thing: The PC we use as an SVN server died yesterday, so we had to buy it a new graphics card. Go figure!