This story begins the usual way really, couple of guys making games, submitting said games to cons. Trekking out to said cons with said, said games. But when you’re so small the machine you’re showing with is your personal laptop and main dev machine… there’s some stress involved in going to the bathroom or grabbing food. It’s not just that it’s a $2k Macbook Pro, it’s also very large chunk of your life/business. So my business partner Zenas and I started exploring various lower cost and high portability solutions. Namely the Raspberry Pi 2, Ouya, and finally the Intel NUC.
The Raspberry Pi 2 was the first box we tried. At roughly $35 it’s not a big deal if anything happens to it. The RPi2 is a lot beefier than the first RPi sporting a quad core and some minimal hardware acceleration built in.
We ran into our first problem: We’re a Unity shop, and while Unity does target RPi’s OS of choice, Linux, it doesn’t build an ARM compatible version. Luckily, it does target Windows IOT via Windows 10 Universal builds so I hacked away at that. I rewrote more than a few things since the .Net subset it builds to lacks reflection. (It works closer to building for iOS where Unity builds a project, that you then go into to build/deploy.) I did get it running… kind of.
We ran into our second problem: The test game, Super Rock Blasters, appears pretty simple graphics-wise, but uses several fullscreen post effects to make those simple graphics pop. It chugged. It wasn’t even trying to run our post effects, it was chugging on pure un-textured geometry and it was locked to a weird resolution. I tried optimizing but I found out that Windows IOT hasn’t implemented any support for hardware acceleration. (In fact I was hard put to find any OS for RPi that has hardware acceleration.) So the RPi2’s GPU is sitting on it’s hands while the little quad-core brute forces out rasterized triangles. So we moved on from that idea.
The next box we tried is a leftover Ouya at the Game Forge. With Ouya bought out by Razer and the Ouya hardware entering it’s end of life it’s not that much of a concern if it gets damaged. (though there is no way to replace it…) I’ve ported games to Ouya in the past, so several long downloads/installs later I built and pushed SRB over. It ran fairly smooth (Ouya’s API squeezes a lot of OPs out of the their little box) but the max supported graphics API is OpenGL 2ES. So again, things looked kind of shitty. For our less post-effect intensive games such as Monsters! or Dungeon Sweeper it looks hella fine, so we’ll probably take it to hook into a spare monitor when we have room.
There was much optimization to be done if we wanted to show SRB on an Ouya, so we talked it through. Eventually we decided we wanted to get an Intel NUC for our main demo PC. The NUC is a book-sized mini PC similar to the Gigabyte BRIX. They call them book sized, but honestly I’ve seen far bigger… books. We knew it would have the horse power, and since we didn’t currently have a SteamOS box we decided to kill two birds with 1 stone… which led to an entirely different adventure which I’ll cover in the next post.