code, impressions

The “Ridiculousness” of Chromium for Ouya

I bluntly stated last month that the official path for compiling Chromium for Ouya was “ridiculous.” It was an opinion born of just reading through the steps involved and writing them off as something that was far and above more complicated than the other processes for GameMaker, Unity, or even MonoGame. For HTML5 development, something that should have the lowest barrier to entry to getting started, it seemed to require detailed knowledge of manipulating command-line options and a willingness to invest a great deal of time just to get up to the point of starting to test HTML5 code on the Ouya.

Yesterday afternoon, with my opinion firmly in place, I decided to test this. Previously, I had merely labeled it and moved on. This time, though, I was going to actually commit to the process and see exactly how detailed it got and how long, approximately, it would take another person to follow.

Here’s what you need to know before even getting started at all buried halfway down the official guide.

  • You MUST have at least 80 GB free. This is the size of the Chromium source while compiling it.
  • When the guides states “The guest needs a minimum of 2GB of RAM to compile, 4GB is recommended,” what this actually means is that your physical system should have at least double that. A “minimum of 2GB of RAM” means your system should have 4GB of RAM. For the recommended 4GB, this is 8GB of physical RAM.
  • You MUST use a 64-bit system. This is the hidden requirement behind the guide pointing at the 64-bit build of Ubuntu. Chromium won’t compile on 32-bit systems.

It’s not as much of a problem as it was a few years ago, but 80GB is still a rather big commitment for just the source of a project. I was able to meet this first requirement fairly easily, though.

As for the second, well, I don’t meet it at all. My system only has 2GB of RAM total and I haven’t been willing (or even able) to upgrade hardware on a system I hope to replace in another year anyway. (Assuming I have the funds at the time.)

Still, I thought naively, I should be able to get it done using only 768 of RAM for a guest system (using VirtualBox). Oh, and here was a mistake that cost me eight hours of work, I thought I could do it with a 32-bit system too.

Yeah, it didn’t work.

Starting at 1:30 PM yesterday, I wrote down the time and started the download of VirtualBox. After getting it installed, a 32-bit ISO of Ubuntu downloaded (again, wrong version), I setup the system and started the journey of installing and configuring different things. A process that stole my entire afternoon and, as I mentioned before, didn’t work in the end.

After spending nearly four hours just downloading the Chromium source itself(!) and an hour downloading and installing the Android SDK, I fell asleep at around 10:30 PM last night. This morning, after finally getting around to the part of starting the compiling, I was greeted by the message that told me I couldn’t do it. Chromium will not build on 32-bit systems.

It was at this point I gave up completely. Never mind the fact that I had lost eight hours to this, my system wasn’t physically able to do this. I could not, even if I wanted to invest all the time again to setup a 64-bit system in VirtualBox and go through downloading the Chromium source again, even start the compiling. My older 32-bit, 2GB computer wasn’t enough to compile the source. I was done.

However, the overall narrative goes on without me.

It turns out, after doing some research into the subject, that there isn’t support for the Gamepad API in Chrome for Android anyway. There’s a patch in the works, and it might even make it in at some point in the coming weeks or months, but for right now, even if I had gone through the whole process and was able to bundle my own compiled version of Chromium with some HTML5 code, it would not have support for the Gamepad API, the main input method for the Ouya.

My opinion, then, hasn’t changed. Right now, going through the motions to compile Chromium for the Ouya is still ridiculous. Using other software like PhoneGap (Cordova) or even CocoonJS will give you this basic, cursor-based functionality on the Ouya. There is little reason, as of this writing, to go through all this and expect to have the normal, gamepad input.