A few months ago John Lindquist posted a video on exporting an ActionScript-based game to iOS and how easy it was. The performance was pretty good, but as John points out, he only implemented basic touch controls to demo the functionality. This got me thinking and I decided to grab a copy of the game’s source code and see how easy it would be to port it to not only iOS, but Android and PlayBook–and not only that but to different form factors and screen densities.
The game in question is called Mode and it’s a demo game for the Flixel framework providing not only a great game but also a great working demo of how you go about building a game using Flixel. So with my challenge in place I set about the task at hand.
Here is a list of the devices I wanted to get Mode running on (and that I had to hand):
- HTC Desire HD
- Samsung Galaxy Tab
- BlackBerry PlayBook
- Apple iPad (1st generation)
- Apple iPad (2nd generation)
- Apple iPod Touch (4th generation)*
* I would include iPhone 4 here too, but I don’t have one to test on at the moment, so the iPod Touch will have to suffice.
Now it wasn’t just about getting Mode to run on loads of different devices. It was also about adding support for touch based devices and how to cleanly export and publish to the various target devices. As you might expect there were a few gotchas and I learned a few tricks along the way. However the end result was that I did get Mode running (and playable) on all of my target devices some of which are shown below.
HTC Desire HD
Samsung Galaxy Tab
BlackBerry PlayBook
Apple iPad 2
The versions of Mode shown without the virtual controls (Galaxy Tab & iPad 2) are running in attract mode – so the controls are hidden (in case you were wondering :p)
If you want to find out more on how you set about targeting multiple devices, then stay tuned as I’m putting the final touches to a couple of articles and videos that walk you through the process as well as what worked and what didn’t.
Looking forward to the gotchas list. Its almost like were building for multiple browsers with no standards all over again :)