Deki 是一款模块化的 C++ 引擎。核心很小,从渲染到 Wi-Fi,再到平台本身,其余的一切都是可以加入或去掉的软件包。所以你需要什么都能做:游戏、设备的界面、工具,或者完全没有屏幕的服务。
它首先为嵌入式设备而做:掌机、徽章、仪表盘、小玩意、传感器。它有一个像桌面游戏引擎那样的可视化编辑器,按下 Build 按钮就会把项目变成板子的固件并烧录进去,同一个项目也能在桌面上运行。
你能得到什么
- 可视化编辑器(Windows 和 Linux):场景、检查器、和板子画得一模一样的 Play 视图、撤销以及热重载。
- 用 C++ 写行为。 组件是一个小小的 C++ 类。它的字段会出现在检查器里,随场景保存,也能撤销,不需要额外注册任何东西。
- 开箱即用的 2D: 精灵和动画、任意字体的文字、渐变、按钮、滚动列表、滚轮选择器、Tiled 地图、粒子、补间和状态机。简单的 3D 有软件 3D 软件包。
- 小芯片上的速度。 演示中的每个场景在 LilyGO T-Deck Plus 和 T-Display S3 AMOLED 上都以每秒 60 帧运行,画面不撕裂。屏幕大部分静止时,只绘制并发送变化的部分。
- 平台就是软件包。 一个项目可以构建到每个有软件包的平台。新的芯片或操作系统是一个新的平台软件包,而不是一个新引擎。
- 每个功能也是软件包。 渲染、输入、音频、Wi-Fi、BLE、HTTP、GPS、LoRa、SD 卡、I2C、SPI、GPIO:游戏用什么就加什么,其余的不要,构建里只装你放进去的东西。
- 免费开源, 采用 Apache 2.0 许可证。
能在哪里运行
| 目前的平台 | ESP32 系列(ESP-IDF)、Tactility 操作系统、Windows、Linux |
| 可直接使用的板子 | LilyGO T-Deck、T-Deck Plus、T-Display S3 AMOLED |
| 你自己的板子 | 在编辑器里描述它的屏幕、引脚和总线 |
| 新的芯片或操作系统 | 它自己的平台软件包 |
| 已在硬件上运行 | ESP32-S3;构建也支持 ESP32、ESP32-S2、-C3、-C6 和 -H2 |
| 屏幕 | ILI9341、ILI9488、ST7735、ST7789、ST7796、GC9A01、SSD1351 以及两种 AMOLED 控制器,SPI、四线 SPI 或并行;桌面上为窗口 |
Deki 大量使用浮点运算,所以有硬件 FPU 的芯片运行效果最好。
与其他方案的区别
- LVGL 是用户界面库:用 C 编写的控件、布局和主题,为菜单和仪表盘而做。Deki 是带场景编辑器的游戏引擎:每一帧都可以摆放和移动的对象、精灵、地图和粒子,界面只是其中一部分。在 Tactility 上,Deki 作为应用与 LVGL 并存运行。
- Arduino 显示库,例如 TFT_eSPI、LovyanGFX 和 Adafruit GFX,负责画线、文字和图片;游戏循环、场景和资源都要你自己写。Deki 是建立在其上的引擎,对它不直接驱动的屏幕可以使用 LovyanGFX。
- 桌面引擎,例如 Unity 和 Godot,和 Deki 的工作方式一样,有场景、检查器和组件,但它们不能在单片机上运行。Deki 把这种工作方式带到了嵌入式设备上,同时也保留桌面。
开始使用
下载编辑器,打开演示或新建项目,然后按下 Play。指南和 API 见文档,软件包列表见软件包,有问题欢迎到 Discord 来问。
常见问题
有没有带可视化编辑器、面向单片机的游戏引擎?
有。Deki 有一个桌面编辑器,像桌面游戏引擎一样有场景、检查器和 Play 视图,按下 Build 按钮就会把项目变成板子的固件并烧录。同一个项目也能构建到桌面。
Deki 能在哪些硬件上运行?
任何有对应软件包的平台都可以,因为每个平台都是一个软件包。目前有:通过 ESP-IDF 支持的 ESP32 系列、Tactility 操作系统、Windows 和 Linux。可以直接使用的板子有 LilyGO T-Deck、T-Deck Plus 和 T-Display S3 AMOLED,你也可以在编辑器里描述自己的板子(屏幕、引脚和总线)。新的芯片或操作系统是一个新的平台软件包,而不是一个新引擎。Deki 大量使用浮点运算,所以有硬件 FPU 的芯片运行效果最好。
Deki 支持 ESP32 吗?
支持,ESP32 系列是 Deki 的平台之一。构建通过 ESP-IDF 支持 ESP32、ESP32-S2、ESP32-S3、ESP32-C3、ESP32-C6 和 ESP32-H2;目前在真实硬件上运行过的是 ESP32-S3,包括 LilyGO 的板子和 Tactility。
支持哪些屏幕?
Deki 自己驱动屏幕:ILI9341、ILI9488、ST7735、ST7789、ST7796、GC9A01、SSD1351 以及两种 AMOLED 控制器,可通过 SPI、四线 SPI 或 8 位和 16 位并行总线连接,并能读取常见触摸控制器的触摸。帧的发送不会撕裂,Deki 还不认识的屏幕可以用 LovyanGFX 软件包。在桌面上则画在窗口里。
Deki 免费吗?
免费。编辑器、引擎和软件包都以 Apache 2.0 许可证免费开源,也可以用于商业游戏和产品。
需要会 C++ 吗?
要编写自己的行为就需要:组件是一个小小的 C++ 类,它的字段会自动出现在编辑器的检查器里。场景、精灵、文字、界面、地图、粒子和动画都可以在编辑器里不写代码地拼装出来。
除了游戏,也能做应用和界面吗?
能。2D 软件包有按钮、滚动列表、滚轮选择器和任意字体的文字,还有 Wi-Fi、BLE、HTTP、GPS、LoRa、SD 卡、I2C、SPI 和 GPIO 软件包。项目也可以完全不带屏幕运行。
在单片机上有多快?
演示中的每个场景在 LilyGO T-Deck Plus 和 T-Display S3 AMOLED 上都以每秒 60 帧运行,画面不撕裂。当屏幕大部分静止时,Deki 只绘制并发送变化的部分,所以静止的画面几乎没有开销。
没有板子能试用吗?
能。编辑器的 Play 视图会以板子屏幕的尺寸和颜色格式运行游戏,同一个项目也能构建到 Windows 和 Linux。