May 28, 2013 Page 3 of 10
David Kim (CEO)
Prior dev background (platforms): iOS, Web, PC, consoles
Shipped Android titles: Star Girl, Pretty Pet Salon, My Car Salon, Robo5, Pretty Pet Salon Seasons, Lord of Magic, Pretty Pet Toy Store, Pig Rush, My Car Salon 2, Pet Café, Pretty Pet Tycoon, Top Models: Sports Edition, and dozens of others
Preferred toolset: Depends on the app in question, but all the way from Unity to Cocos2d-x, plus our own proprietary tools
Is fragmentation still a major issue for you?
Android fragmentation is an exaggerated issue. It has never been a worry for us, and we tend to test for greater compatibility than most developers. Different screen sizes are a manageable issue as long as you support the basic Android form factors and let the OS handle scaling.
Processor and graphics power do limit which games can be played on a device, but people who buy ultra-cheap low-end phones are probably not expecting to play too many games on them. That said, Pretty Pet Salon will run on most hardware, and it achieved substantial success, so it is possible to work around the limitations.
In terms of software fragmentation, this varies hugely country by country. We publish our findings on our blog, and you can see the radical differences between high-end and low-end markets there.
We look at it as an opportunity -- managing compatibility became a competitive differentiator for us. Really, the fact that the market is fragmented into various hardware and software just means that consumers have choice, which is a good thing. Anyone struggling with these fragmentation issues simply needs to figure out which devices and OS versions are most popular among the consumers/regions they want to target, and then tailor their apps to those devices and Android versions, if necessary. It can sometimes require slightly more development time and Q&A resources to address the Android market, but not as much as you'd think if you look at some of the alarmist reports on the issue.
Do you target and test for specific devices?
Yes. Although our general principle is to target and test for a multitude of devices in order to offer everyone an experience that is as good as possible, we still have to prioritize the devices most used by players of Animoca games. The top devices vary by region and by country. In India, for example, where most users are on lower-end, more affordable phones, the top 10 phones for Animoca users tend to be relatively inexpensive Samsung devices, such as the Galaxy Y, Galaxy Fit, and Galaxy Ace, while the most common device in the higher-end market of Hong Kong is the much pricier Galaxy Note 2, other high-end Galaxy products, and a couple of high-end Sony devices.
Do you have any tips for optimizing the Android dev process?
- Build a testing framework in your games where the game plays itself. This is a great aid for the QA team as it adjusts the speed and moves through the levels faster.
- Minimize external calls to external servers via effective use of caching as well as batching multiple calls together.
- Test against high-latency networks. Animoca has an internal tool that can traffic shape various network conditions.
- Catch your exceptions, including run-time exceptions.
- Use a crash-reporting tool within your codebase and your development workflow. Examples include Bugsense and Crittercism.
- When you have to do concurrent programming, don't roll your own from lower-level constructs. Try to use high-level facilities such as AsyncTask, ThreadPoolExecutor, etc.
Page 3 of 10