Deki is a modular C++ engine. The core is small, and everything else, from rendering to Wi-Fi to the platform itself, is a package you add or leave out. So it can build whatever you need: a game, an interface for a device, a tool, or a service with no screen at all.
It is made first for embedded devices: handhelds, badges, dashboards, gadgets, sensors. It has a visual editor like a desktop game engine, its Build button turns your project into firmware for the board and flashes it, and the same project runs on the desktop too.
What you get
- A visual editor for Windows and Linux: scenes, an inspector, a Play view that draws exactly what the board will, undo, and hot reload.
- Behaviour in C++. A component is a small C++ class. Its fields show up in the inspector, are saved with the scene and can be undone, with nothing to register.
- 2D that’s ready to use: sprites and animations, text in any font, gradients, buttons, scrolling lists, rollers, Tiled maps, particles, tweens and state machines. A software 3D package for simple 3D.
- Speed on a small chip. Every scene in the demo runs at 60 frames a second on the LilyGO T-Deck Plus and T-Display S3 AMOLED, without tearing. When most of the screen stays still, only what changed is drawn and sent.
- Platforms are packages. One project builds for every platform it has a package for. A new chip or operating system is a new platform package, not a new engine.
- Every feature is a package too. Rendering, input, audio, Wi-Fi, BLE, HTTP, GPS, LoRa, SD card, I2C, SPI, GPIO: add what the game uses, leave out the rest, and the build only carries what’s in it.
- Free and open source, under the Apache 2.0 licence.
What it runs on
| Platforms today | The ESP32 family (ESP-IDF), the Tactility OS, Windows, Linux |
| Ready-to-use boards | LilyGO T-Deck, T-Deck Plus, T-Display S3 AMOLED |
| Your own board | Describe its screen, pins and buses in the editor |
| A new chip or OS | A platform package of its own |
| Run on hardware so far | ESP32-S3; builds also target the ESP32, ESP32-S2, -C3, -C6 and -H2 |
| Screens | ILI9341, ILI9488, ST7735, ST7789, ST7796, GC9A01, SSD1351 and two AMOLED controllers, over SPI, quad SPI or parallel; a window on the desktop |
Deki leans on floating point, so a chip with a hardware FPU runs it best.
How it compares
- LVGL is a user-interface library: widgets, layouts and themes in C, made for menus and dashboards. Deki is a game engine with a scene editor: objects you place and move every frame, sprites, maps and particles, with UI as one part of it. On Tactility, Deki runs as an app beside LVGL.
- Arduino display libraries such as TFT_eSPI, LovyanGFX and Adafruit GFX draw lines, text and images; the game loop, scenes and assets are yours to write. Deki is the engine on top, and it can use LovyanGFX for a screen it does not drive itself.
- Desktop engines such as Unity and Godot work the same way Deki does, with scenes, an inspector and components, but they don’t run on a microcontroller. Deki brings that way of working to embedded devices, and keeps the desktop too.
Get started
Download the editor, open the demo or start a new project, and press Play. Read the docs for guides and the API, browse the packages, and ask anything on Discord.
Questions
Is there a game engine with a visual editor for microcontrollers?
Yes. Deki has a desktop editor with scenes, an inspector and a Play view, much like a desktop game engine, and its Build button turns the project into firmware for the board and flashes it. The same project also builds for the desktop.
Which hardware does Deki run on?
Any platform there is a package for, because each platform is a package. Today that is the ESP32 family through ESP-IDF, the Tactility operating system, Windows and Linux. Ready-to-use boards are the LilyGO T-Deck, T-Deck Plus and T-Display S3 AMOLED, and you can describe a board of your own (its screen, pins and buses) in the editor. A new chip or operating system is a new platform package, not a new engine. Deki leans on floating point, so a chip with a hardware FPU runs it best.
Does Deki work with the ESP32?
Yes, the ESP32 family is one of its platforms. Builds target the ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2 through ESP-IDF; the ESP32-S3 is the one run on hardware so far, on the LilyGO boards and under Tactility.
Which screens does it support?
Deki drives screens itself: ILI9341, ILI9488, ST7735, ST7789, ST7796, GC9A01, SSD1351 and two AMOLED controllers, over SPI, quad SPI or 8- and 16-bit parallel buses, with touch from the common touch controllers. Frames are sent without tearing, and the LovyanGFX package covers screens Deki does not know yet. On the desktop it draws into a window.
Is Deki free?
Yes. The editor, the engine and its packages are free and open source under the Apache 2.0 licence, including for commercial games and products.
Do I need to know C++?
To write your own behaviour, yes: a component is a small C++ class, and its fields show up in the editor’s inspector on their own. Scenes, sprites, text, UI, maps, particles and animations are put together in the editor without code.
Can I make apps and interfaces, not only games?
Yes. The 2D package has buttons, scrolling lists, rollers and text in any font, and packages for Wi-Fi, BLE, HTTP, GPS, LoRa, SD cards, I2C, SPI and GPIO. A project can also run with no screen at all.
How fast is it on a microcontroller?
Every scene in the demo runs at 60 frames a second on the LilyGO T-Deck Plus and T-Display S3 AMOLED, tear-free. When most of the screen stays still, Deki draws and sends only what changed, so a still screen costs almost nothing.
Can I try it without a board?
Yes. The editor’s Play view runs the game at the board’s screen size and colour format, and the same project builds for Windows and Linux.