As a hobbyist, I've always been fascinated with the idea of using tiny computers to build out game projects. I'm especially enamored with the idea of designing and constructing tiny arcade machines. I am a child of the 80s, and arcades were my first exposure to the world of video games. When I first heard of the Raspberry Pi, I was thrilled, and immediately started investigating how I could use it to drive a tiny arcade cabinet.

Sadly, I am not a low-level programmer. And I'm not an engine architect. While I've grown considerably as a programmer over the years, I just don't have the time or expertise yet to build an engine from the ground up. And usually, I haven't felt the need to. Engines like Unity, Unreal, and Godot have allowed me to experiment with development without having to drive that deeply into the tech side of things. But the smaller a computer you use, the more essential it becomes to squeeze performance out of it. After experimenting extensively with a Raspberry Pi (two different models, including the latest version 3) I have determined that this particular single-board computer is not viable for modern engine-driven games.

The RPi3 can handle games. But those titles have to be programmed specifically for it, using its native code or some manner of python engine. And even with those routes it's going to be sharply limited in terms of performance. The RPi3 GPU is simply not adequate. While the previous version of Godot could run on it, the new 3.0 deployment requires OpenGL ES 3.0, which the RPi3 just can't handle. Unity deployments are also sketchy at best. The RPi3 just doesn't have proper Android support, and the few distros that have been put out for it run sluggishly, with terrible support for controlling resolutions.

Thankfully, there are some alternatives now, even though they are a bit pricier. At the moment the two most likely candidates that I have my eye on are the ODroid XU4, and the Asus Tinker Board. The ODroid line has been around for a while, and the XU4 model is reasonably powerful, with some nice features available for it. It also comes with ARM Linux and Android support right out of the box. The Tinker Board has comparable features, with a general approach that seems like it will be very friendly toward hobbyists. Both boards come with a more capable GPU that DOES have OpenGL ES 3.0 support.

Is there any one else who is interested in the possibilities of such an approach, and does anyone have experience working with any of the alternative single-board computers?

When I was a kid, I remember my cousins having mini arcade machines. They had space invaders and pac-man on small arcade machines that ran on about 6 Double D batteries. (Those machines could be worth something now)

Now imagine a 10-12 inch tall arcade machine, with a single-board computer powering it, running off of a rechargeable lithium-ion battery (or just AC outlet power) with your home-made arcade game running on it. Ten years ago, this sort of thing would be a pipe dream. Now it's not only possible, but affordable.

While the OpenGL ES 3.0 compatible single-board PCs are bit pricier, they are still less than $100 each. And a decent set of arcade controls with a USB wiring harness can be had for $20 on Amazon. Smaller, single-board screens, even with reasonable resolution commonly go for around $50.

I've got some other projects I want to get to first, so I'm going to hold off on acquiring one of the more power-happy IOT boards. There's no hurry, and the Tinker Board's successor model should be out in a few months. But eventually I will be coming back around to this. I've got my Dremel ready for a little particle-board shaping.

Actually, I don't think you need to be a low level programmer or an engine architect to use the Raspberry Pi GPU to its fullest with Godot. You might need to write a few custom shaders, but the key issue is really creating your 3D models, textures and shaders, keeping the limitations of the hardware in mind. The GPU of the Raspberry Pi might be obsolete by modern standards, but it's far from useless. Rendering-wise, I don't see why, in theory, with Godot 2.1 you couldn't make a game for it roughly like Gran Turismo 3 or Forza Motorsport 1 (i.e. better in some aspects, worse in others, but overall on the same ballpark), let alone a game like The Legend of Zelda: Ocarina of Time or Super Mario 3D Land.

In my opinion, what is missing is people really interested and committed. I don't see the arrival of OpenGL ES 3.0 boards changing that. I am looking for some basic feedback to see if a Godot export template I've released can run on one of these boards (i.e. download the demo, uncompress it, run it... does it run?):

https://www.reddit.com/r/linux_devices/comments/8a3to5/godot_export_template_frt_looking_for_feedback/

https://forum.armbian.com/topic/6966-godot-export-template-frt-looking-for-feedback/

Almost one month and still waiting...

2 months later

Hi Very interested to know more about this, and might be willing to help out, as i'm a big fan of SBC's I own most of the mainstream and not so mainstream ones, and have a special interest in using them for game coding and teaching game coding. I'm brand spanking, not even tried to use it yet, new to Godot, (got some time this summer to dabble) so for now this is just me saying hi, and how can I be of help?

Apparently Blender will work on the Pi so that would be a help creating assets.. its also got a game engine which just happens to use python A game engine called Cafu also works on the Pi

You've got to remember 20 years ago Doom ran on computers with 16meg of ram and less than a GB hard drive, likewise the first Age Of Empires, so there's no real reason why you can't do something fairly decent on the Pi Like others have said try the earlier versions of Godot, if you're not familiar with the engine why go for the newest thing if the older is better documented anyway, more likely to work and more people to help

6 months later

A little update news on this subject...

I ran across a game engine that does actually work on micro-computers, called Tilengine. It is a scanline rendering engine that uses SDL2, has python bindings, and can run at a pretty good clip on micro-computers thanks to it's approach to rendering, and it's low-level C approach to coding. The obvious downside is that it is a relatively minimalist project without that many features, and uses a VERY old-school approach to rendering. Not even remotely as feature rich as an engine like Godot. But a potential option, for those who are hardware-constrained.

One nice feature of Tilengine is that it can be embedded. You can use it to handle rendering in other engines and systems. I actually cooked up the needed code to get it running in Unity. I've been thinking about doing the same thing for Godot, but I'm not in a hurry.

On the micro-computer front, the Orange Pi 3 just got announced and released for sale. This is a pretty promising Raspberry Pi alternative, with a substantial feature set, some nice hardware options, and very competitive pricing. The base model is $30 before shipping, and the tricked-out premium model is only $40 before shipping. It's GPU is OpenGL ES 3.1 compliant, so it would most likely be able to run Godot natively. It should also be able to run Android 7.0 out of the box, so deployments from engines like Godot, Unity, or Unreal should also all be compatible with it.

As with all non Raspberry Pi boards, there is worry about its software support and eventual community adoption. But that is par for the course for a lot of these hobby boards.

6 days later

Thanks for the info, Richard!

Actually got here because of the same idea of rebuilding/porting some arcades.

Another little update. Last week, I got a little impatient, and went ahead and ordered an Asus Tinker Board for myself. It arrived over the weekend, and I had a little time to do some light experimenting with it. I cooked up a quickie Unity project with a basic scene with a few 3D shapes, tacked on a UI element and script for reporting the framerate, and exported it for Android. I was able to get it running on the Tinker OS Android port at a respectable resolution and framerate, with clear GPU support. So at least one of the recent Raspberry Pi alternatives is capable enough to run a modern gaming engine with proper GPU support. I ordered the lower-end Tinker Board, not the newer "S" model.

This weekend, I will probably install the standard Tinker OS on a separate SD card, and see if I can't get Godot compiling for it. With proper OpenGL ES 3.1 support, it should be possible.

Just wanted to let you know in case you missed it: Godot 3.1 is on the way which also supports Open GL ES 2.0 again (and will supposedly continue supporting this in the future). At the moment beta3 is available: https://godotengine.org/article/dev-snapshot-godot-3-1-beta-3

(Maybe doesn't matter anyway if you compile from source) My recommendation is to stay with Open GL ES 2 if possible. The Godot people say that the Open GL ES 3 implementation on many "mobile" chipsets is buggy which may lead to problems and at least to a lower performance.

5 months later

The new Raspberry Pi 4 has been announced, and is currently up for sale from some on-line retailers. (I'm not seeing it on Amazon yet though)

This new Raspberry Pi update is reasonably swanky, though still not quite up to snuff compared to some its more powerful competitors. On the plus side, there are much more expanded RAM options. While the Pi 3 used only a single gig of DDR2, the 4 lets you choose between 1, 2, and 4 GB of DDR4 RAM. It also has an upgraded CPU, with an upgraded integrated GPU, that will now support OpenGL ES 3.0. (sweet!) Other significant changes are a USB-C port for power, dual mini-HDMI ports for display, 4K compatibility, and a pair of USB 3.0 ports for high-speed data access on thumb drives and external hard drives.

The price is the same as always for the base 1 GB model, and ten dollars extra every time you bump that RAM up. The Pi has basically become the industry standard for a lot of these micro computers, so seeing a hardware upgrade like this is welcome. Several of the new features and options are going to make the Pi more viable for game development and play.