With the growth and popularity of iPhone* app development, many of these developers are considering how to expand their market to other platforms. Some of them have found success in porting to the Intel AppUp® center and have discovered some interesting challenges & opportunities between the platforms.
The following is my Q&A with developer Chris Skaggs, CTO of Soma Games, on his experience in porting his gravity based game "G Into the Rain" from iPhone* to the Intel AppUp center.
For Soma Games, we entered the fray less than a month before the Intel AppUp Center was set to be unveiled at CES. So we had to make some decisions based on speed that we might not have made otherwise. We already had our game running on the iPhone platform where every line of the Obj-C app was home grown so there was no need to tweak anything there and we found that Objective-C was very easy to port to a Flex* application. Once we had a .SWF file it was a fairly simple matter to create a C++ wrapper that provided the authentication layer for the Intel AppUp Center.
If we’d had more time we might have built the game from the ground up in C++ for performance reasons but in hindsight the typical netbook has plenty of horsepower to run our Flash* game with room to spare so it hasn’t been an issue regardless.
Certainly the iPhone* presents some unique interface options that has brought some really interesting games that simply don’t work on other platforms, but for every unique feature there is also a significant limitation. In our case, G was easily translated feature for feature to the netbook and while the interface and controls are different, nobody would say the game is much different between the iPhone* and the netbook. If anything, the netbook plays to the game’s strengths even better than the iPhone* – rich art, moody music and precise planning all work better as the screen size and hardware quality go up.
The trick really is to play to a platform’s strengths and avoid its limitations. Make sure any application you build is well suited to the hardware it will appear on and you’ll be safe as houses.
Honestly it was easier than I expected. When I brought the project to my team I thought I was bringing them this nearly impossible thing to do - ‘we need to port this app that took us five months to build to a completely new platform in about three weeks. Good luck with that.’ But in reality the Flex* portion of the project went surprisingly fast. We did have some trouble with the wrapper part of the project but I only say that in comparison to how well the other half went.
Well we actually wound up adding a lot of new features though that’s not strictly because of the porting process. G:Into The Rain had been on the iTunes store for about six months and while we were happy with it, we also knew there were things that could have been better. When we decided to port the game to the PC we decided to use the opportunity to add in a raft of items that remained on our iPhone* wish list. So when the Intel AppUp center launched, the PC version of the game was actually a kind of V2 of the game where V1.4 was what remained on iTunes* for another month and a half. Currently the two versions are in synch.
That’s tough, especially if I was asked to pick a favorite. I guess the two version appeal to different parts of me. I really enjoy the accelerometer and touch aspects of the iPhone* version, the game feels very immediate and gut-level. But I also really like the more immersive experience from the screen size and sound on the netbook. Plus the precision I get on the netbook really grabs the geek in me. Like I mentioned above, the differences in the UI make for a different experience even when all the same elements and features are there.
We needed a fair amount of help. The PC platform in general was new to us and time was short and we were having a bear of a time getting the authentication part to work. At that time, the SDK didn‘t have some of the tools it currently has so when we’d make a change to the C++ code we were really flying blind and had to submit the app in the blind and more or less rely on the review process to tell us if it worked or not. Then our somewhat unorthodox approach of wrapping Flash* in C++ lead to some really arcane errors that were just beastly.
All that said though, I was very impressed with the way Intel stepped up and worked with us. I really felt like they wanted us to succeed and they bent over backwards to hunt down our weird little bugs. Their hands on and personal support made a big impression on us.
I don’t think we’d definitely do anything different, at least nothing beyond the language considerations mentioned earlier. More to the point, we’ll certainly be doing this again and the sequel to G is underway with a eye on multi-platform development right from the get go. As for tips: get the real software development tools, the ‘free’ knockoff you can download are not worth the headaches. :)