Bblog

Deki is open source

The engine, the editor and every package are on GitHub under Apache 2.0, and the editor is a download for Windows and Linux with its compiler inside.

posted
by
DevKirbyrawr
read
3 min
The Deki editor with the demo project open: hierarchy, scene view, inspector and console.

As of today the whole of Deki is open source. The engine and the editor join the packages, which were already public, at github.com/dekiengine, all under Apache 2.0.

The editor is also something you can download now: one archive for Windows, one for Linux, each with its own compiler inside. Unpack it, run DekiEditor, and you are building. Download it here.

What it does

Deki makes games and apps for screens of any size, from a 320 by 240 panel on a microcontroller to a desktop window. You build a scene in the editor, press play, and it runs: the same renderer, at the screen’s real size and colour format, that will run on the device. Then you press build, and it is flashed to the board.

Edit while it runs

Change a value during play and the game reacts on the next frame. Change the C++ and the editor rebuilds it and swaps it in, with the scene still running.

The editor during play: the gem’s bob raised in the inspector, the gem high above the platforms

One project, any screen

The same game running on a 16:9 screen, a 9:16 one, a 536 by 240 strip and a 320 by 240 panel

Your own components, in a few lines

class Bobber : public Deki::Component
{
public:
    DEKI_EXPORT DEKI_SLIDER(0, 64)
    float amplitudePx = 12.0f;

    DEKI_EXPORT DEKI_SLIDER(0, 4)
    float speedHz = 0.6f;

    void Update() override;
};

Those two fields are the sliders in the picture above: in the inspector, saved with the scene, undoable. Nothing else to register.

Take only what you need

Rendering, sprites, input, particles, tweens, state machines, GPS, LoRa, Wi-Fi, audio, every board: each is a package, and a device build leaves out what the project does not use. There are 29 so far.

What you can make with it

Games, first: it is a game engine. But a scene is just objects and components, so the same tools build a device’s interface, a dashboard on a little panel, a GPS tracker, a LoRa messenger, or a service with no screen at all.

Where it runs

Any ESP32 that ESP-IDF supports, driving SPI, parallel and QSPI panels through LovyanGFX. Windows and Linux through SDL3, which is also what the editor runs on. And headless, with the renderer left out. A 320 by 240 game runs at 60 fps on an ESP32-S3; how it got there is its own post.

What 0.x means

The API still changes between minor releases, with every breaking change and its migration in the changelog. The Windows build is not code-signed yet, so SmartScreen asks once before it runs. And there is plenty still to come: more boards, more packages, and the documentation they deserve.

Getting involved

Issues and pull requests are open on every repository, and CONTRIBUTING says how the code is laid out and how to build it. Questions, ideas and things you have made go on Discord. Deki is built by one person after work; if it is useful to you, donations buy time on it.

Thanks to LilyGO, who sent the first boards, and to everyone who left an email on the waitlist.

← all posts