Supporting different platforms for your game is hard enough with respect to different languages, aspect ratios and store fronts (as I mentioned in my previous post), but what about how players interact with your game on the different platforms? There's a wide range of controller types, there are more external controllers than I can name, and more TV manufacturers out there that have app stores for games than I care to rant about. So which control schemes make the cut and how do you follow through?
The most basic decision is whether or not to support physical controllers, since there are so many out there. The iCade has been one of the biggest names in external controls for mobile as well as MadCatz. There have been others that have developed phone cases with built in controls like Logitech. There have also been apps that act as external controls for games which would also throw a wrench in what to support.
Choosing what to support will then lead you to the next question of how to support the external controls. There will need to be logic in every scene of the game to handle every event. What happens to the on-screen controls when a user's controller is connected or disconnected from the device? How does the user navigate through menus with a connected controller? What if the user is in the middle of a level when the external controller disconnects for any reason? Oh the madness of every scenario you'll have to support now!
What if you plan on having swipe controls or accelerometer input as a major game mechanic? Can you still support different controllers or even different platforms? That's a loaded question. If you plan on releasing your game on the FireTV or Android TV, then you'll likely find your self in a bind, unless you plan on developing a companion app to your game. Honestly, that's not the worse idea. There have been plenty of apps like JoyPad (which is long deceased) and even Gameloft has an iOS Controller app to make it possible to control a game on an LG TV. Or if your only platforms are iOS and TVOS, then you're in luck! The AppleTV controller has both touch and accelerometer built in, so no sweat.
Let's go back a step and assume we don't care about external controller support, and that we just want to release on the only three mobile OS's still supported. Yes, three…iOS, Android, and the dying Windows Phone. Technically it is not dead yet, even though Microsoft is killing it softly. Supporting iOS doesn't require any thing special, but Android and Windows Phone both require you to support the built in back button through out your game. Add it to your task tracker of choice, because you'll need to support it in every scene and every menu of your game. It is more of a tedious task than a difficult one, either way QA will grill you on it.
Opting in to different controller support is not an easy task, but it is definitely one that should be thought out from the beginning of your game design. On the other hand, if you have a great game mechanic, you shouldn't try to shoehorn in external controllers for the hell of it. Fruit Ninja has been very successful with out making a compromise to their game design. We've been able to support many different external controllers in our previous titles, and more recently we decided to support Amazon's FireTV in our game Count Crunch's Candy Curse. While it took a couple more days of development and testing, it turned out to be our best-selling platform, but I'll save that rant for another day.