My Ouya Review
Its been a few weeks now since I have gotten an Ouya, played with it, tried to develop on it, then subsequently tried to return it, got denied, then sold it on eBay.
As a person who was a supporter of the project (but not a backer), as an Android developer, as a someone who believed in what they said they were trying to do, as someone who desperately wanted the Ouya to be what it said it was going to be, I believe I can be as fair to the console as possible. This being said..
My ratings go from 0 to 5 stars. I am giving it a 0.
First I will go over the pros of the Ouya.
1) Its little and its pretty. So is the box. The greatest fun I had with the Ouya, was before plugging it in.
2) Despite Ouya's best efforts to hide it, the power of the CPU inside it IS quite beefy, and so is the RAM attached to it.
3) Once properly sideloaded, many android apps worked just fine, giving it a bigger base of software than immediately apparent at first.
That pretty much ends what it has going for it.
I will start with the Consumer facing cons. There are many, but i'll try to keep it short.
1) The controller I would rate a 2 out of 5. Its batteries are put in from the front, by removing the front plates of the Ouya controller. I cannot see any reason that this could not be done from the back, where it would not feel you were disassembling your controller to put in batteries.
2) No Select or Start button on the controller. Guys, these are standard buttons that have been being put on nearly every console controller since the NES. Why do you not have a Select or Start button? Also while I didn't find much problem with using the trackpad itself on the controller, it would have been really nice to have provided some sort of mouse button to represent a click rather than making me TRY to do it on the touchpad.
3) Wireless was spotty at best. But that's not the worst part. When I lost wireless connectivity while playing FF3, it kicked me out of the game and made me reconnect! That makes me wonder just what it is doing that I had to be connected to the internet to play FF3..
4) The user interface was unstable. It started crashing back to the menu after a few apps were added, while moving about the menu. The whole experience of using the Ouya Menu is unrefined.
5) On some games the controller lags. It doesn't do so on all games, but I will posit a theory why later, in the developer cons section.
6) Most of the games on the market are either ports from Android or poorly done. One example is Giana Sisters. While you are playing Giana Sisters, Giana FLICKERS. There is absolutely no excuse for Giana to flicker when you are playing a port of a platform game first released on a Commodore 64, where she did NOT flicker. "You don't know jack" had unexplainable load times between questions not experienced on any console, and FF3, just felt like everything classy about a Final Fantasy was stripped out of it to put it on Ouya.
7) This con I only give a half point because, well, they didn't say we were getting it, but no support for Google Play bites. This could be easily fixed on the consumer side, but, cannot be due to stuff to be described soon.
8) Customer support is terrible. Absolutely terrible. By the time I got a response from Support about the 'lost root after factory reset' problem, it had already been sold on eBay for a week.
9) If you bought an Ouya at Game Stop, please be warned that they are NOT taking them back. I think they have already figured out that they have been sold a false bill of goods and a piece of shit console. If you are stupid enough to buy one of these, your best bet will to find someone stupider on eBay to sell it to.
10) 8GB of onboard storage is not enough, especially when you're not giving us any other way to expand. What if someone wants to make an RPG? You could have given us a way to expand easily, but keep reading...
Now for the Developer facing cons, of which there are plenty.
1) I'm going to start with the biggest one first. Everything, and I do mean EVERYTHING you've heard about Ouya being open is a lie. A LIE. Anyone who tries to tell you different is a backer probably in denial of deep regret. Illustrations will follow.
2) Root. Yes the console comes with root, and seemingly easy to get root. But that comes with major caveats which I will list. The first one is BIG. If you do a 'factory reset' from the menu you will lose root. Permanently, or at least until they get around to fixing it. Could you fix it yourself? No. Because...
3) Ouya has no 'recovery mode'. You can flash a new ROM, but only through ADB which must be able to start first. If you cannot boot enough that ADB is running, you cannot recover, you have a brick. Once ADB is inaccessible, you are fucked, as there is no way to boot into recovery. This means every time you change something at root level you should be praying to your divinit(y/ies) that you did not change something that will keep ADB from starting, or put it into a boot loop, or stop it from booting at all, because if you did, you're sending your brick back to Ouya to get it fixed. I must add, that my phone, a specifically closed device, locked down as best as they can, has a 'recovery mode' that does not require the phone to boot to use it.
4) USB problem #1. The USB port is big, loose, and out of spec. It does not firmly hold USB devices in it. Because of that, USB devices in the USB slot can be unstable, not that you'll be using it much, because..
5) USB problem #2. As of the time I sold it, USB flash disks attached to the USB port cannot hold games. I mean technically it can, but there is no way to START your game from USB because it is not recognized as a storage device. Now mind you, the device gets mounted, at /mnt/usbdrive, but not in /storage/ where the Ouya could potentially see it. Therefore when you have a USB drive in, you will not see it in Storage settings, nor will it be visible anywhere unless your emulator or game can manually navigate to /mnt/usbdrive. Also nowhere is it documented this is where your USB drive got mounted. Except here, in this review, and some other forum postings. Good Luck!
6) The primary language for development, as well as the entire base of the Ouya Development Kit, is Java. Yes, your game, hoping to achieve highest performance as possible, is running on a JIT compiled language. This is the reason most games for the Ouya suck. Java is an inherently slow virtual machine. It is like being sold a Dodge Viper and driving it home, wondering why you can't get over 25mph, only to find out when you open the hood that it is running on a Briggs and Straton riding lawnmower engine. There are many advantages to JIT compiled languages, mind you, but Java is NOT the pick of the litter by any stretch. Why not LLVM? You could have used LLVM which spits out optimized code in any CPU's native machine code. Or you could give developers the option to compile to C or C++ directly. But you will see NONE of those options around. Even Google's optimized Dalvik code is about 10x slower than LLVM and about 12x slower than compiling straight to ARM.
7) Lets talk about hardware design choices, and where they decided to cut corners. This is a direct corellary to #5 actually in this section. According to section 24 of the NVidia Tegra 3, "The SD/MMC Controller can interface with SD, SDIO, and eMMC devices. Tegra 3 contains four (4) instances of this controller". How many of these devices are actually used in the Ouya? One, for the onboard 8gb eMMC. How much would have it cost them to provide a SD or Micro SD card slot on the side? Well they sure didn't need another chip to do it, as there are still 3 unused SDMMC controllers on the Tegra 3. And there is no interfacing hardware either, its just run a few traces to the edge of the board where a SD card slot (or MicroSD card slot) is placed, then cut a hole to let us stick it in. How much are these slots? Lets see on Alibaba I can get a lot of 100 for $15. That means.. 15 cents. For 15 cents you could have had a slot with unobtrusive, easy expansion for purchases of your Ouya, giving the customer the decision of how much additional storage to have. How much would that have been for the ~100000 units (a quite liberal estimate mind you) that may be made? $15000? I hope that bought you alot of cocaine because it sure didn't buy you success.
8) I will make this short and summarize the general attitude I've seen on the Ouya forums (several of them) from the developers of the Ouya, when people like me and others, request the features it should have been shipped with. At least one developer got hostile about the idea of a recovery, saying its not a high priority, that it 'may' come. People who ask how to get root back are not met with any sort of answer, instead being redirected to support. When I sent my email in telling them about the loss of root after recovery problem, well like I said earlier, they responded long after it was gone, then told me how to GET root normally, using the SU command, where I specifically told them in my support email I tried that and got 'permission denied'. With some of the design decisions I've seen in the init.rc files in the Ouya (I had actually already modified my Ouya to recognize my USB flash drive as a storage device, and it took me about 30 mins) I am not even sure they really know HOW to develop for Android there.
9) I think complaints about controller lag are not about the hardware. The hardware platform is solid, and except for stupid design decisions, the controller itself is solid. I bet there is no lag between the controller and Ouya on the hardware level. I just think the software, meaning the Java code the game runs on, is too slow to poll and update the controller enough.
So I will conclude with my philosophical summary about the Ouya.
We were promised an Open Console. Not "Open" as you are currently defining it, which is "Open to use our shitty ODK to make a game" but "Open to do whatever we want with the hardware", which is anything from "Play games from your mediocre market on it" to "Port a whole new version of Android on it and replace all your ROMS". That is the bill of goods you were hawking on Kickstarter, its what your backers expected, and its what you screwed them out of.
I don't believe Ouya started as a scam and sham, but that's what its become. I believe once they raised $8m on Kickstarter, the $ lit up in their eyes. I believe they are still sitting on alot of that money. I believe they're looking for every way possible to monetize the Ouya, they want it to be something different now. And they have forgotten what WE wanted from it. We wanted an Android platform we could explore. We haven't gotten it, and the Ouya forums are filled with people wondering where the platform they supported is, and developers of the Ouya that are subtly saying "That isn't our agenda anymore, because we don't make money off of you."
I'm losing faith that we will see an open Android platform, ever. Android x86 is close, and it has that nice ARM recompiler, but its hardware compatibility is spotty enough that no device i've tried it on has worked out. I like Android. I really hope it comes to the Raspberry Pi. The Raspberry Pi is the closest we have to an open ARM platform, but no Android yet.
I may follow another kickstarter promising Open Android with Root and Stuff, hopefully also with a Google Store.. and probably to my doom, just like I did Ouya. But I really do want it. But I won't trust the Ouya team again, even if they do make an Ouya 2, because I've seen their philosophy and could never trust them again for it.