Curious to get feedback from game developers, what their experience has been working with multiple devices, software version and now Android TV. What's the best way to get up to speed with shipping games on Google Play?
Android game developer here. The fragmentation is massive and annoying and very hard to deal with. I've found it best to try to work around the problem by minimising my OS dependencies where possible. This is actually easier for games than for apps -- games can take over the whole screen and have their own weird UI, while apps have to integrate nicely.
I'd say:
- Find a nice robust framework. I'm using the built-in NativeApplication and I regret it. I think SDL might be a good bet. Lots of people like Unity (but it seems very heavyweight to me for small games).
- For a portable game, C or C++ is your best bet right now. (Or Unity's C#.)
- Pick a nice baseline API level and stick to it. You can actually go right back to API 8 (Android 2.2!) and you get OpenGL ES 2.0, which is an important milestone for games. I'd like to update my games to ES 3 at some point, but that only works from Android 4.3 onwards (fewer than 50% of users) so I'm holding out for now.
- Avoid using Java if you can help it! Seriously.
- Avoid using the file system if you can help it. The APIs are very bad and the hardware is often bad too, many manufacturers seem to cut corners here.
- Figure out a good crash reporting / feedback system. I haven't actually found a good one for native apps, I'd love advice on that! HockeyApp is great on the Java side.
- Figure out a good testing system. I ended up just buying lots of old phones and tablets on eBay and Amazon. Getting a good mix of screen sizes and CPU types is key (there are quite a few x86 tablets out there, it turns out).
Ooh, good question... I just started using Steam for a PC port, and its killer feature is the way it only syncs the changes for each build. So I can fix a bug, upload an update, and get it in players' hands within minutes. I'd really like to see that on Google Play too.
In Play you currently have to split your app into "expansion files" if it's above the maximum APK size, upload each file in full, and then it takes hours to actually push the update out to users.