The week after WWDC I wrote an article called The New Apple TV SDK which generated quite the debate. I postulated that Apple had in fact enabled the use of Apps on the Apple TV, which needless to say, was a feature that many developers have been waiting for since the switch from the original Apple TV OS to a modified version of iOS. What developers haven’t realized is we already have that SDK, we can already deploy custom apps to the Apple TV (without Jailbreaking), it is far better than we expected, and it is quickly moving its way through Alpha into Beta right under our noses.
I have spent the last few months tinkering with the system which I had previously described, as well as watching the progression across multiple iOS updates as well as an Apple TV update, and it without any doubt that I can say Apple is indeed working on this approach while waiting on two remaining items before they begin to promote or acknowledge it. With iOS 7.0.3 (11b511) and Apple TV 6.0 (6646.65) running on a 3rd Generation Apple TV Rev A(MD199LL/A) and an iPhone 5s I can safely say that most games are very playable, albeit can be hard to control. I would say that the current system running the latest hardware is well within the Alpha, if not Beta, range of software development. Before I dig into where things are currently at, and where they need to go, I first want to recap what discussing for those who are new to the conversation.
Apple has sold roughly 700 Million iOS devices since the introduction of the original iPhone, in addition they have sold in excess of 13 Million Apple TVs. Compare that to the 78 Million (as of March 2013) PlayStation 3’s sold since it was released in 2006, and 78.2 Million Xbox 360’s sold from its release in 2005 through June 2013. It is no wonder that the iPod touch (and iPhone) is considered one of the world’s leading gaming platform, with roughly 9x the sales of traditional consoles. When looking at the number of available titles, Xbox 360 comes in with 958 games, PS3 with 793 available games, and iOS with an almost unbelievable 166,510 games. Yes, the average quality of an Xbox or Playstation game is higher than that of the average iOS game, but that is a trend that we as developers can change. The average Xbox game sells for $24.60, while the average Playstation 3 game sells for $28.92, once again the almost unbelievable number for average iOS game price is 76¢. So, Apple has significantly more devices, with an exponentially larger game selection, at a fraction of the cost. This is a good position to be starting from.
With 700 Million iOS devices in circulation I am going to make an assumption, you already have one, if not then the following examples aren’t specific to you, but you may still find them interesting. The upcoming next generation consoles will be available next month and if history is an indication they will remain mostly untouched (hardware-wise) for the next 7-8 years. The Playstation 4 will cost $399 while the Xbox One will cost $499, assuming you are one of the 700 Million iOS device users and not one of the 13 Million Apple TV owners, a new Apple TV will set you back $99. Apple’s system cost you 1/4th to 1/5th that of the competitors, keeping in mind there are roughly 170x the number of games at about 1/30th the cost. iOS devices will with all likelihood continue to be updated every 12 months or so.
This all sounds great, a cheaper console, more games, fraction of the cost, but there is a big problem. You cannot make a game for the Apple TV. There is no denying there is an SDK somewhere inside of Apple, after all they have apps for Netflix, Hulu, HBO, NHL, MLB and more, but this SDK is not available to the unblessed among us and is likely never to be made widely available, I would also argue that we don’t want it. The Apple TV is priced so low because it doesn’t have a game quality CPU or GPU, it doesn’t have the onboard storage required for gaming, nor does it even come with a controller that would work for anything more than the most basic games. An Apple TV SDK would be a waste of our time as well as a waste of Apple’s.
What we do have is 700 Million iOS devices which have a great CPU & GPU, of which have been increasing in quality exponentially with each release, a built in accelerometer, networking capabilities, long battery lives, and an interactive touch screen. They do however have one fatal flaw that until very recently has been a showstopper, there is no tactile feedback of the controls. You cannot play a game on your TV while staring at your 4 inch iPhone screen, it just doesn’t work. Apple has however introduced Game Controllers for iOS 7, which are physical devices which act as gamepads for iOS devices either connecting through the dock or via Bluetooth. The first of these devices should be hitting the stores in the next couple of months. This allows you to play a game while not staring at your iPhone, letting you focus on that large screen TV you paid all that money for last Black Friday.
Apple has shifted the processing power away from the console and into your phone. You will always have your game controller with you, because you always have your phone with you, which will also act as the console itself. Your games travel wherever you go, when visiting a friends house you can all pull our your iPhones and play a 4 person multiplayer game on the big screen with only the addition of a $99 Apple TV (for those of us without one). There is real genius here, and it could very well turn the tide for Apple in the living room in one instant and forceful swoop. 700 Million powerful game consoles are already in the pockets of people all across the world, they just need an outlet to the big screen. The cost of an Apple TV isn’t much more than high a price name brand cable for your TV, not that you would ever been taken in by gold plated digital cables.
Now that Game Controllers have (or shortly will) solved the tactile feedback problem the only remaining issue is sending all the video data from the iOS device to the Apple TV for display. This is where things get a bit tricky. Modern consoles render game data on the Graphics Processing Unit (GPU), it hands off vertex information and textures, which the GPU can then put together very quickly and feed out to the screen. The problem is the Apple TV doesn’t have a powerful gaming GPU so you can’t send over all that texture and model information because there is nothing on the other end to put it all together. This is where Airplay enters the equation, Airplay, for those unaware, has been around for a long time, since June 2004 to be precise. It was originally designed to stream music from iTunes to Airport Expresses hooked up to speakers throughout your home. In 2010 they updated Airplay to be able to play video as well as audio and opened up the possibility of the remote gaming consoles, though I can’t imagine it was on their radar yet. Airplay streams the video and audio data over a local WiFi network and the Apple TV simply outputs it. Latency was never a big concern with music or video since the video on your Mac didn’t need to be synced with the TV, having a couple of seconds of lag wasn’t going to bother or even be noticed by anyone. Except when reimplemented and reused for real time gaming, latency on a controller during gaming is an experience killer.
A local WiFi network has a latency of about 3ms (miliseconds) which is low enough to not even be noticed. However Airplay latency is a bit higher since there is a lot of overhead between packing and unpacking data. However this latency has been decreasing over the last few months (and probably longer) between iOS updates and Apple TV updates. While I would still say the technology has a ways to go it is certainly moving in the right direction. I am able to play modern and graphically intense (for iOS) games like Jetpack Joyride and Fieldrunners 2 on my Apple TV without more than the occasional hiccup. This system is not yet designed for the experiments I have been running yet either, the iPhone must mirror the display and present data on its own screen as well as the Apple TV screen, this undoubtedly has a lot of performance overhead.
Apple is without a doubt in my mind focusing on improving Airplay and preparing for the Game Controllers to become widely available and distributed. The TV ads almost write themselves, “The next generation of gaming console is already in your pocket”, “150,000 games whenever you go”, and “The best gaming console has already been here this whole time”.
I have included a video of several games being played on my Apple TV including Infinity Blade II, Jetpack Joyride, Fieldrunners 2, Hungry Shark: Evolution, and of course Trivium (unabashed self plug). As you can see the performance is better than expected and all 5 games are very playable with absolutely no modification or tweaks from their respective developers. On a special note, I was impressed at just how well Infinity Blade II ran on my Apple TV, especially not even being run on a last generation iPad, it is however difficult to play these games while also holding a camera. Remember these games are playing over Airplay wirelessly, my iOS devices are not physically connected to the TV in anyway.
Recording was performed on a 5th gen iPod touch, devices used to display content were a 2nd Gen Apple TV, iPhone 5, and an iPad 3. Older devices were used to demonstrate performance.