Developing for multiple platforms can make things interesting. It’s not just the different hardware capabilities, incompatible backends for standard features and differing expectations: there are also different platform philosophies to deal with.
Apple like to vet apps and updates that go on the App Store. This lets them make basic assurances that apps won’t brick your phone and steal your identity. Unfortunately, the delay on vetting apps and updates can be a week or two. This has an awkward side-effect: if an update that passes contains a critical bug, it might take a week or two to get a fix out. Builds need to be tested much more thoroughly first.
In order to accommodate this several-day turnaround alongside the faster turnaround times on Android (hours) and Flash (minutes), the release schedule for a big CQ2 update like 1.1 after it’s “content complete” is pretty hefty. This is the first time I’m doing an update of CQ2 across all three platforms, and it looks something like this:
- Do iOS integration for new features (in this case, a new leaderboard and a new IAP) and general updates as necessary (like double-checking iOS 8 compatibility)
- A few days of testing to make sure the iOS update is stable and won’t need urgent fixes
- Submit iOS build for approval! While that’s in the queue…
- Test across a handful of Android devices
- Do Android integration and updates as necessary
- Submit Android build!
- Check and fix any new UI on Flash
- Upload Flash build to Kongregate
This is basically a 2-week process where I’m not doing any work on game content. This makes it hard to do all-platform updates often. They slow down development a lot. The next time I do a big update after this the game will be out on Steam too, on Windows, Mac and Linux. I’m sure dealing with 4-6 platforms is going to be interesting…
It’s hard not to see this coming up in the “What Went Wrong” section of CQ2’s post-mortem, but spreading across several platforms has been good for the project in many ways. It’s just unfavourable to putting out lots of little updates. In retrospect, if I’d set the game up so it could download images and scripts, I could have safely added limited bits of content every few weeks without having to do full deployments like this. Of course, that too has a downside: make everything scriptable would have taken longer too!
For my next project, I think the deciding factor is emotional. I love finishing stuff, testing it, pushing it out there and watching people enjoy it that evening. Bouncing things off the community like that with the rapid Flash updates last year was wonderful and I’d love to get that back. In all likelihood that means aiming at a single platform where this is possible, like Flash or Steam, and maybe using the experience from CQ2 to port the game to other platforms afterwards if appropriate.
Right now, here on CQ2, I’m reaching the end of stage 2 in the list above. I’m testing and fixing the iOS build, which means the update should start to go live on various platforms—definitely on Flash, at least—within the next two weeks. It’ll be nice when it’s done… and I can start all this again on the desktop ports. 🙂