How we ported Fabulous Beasts to Android
Published 5 years ago
Porting to new platforms doesn't have to be scary, even when you're making a game with custom hardware
Back in October we introduced to you our game, Fabulous Beasts. It's an exploration of a new frontier for games: where physical tabletop games and digital ones meet. It's also a really fun, cooperative game about skillfully and smartly stacking beautiful beasts into a tower on your tabletop and seeing each one pop into a vibrant world on a connected screen. And we've just launched it on Kickstarter. 
But we've had an elephant in our studio for months (NB this is a metaphorical elephant, though for many reasons, from animal research to simple companionship, we would very much like a real elephant in our studio). We couldn't quite face a key problem that most game developers have to face sooner or later. It's the porting elephant. The platform elephant. The problem of being on every device your fans (or potential fans) have.
It's a terrifying issue for a small team like ours, but late last year, with the launch of our Kickstarter campaign fast approaching, we were finally forced to deal with platforms. And what we experienced surprised us.
Hang on, we had better back up a bit. So Fabulous Beasts is built from new sensing hardware that we've developed ourselves in our studio, and it runs on Unity. For the past year of development we've been solving a forest of interesting problems, of electronics voltages and battery life, of how to sense a tower accurately and invisibly, of making stacking as smooth and fun as Jenga. We've learned about RFID and load cells, and we know more now about Bluetooth than we could ever have dreamed.
We're just four creatives - a programmer, electronic engineer, a product designer and an artist - and solving all these challenges has taken up all of our time and mental capacity. So, very early on, we started using iPad as the platform that the technology connects to, and we stuck there. Why not? It has a beautiful screen, it's ubiquitous enough that most of us have one, and it's relatively simple to code for.
But we knew that this focus was holding Fabulous Beasts back. When we took it to events, such as IndieCade and GameCity, we'd always be asked, "Will it be on Android?" and "I don't have an iPad? Will you support my phone?" But as a small team, could we really support phones and Android? It was a scary question, and we basically buried it to focus on perfecting the other aspects of the game itself.
Late last year we reached a point with the technology and game where we were really happy with them in time for our Kickstarter campaign. We began writing its pitch page, found ourselves trying and failing to justify the fact that only being on iPad was severely constraining Fabulous Beasts' audience. It was time to face the elephant and look it right in the eye.
Being an entirely metaphorical elephant, this act took the form of George, our programmer, spending an afternoon in Unity porting Fabulous Beasts to Android.
It worked by 3pm.
In fact, the longest part of the process was downloading the Android SDK on our terrible studio wifi.
So Fabulous Beasts is a rather non-traditional game, but it actually runs using standard Unity, other than for one element. We talk to the tower over Bluetooth, which is handled for us by a Unity plugin, Bluetooth LE for iOS and Android, which we found on the Asset Store. George held his breath when testing the port for the first time, and just as quickly let it out when he saw it simply working.
An issue that seemed vast suddenly became manageable, because Unity made it straightforward. With most of an afternoon still ahead of us, George got it running on iPhone and Android phones, too. We had suddenly increased Fabulous Beasts' potential reach by several factors. It was a good afternoon.
Of course, we have plenty of extra development and testing ahead of us. Android is a many-faced beast, and we need to plan for that, and smartphones' smaller form factor and variety of screen sizes means we have to put a good deal of attention into UI.
Until now, we've designed Fabulous Beasts for iPad's 4:3 screen, but luckily George had  been thinking ahead from the start and had positioned and scaled screen elements such as score and the special Miracle UI relative to the corners and each other, rather than absolutely. It meant that from the off, the game looked pretty good on George's 16:9 Android phone. Not perfect yet, but it's a case of fixing rather than redesigning. All in all, we were in a wonderful position.
A lot of the reason why the process was so simple was down to the decision to use Unity, and then to ensure the software is as simple and standard as possible, instead having our hardware do the heavy lifting of running all the unique things we ask the game to perform.
Still, it was a nerve-wracking time. Today, being able to put Fabulous Beasts forward as a universal app for iOS AND Android makes us feel cautiously ready for Kickstarter, and all the expectations of people who are hopefully interested in our game that it runs on their hardware.
Thanks so much for reading. Fabulous Beasts is on Kickstarter now - we really hope you like what you see! And you can keep up with all our news through Twitter, Facebook and Instagram.
Alex Wiltshire