Pocketeers' technical director Mat Hopwood on how Marmalade cut the studio's porting time to shreds
The SDK, not the jam
When we started to develop mobile apps - for a wide range of phones and tablets - we faced a familiar problem: fragmentation.
We'd already stopped making Java games because of the complexity of catering to a wide range of devices with different hardware configurations, screen specifications and APIs.
At least with Java, there was a single language, but when we moved to the latest phones and tablets, we faced a wide range of different languages in addition to the hardware differences.
We had to write in Objective-C for Apple, C++ for Samsung bada, ActionScript for the BlackBerry and Java for Android. It was a nightmare. To develop for each of those devices, we'd have to hire people with specialist skills in each of those languages.
This fragmentation had a huge impact on the company's ability to develop and launch software quickly.
When we start making an app, we develop for a signature platform. We'd get it tested, finish the signature platform and then start converting it to other platforms. It's a slow process.
When we'd finish the signature platform, months down the line on other platforms it would be like starting from scratch.
So we bought in the Marmalade SDK. The deciding factor for us was the huge number of platforms Marmalade supported.
The second-most important factor was that it enables us to code in C++ and deploy on a PC. I'm from a PC background and I'd never even used a Mac until I started to develop for the iPhone. A lot of developers like me are set in their ways and don't want to have to use a Mac to write iPhone or iPad apps.
We can now write once and have the code work across all the supported platforms.
Using Marmalade, we developed Funky Cam 3D for iPhone, iPad, Android and bada within one month. I don't know Android and bada well, so if I'd tried to do that without using Marmalade, it would have taken me five times as long to learn those platforms.
Most software development companies creating apps are small and don't have a huge skill-set to create custom code for all the platforms, so the Marmalade SDK gives them access to markets they couldn't otherwise reach. Even if I'd hired an expert on those platforms, it still would have taken twice as long.
Another bonus for us, was the superb simulator. If it runs on the simulator, it will run on the device.
You can test for different aspect ratios and check multitouch functionality using the mouse, and device-specific buttons using the keyboard.
It also enables you to run ARM code on the PC, so you only have to go to the device for a final test and to check OS-specific features, such as Apple's Game Center, which aren't available from outside the hardware.
Similarly, it only took us four hours to port Battleballz Chaos to the Blackberry Playbook, without any modification. We changed a couple of things to improve its appearance, submitted it to RIM, and had it live on the store within 24 hours.
It's important to get onto new platforms because, even if they have fewer users, they're are often more willing to buy all the apps at a premium price. It also gives your app extra visibility thanks to less competition.
We've sold 600 copies so far at $1.99, and it feels good to know that people are out there playing the game on the PlayBook tablet too.
Similarly, when we need to update an app, we have one centralised code base that we know works across all our platforms. We can quickly update it, compile, test and re-deploy.
That can save us anywhere between three and five days - days we might have otherwise spent trying to update different code bases for different platforms.
It's been a big change for us, speeding up so much of our work. Obviously, Marmalade isn't suitable for everyone, but there are a good few different SDKs out there. Don't keep doing the grunt work yourself find that shortcut and you'll save big time.
You can find out more about Pocketeers on the studio's website.