- Articles & News
- For IT Pros
- Your Opinion
Tom's Hardware: The mobile operating system landscape is still in a state of flux. While the primary two players are iOS and Android, we’ve seen Microsoft fighting for traction with cheaper WP7-based phones.
As developers trying to attract a broad audience, what challenges do you face in delivering cross-platform games? What are the advantages or disadvantages of each ecosystem (does one OS have features that make it more attractive than the others)?
Fishlabs: iOS is the most attractive platform at the moment. Sure, due to new generations of devices, a certain kind of fragmentation has found its way into that platform (for example, from iPhone 3GS to iPhone 4 to the new iPad), but all-in-all, it is still a very consistent ecosystem. From a developer standpoint, the common OS and GPU architecture means texture compression is nearly the same for all iOS devices, making this platform particularly appealing for game development.
Android is a bit more tricky. On the one hand, the enormous install base of Android-based smartphones and tablets makes it almost impossible for us to deny that platform completely. But on the other hand, the huge fragmentation of the Android market (with dozens of manufacturers producing hundreds of devices with a myriad of different hardware specifications) and its high level of software piracy make it pretty hard for us to release a title on Android and still turn in a reasonable profit. We hope that this will change, at least to some extent, with our first free to play title out.
Last but not least is WP7. Unfortunately, Microsoft’s current OS does not have that much relevance for us at the moment because it doesn’t support native game development. Making our titles available for WP7 would require us to fully convert them from native code to managed code, and that would mean quite a lot of additional effort. If you consider the rather modest sales of WP7-based smartphones and Microsoft’s announcement that it will finally allow for native code support in WP8, it appears to us that it would be better not to optimize our games for WP7. Instead, we’ll wait until its successor comes out.
Madfinger: Our goal is to get our games to as many people as possible, so it is in our best interest to support as many platforms as possible. This is why we chose Unity 3D as our technology. As a result, we can port our games to other platforms very easily. On the other hand, we cannot support platforms that are not supported by Unity 3D. For example, we cannot support WP7 because Unity requires native C++ code. We hope this will change with WP8.
Regarding the challenges that we are facing, the biggest problem is the fragmentation of Android versions and device types, and thus increasing testing and polishing. On the other hand, we observe the biggest audience for hardcore games mainly among the Android users. Apple, to the contrary, does not provide developers with dev kits or information before it releases updates and new devices, meaning developers cannot get ready for this change or develop apps considering what will come next.
Mediocre: As long as we can use a common programming language, cross-platform development is manageable. In our case, we use C++ for the actual game and use custom setup code for the two platforms. Audio requires two different implementations, as there is no OpenAL interface on Android. Since we are a small team and do all the work in-house, we strongly doubt we will support WP7 phones until they can compile and run native C++ code. Supporting a different audio or graphics API is no big deal, but rewriting and then maintaining two separate branches of all the game code and support libraries is just too much work.
Vector Unit: All of our games are built natively with C++, with just a thin layer of objective C or Java wrapped around them. Our Vector engine is cross-platform, so it’s relatively simple at this point to generate builds for multiple ecosystems, and it works well for us. Our games, so far, have sold similarly well on Android and iOS.
With that said, the challenge on Android is support. Fragmentation is an issue, and supporting multiple hardware specs can be a pain. Support and compatibility testing on iOS is much easier, but then the marketplace is much more crowded and competitive, so there are trade-offs.
Tom's Hardware: What can Apple, Google, and Microsoft do to help convince developers that they have the operating system that deserves the most attention? Are marketing considerations and budgetary constraints forcing mobile game developers to limit their efforts to Android and iOS only? Do you find that a user of one platform is more likely to purchase games than others, or is it simply a matter of how many devices are out there? Do you have other considerations (like an app approval process)?
Fishlabs: The crucial point is not the install base of a certain platform, but how much money you can make on that platform. Take the Blackberry Playbook, for instance. The addressable audience is tiny compared to iOS and Android. However, Playbook users seem to be willing to pay for content, and Blackberry World is a robust store that even supports operator billing. RIM claims that 13% of its developers make more than $100 000.
In combination with the fact that porting from iOS is fairly easy if you have a C++-based engine running your game, we expect Blackberry to become the second attractive platform next to iOS, at least for premium developers. If Microsoft is able to establish a seamless experience with Windows 8 and Windows Phone 8, combined with tight store integration featuring proper billing and quality-focused content offering, this will also make a very tempting proposition for developers. This is where Google still has a lot of homework to do. Despite its enormous install base, Google Play is far from perfect. That is also the main reason why many OEMs have launched their own app stores, fragmenting Android even further.
Madfinger: Developers support ecosystems that generate the most money at least cost. Even though we love our work, as much as any other company we have to consider profit. Every company has to pay employees, bills, and so on. Thanks to our multi-platform engine, we are able to support iOS, Android, and hopefully in the future WP8 without having to invest a significant amount of money. Regarding the process: the simpler the better. We are small company, and every extra hour spent adapting our game to other devices or platforms delays the release of our next game.
Mediocre: We originally planned to release our game on iOS-only. Everybody we talked to said the same thing: an Android port would not pay off. However, we strongly believed in Android as a platform, and in retrospect, that turned out to be a good investment. There are many big-name games being released simultaneously on Android and iOS now, and it is definitely considered a proven market. Numbers definitely count, but I think you have to trust your gut feeling too. It is easier to get visibility in less crowded markets, which is an important consideration.
Vector Unit: Discovery is the single biggest issue in the various app stores. Currently, all the app markets base most of their discoverability around rankings, which is unfortunate. That is not how people generally consume other entertainment products, like movies or books. They find what interests them, and disregard whether it is the #3 movie or best-selling book. I think developing a rich system around discovery and recommendation would be a huge attractor for developers, for any platform.
Ultimately, it comes down to audience size and activity—both Android and Apple are similar this way. We currently do not support WP7 for two reasons: the WP7 market is much smaller, and it does not support apps written in native code.