Construct 3 on the Asus Tinker Board

2
Official Construct Team Post
Ashley's avatar
Ashley
  • 22 Nov, 2017
  • 986 words
  • ~4-7 mins
  • 3,624 visits
  • 0 favourites

I had heard that Construct 3 works on an Asus Tinker Board - a single-board computer like a Raspberry Pi, but with better hardware - and decided to pick one up and give it a go. Long story short, it works! Now this is all you need to run Construct 3:

The board costs about £45 in the UK (approx 60 USD, but prices often differ by region). It doesn't come with anything other than the main board - not even a power supply. By (perhaps calculated) coincidence, it works with a Raspberry Pi power supply, otherwise you'll need to buy one. On top of that you'll need a Micro SD card, an HDMI display, and keyboard/mouse. See the Getting started section for more details.

You can find more up-to-date system images (including beta releases) in the tinkerboarding.co.uk Software forum. The Tinker Board comes with Debian with LXDE and a reasonably up-to-date version of Chromium as the stock browser. A pleasant surprise is Chromium doesn't just support WebGL, it even supports WebGL 2! This is all enough to run Construct 3 reasonably well. Here's how it looks.

You can even run your games with pretty good performance too. It is sometimes a bit janky, but it can sometimes reach 60 FPS, which isn't bad considering it's a cheap credit-card sized computer.

It also works nicely when you use More tools - Add to desktop in Chrome's menu, making it look more like a native app.

WebGL support

The key to good performance in Construct's games - and in Construct 3 itself -; is good-quality GPU-accelerated WebGL support. For this purpose, the Tinker Board has a huge advantage over the Raspberry Pi: a Mali-T764 GPU with a reasonably good driver. Having a decent GPU driver makes all the difference.

The Raspberry Pi uses a Broadcom VideoCore IV GPU (in all models) and as much as I love the Raspberry Pi, the driver barely works with Construct 3. Chromium disables WebGL by default, and you have to configure system settings to enable a currently experimental OpenGL driver, which is still pretty slow and from my tests very unreliable too (resulting in lots of crashes and glitches). As a result it's a struggle to get WebGL working on a Raspberry Pi, and even if you do, using Construct 3 on it is excruciatingly slow. However it's possible they'll fix the driver in future, and I hope they do.

The Tinker Board on the other hand works nicely, with pretty good performance scrolling around the Layout View (which is rendered with WebGL). It could do with better v-sync accuracy and some work to keep the framerates more stable over time, but it's certainly usable, and it wouldn't be too painful to spend a while doing some real work with it. You can disable UI animations and UI effects in Construct 3's settings to help keep it snappy.

...Having said that, one wrinkle with the Tinker Board at the moment is the latest version of Chromium (v62) currently has a bug where it loses WebGL support! This is apparently fixed for v64 which should be out in a couple of months. In the mean time there's a workaround - run these commands in the terminal:

sudo ln -s /usr/lib/arm-linux-gnueabihf/libGLESv2.so /usr/lib/chromium/libGLESv2.so sudo ln -s /usr/lib/arm-linux-gnueabihf/libEGL.so /usr/lib/chromium/libEGL.so

Then restart Chromium and it should support WebGL again. You shouldn't need to do this from v64+. You can check if WebGL support is working by visiting the URL chrome://gpu in Chromium, and it should say "Hardware accelerated" in green next to WebGL.

Comparison to Raspberry Pi

The Raspberry Pi is used widely in education, and on that topic, I don't have enough experience to comment on how the Tinker Board compares. I've read the Raspberry Pi has better software support and a broader community. However for the purposes of using Construct 3 or running Construct games, the Tinker Board is far superior, largely due to having a GPU driver that actually works. It also has a much more powerful CPU (quad-core 1.8 GHz), 2 GB dual-channel DDR3 RAM, faster networking capabilities, and faster storage. These boosted specs really help with Construct 3 usability and HTML5 game performance.

This makes the Tinker Board a very handy little board for a range of uses more targeted to Construct. It actually serves quite well as a workstation to simply use Construct 3 on. It's pretty amazing that you can get hardware good enough for this at such a low price! It's also a great demonstration of how making Construct 3 browser-based helps it to port to pretty much any platform, even cheap ARM-based Linux systems. Additionally it would probably serve well as a cheap board for a kiosk unit or arcade machine, a WebSocket or multiplayer game server, a place to run any custom node.js scripts or other network services, a basic way to do testing on a Linux system, a hobby system to just mess around with, or in education if you find it covers your needs. A nice aspect of these devices is they're really easy to recover - if you do something crazy and totally screw up the OS, you can just re-image the SD card and start again. This is a huge pain on a real PC or laptop, but not much of a problem for a single-board computer!

There are a few single-board computers out now, and there may be others besides the Asus Tinker Board that also work well for GPU-heavy purposes. I'd love to hear from anyone else who's tried one, and if it sounds promising I might pick one up and try it out like I did with the Tinker Board. For the time being though, the Tinker Board looks like a good bet for any Construct users looking to get in to playing with single-board computers. Let us know how it works out for you!

Subscribe

Get emailed when there are new posts!