Praise be Tebow (Teh-boh). For in the final moments, when defeat looked inevitable, Tebow swooped in, and saved us all, and kept us on track for our January 26th launch date.
If you're wondering what that meant, here goes our little crazy story.
As you know (if you've been reading the blog) We shipped our first build of the game to Apple on January 12th. What we didn't tell you was
- the build was buggy.
- in later levels, it took over a minute to save.
- Apple never officially validated or received a submission
The reason we didn't tell you that was because we didn't know the first two things ourselves until some friends were playing it on both an iPad 1 and 2, and stumbled across some of these things. The savegame bug (long save times) was inconsistent. It didn't happen at first, and yet as we delved into what could be causing it, it suddenly began to crop up everywhere, even on PCs and Macs.
In the end, our SaveGame plugin was the culprit. It wouldn't save games in the most efficient method (which would be to write everything to a binary stream, then dump that data to a save file.) . After a few tweaks, and days and days worth of work, we fixed it.
but there was still that little nasty issue of the game not passing apple validation.
So what was all that about you might ask? Well here it is - we would attempt to submit the game through Xcode, but it would simply say: "Unable to process application Info.plist validation at this time due to a general error"
Can you imagine how annoying that is? Not even an error code? nowhere to start looking? But this proved to be a good thing, because while we waited on a fix from Apple (we hoped). We had time to search down the bugs and make the final release candidate even stronger. Had the game initially submitted, this may not have happened.
In the end, we tried 3 different machines, and then started sending the project to other developers we knew. Nothing worked. For whatever reason, Apple's servers would not accept the build, regardless of who built it.
And then i decided to blow the whole thing up, get on iTunes Connect, and see if i couldn't upload it myself, instead of through our publisher's system. I was about 90% through the process when i got an email that Apple had figured out the problem, and that there was garbage in the .plist file under CFBundleIdentifier. Odd. It doesn't appear wrong. But i was in the middle of testing making it work under a different name (Dungeon Dudes, actually). So i went ahead and ran my test, and clicked the "Validate" button in the organizer in xcode... 3 minutes later, everything was AOK. WHAT?! Now i was confused. But i decided "Hey, maybe i fixed it" and started switching everything back to "Dungeon Crawlers". Tried it again, and poof. It worked.
What was the culprit? Well in the end, it was something in my unity project. See, in Unity, you write the bundle identifier into the player settings. It then generates the xcode project for you. Somehow, there was garbage in that line (albeit invisible). So when we passed on the project to other developers, no one bothered to change that line, because it seemed correct. When i blew it up and tried to resubmit under a different name, i had to change *that* line. So I accidentally fixed the problem without knowing it, while simulatenously receiving the answer from Apple.
Hilariously Impossible you might say? I say Tebow did it.
January 26th. It's happening.
In the meantime - here's some press!
And check out the trailer if you get a chance.