In May 2016, we released Ellipsis for Apple TV. I want to explore how we managed to bring our iOS game over to Apple TV in just under three months and the interesting challenges we faced along our path.
Why Apple TV?
Apple TV represents a great potential opportunity and a valuable extension to the exisiting iOS ecosystem. This is why we made Ellipsis a Universal app. Those who already owned the iOS version received new platform support for free! Our new Apple TV players would get an experience they can enjoy on the couch at home or on the go on their phones and tablets, all synchronized nicely together.
Apple TV is a new platform with a small user base, but there are also fewer games available (let alone high-quality games). We saw this as an opportunity to stand out and also to grow our fan base in an organic manner. We’ve been lucky enough to be rewarded with multiple features since we launched.
Also, the game just looks just so cool on a big screen TV, we simply couldn’t resist.
It only took us a couple days to get a working build running on Apple TV. This is a testament to one of the strengths of the Unity platform. By the end of the week we had basic controls working using the Siri Remote and our basic game loop working.
We spent the next two months working through the technical and design challenges we faced.
Apple TV is a young platform, which means it has a few bugs and some growing pains. Sometimes you can work around them, sometimes you can’t. Unity itself has only recently come out of Beta for the Apple TV platform. Luckily their engineering team is very responsive and helped us quickly resolved the major issues we encountered.
Some issues reside directly in Apple TV (I can make GameCenter hang fairly reliably in pretty much every game released so far). Other issues you just side-step. We had random performance spikes (up to 1 second long freezes) using Metal on Apple TV. Basic research indicated that this was a known problem and it’s unclear where the cause lays (Unity’s implementation or tvOS specifically). Switching back to OpenGL gave us smooth solid performance, so we just ignored the issue. We can’t always afford to wait for theoretical patches that may get released in the future.
Overall, working in Unity’s beta program has been quite beneficial. You get access to new platforms quicker and the engineering team is super responsive to well-described issues. This was a new and positive experience for us.
Our biggest challenge was the input controls. Ellipsis was designed for touch surfaces and direct control. This maps onto the Apple Remote but the reduced surface area presented a lot of difficulties. We had to iterate and playtest endlessly to get an experience that felt just “right”, with a lot of tweaking of the acceleration curve, both at the low-end and high-end movement speeds.
We also made sure to properly support gamepads. This experimentation opened up an interesting and fun alternate control scheme, which we can hopefully bring to other consoles or even the PC perhaps.
Just like in the iOS versions we also encountered quite a challenge teaching the player without using any text. We were committed to keeping the game as accessible as possible and foregoing the use of text. This meant that we had to playtest our opening sequences again and again until it just felt right.
Surprisingly, we had to go through 3 or 4 different control scheme for the map until we hit on one that felt intuitive to all players. I say surprisingly because we both felt like the map would just work perfectly “as-is” when we initially started working on the game. It turned out to need most of our focus the last 3 weeks of development.
If you’re considering developing for Apple TV, I would recommend you focus on these areas (along with making a great game):
Create a high quality experience. Apple TV is actually fairly powerful hardware in a small box. You can accomplish quite a bit if you do it correctly.
Get your input system right. You have to support the remote, so design a game that leverages its strengths instead of limiting yourself to its constraints.
Make sure you follow Apple’s style and design guide. There is a consistent experience expected from Apps and Games on the system. Consider these from early on so that you don’t have a difficult time during the submission process. Specifically, the Menu button always has to exit the app when you are at the top level (this caused us problems during our tutorial section where locked off a lot of behavior). Also handling the Pause button is important, it has to be behave consistently to the Menu button.
Make use of TestFlight extensively for beta testing. It’s also a way of getting your game “pre-approved” by Apple without having to go through the whole submission process. They will test your game for bugs and usability. This was invaluable for us.
Bringing Ellipsis to Apple TV was a worthwhile experience. We timed the launch with a major update to the iOS version. This was well-received by both players and the Apple Editorial team alike and we’ve been lucky enough to get featured again for both platforms. It also helped solve multiple design issues that we hadn’t even considered before, paving the way for future releases on new platforms.