B博客

Deki 开源了

引擎、编辑器和所有包都已在 GitHub 上以 Apache 2.0 发布,编辑器也提供了 Windows 和 Linux 版本下载,编译器就在里面。

发布于
作者
DevKirbyrawr
阅读
约 2 分钟
打开了演示项目的 Deki 编辑器:层级、场景视图、检视器和控制台。

从今天起,Deki 全部开源。引擎和编辑器加入了早已公开的包,一起放在 github.com/dekiengine,全部采用 Apache 2.0。

编辑器现在也可以直接下载了:Windows 一个压缩包,Linux 一个压缩包,各自带有编译器。解压,运行 DekiEditor,就可以开始做东西了。在这里下载。

它能做什么

Deki 用来为各种尺寸的屏幕制作游戏和应用,从微控制器上的 320×240 屏幕到桌面窗口都可以。你在编辑器里搭好场景,按下运行,它就跑起来:用的是将来在设备上运行的同一个渲染器,屏幕的实际尺寸和颜色格式也相同。然后按下构建,它就会被烧录到开发板上。

边运行边修改

在运行时改一个值,游戏在下一帧就会响应。改了 C++ 代码,编辑器会重新构建并把它换进去,场景一直在运行。

运行中的编辑器:在检视器里调高了宝石的浮动幅度,宝石高高悬在平台上方

一个项目,任意屏幕

同一个游戏分别运行在 16:9 屏幕、9:16 屏幕、536×240 长条屏和 320×240 屏幕上

自己的组件,几行就够

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 寄来了第一批开发板,也感谢每一位在等候名单上留下邮箱的人。

← 全部文章