从今天起,Deki 全部开源。引擎和编辑器加入了早已公开的包,一起放在 github.com/dekiengine,全部采用 Apache 2.0。
编辑器现在也可以直接下载了:Windows 一个压缩包,Linux 一个压缩包,各自带有编译器。解压,运行 DekiEditor,就可以开始做东西了。在这里下载。
它能做什么
Deki 用来为各种尺寸的屏幕制作游戏和应用,从微控制器上的 320×240 屏幕到桌面窗口都可以。你在编辑器里搭好场景,按下运行,它就跑起来:用的是将来在设备上运行的同一个渲染器,屏幕的实际尺寸和颜色格式也相同。然后按下构建,它就会被烧录到开发板上。
边运行边修改
在运行时改一个值,游戏在下一帧就会响应。改了 C++ 代码,编辑器会重新构建并把它换进去,场景一直在运行。

一个项目,任意屏幕

自己的组件,几行就够
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;
};
这两个字段就是上图里的滑块:出现在检视器里,随场景一起保存,可以撤销。不需要再注册任何东西。
只带需要的部分
渲染、精灵、输入、粒子、补间、状态机、GPS、LoRa、Wi-Fi、音频,以及每一块开发板:每一项都是一个包,为设备构建时,项目没用到的部分会被去掉。目前已有 29 个。
能用它做什么
首先是游戏:它是一个游戏引擎。但场景说到底只是对象和组件,所以同一套工具也能用来做设备界面、小屏幕上的仪表盘、GPS 追踪器、LoRa 通信器,或者完全没有屏幕的服务。
能在哪里运行
ESP-IDF 支持的任何 ESP32,通过 LovyanGFX 驱动 SPI、并口和 QSPI 屏幕。Windows 和 Linux 通过 SDL3 运行,编辑器本身也运行在 SDL3 上。还可以无头运行,不带渲染器。一个 320×240 的游戏在 ESP32-S3 上能跑到 60 fps;它是怎么做到的另有一篇文章。
0.x 意味着什么
API 在次版本之间仍会变化,每一处破坏性变更及其迁移方法都写在更新日志里。Windows 版本还没有代码签名,所以运行前 SmartScreen 会询问一次。还有很多工作要做:更多开发板、更多包,以及它们应得的文档。
参与进来
每个仓库都开放 issue 和 pull request,CONTRIBUTING 说明了代码的组织方式和构建方法。问题、想法和你做出来的东西,欢迎发到 Discord。Deki 是一个人在下班后开发的;如果它对你有用,捐赠能为它换来更多时间。
感谢 LilyGO 寄来了第一批开发板,也感谢每一位在等候名单上留下邮箱的人。
