Typically, when one considers writing a video game, the platform is among the first decisions to be made. The PC can be an easy one to start with, and mobile development is fairly accessible too. Of course, you could always develop for a microcontroller platform instead. [Fabrizio Di Vittorio] has built the perfect set of tools to do just that with the ESP32, by the name of FabGL.
The library contains a laundry list of features that are perfect for developing games. There’s VGA output with up to 64 colors, PS/2 mouse and keyboard inputs, as well as a capable graphics library and game engine. It can even act as an ANSI/VT terminal if necessary.
[Fabrizio] has put the hardware through its paces, with a variety of benchmarks displaying impressive performance with simple balls, polygons and sprites. You could easily produce a 2D game in an early 90s style without running into any hardware limitations — though given the ESP32 clocks in at up to 240MHz, that’s somewhat to be expected.
It’s an impressive project (video after the break), and we’d love to see more games developed on the platform. Once you have a VGA connector wired in you should try out some ESP32 VGA hacks. And for those ESP8266 die hards there’s a game engine for that chip too!
Left this on the other game page, but check out ODROID GO, seems like it would work together quite well.
https://www.hardkernel.com/shop/odroid-go/
Wow! Awsome work and well documented.
Thanks a lot Fabrizio!
Awesome!
I tried draw some 3D objects with ESP32 and a colorful OLED screen, eventually it output almost 20 FPS. I think it could be better considering there still have a lot of tricks to enhance the renderer.
https://youtu.be/-cKrpIa2_kA
Amazing!! Let’s do a retro-style videogame with online gaming through wifi!
With the addition of a BASIC (or other language) interpreter/shell, this could be a good learning computer in the same vein as the 8-bit home computers of yore.
micropython is already available for the ESP32
There is a basic interpreter in the rom of the ESP32
The only other thing that could be added is sound generation (at least judging by the videos)