TinySquare 是一款嵌入式方块游戏引擎,该引擎旨在为面向 Cortex-M 处理器的设备提供一个轻量化的游戏开发解决方案。 TinySquare 的设计原则是代码尺寸小,轻量化运行成本,以确保引擎可以高效的运行在资源受限的嵌入式设备上。TinySquare有如下特点和优势:
以一个最小功能的贪吃蛇为参考,给出 TinySquare 的空间开销和性能表现。注意,本用例未使用 Python 虚拟机:
| 参考数据 | ||||
|---|---|---|---|---|
| -Os 优化 | -Oz 优化 | 备注 | ||
| 配置 | 主频 | 80MHz | 80MHz | —— |
| 优化等级 | -Os -lto | -Oz -lto | —— | |
| 屏幕尺寸 | 240 * 240 | 240 * 240 | —— | |
| PFB 尺寸 | 240 * 4 | 240 * 4 | —— | |
| 堆 | 0x100 | 0x100 | —— | |
| 栈 | 0x100 | 0x100 | —— | |
| rt heap | 0x2400 | 0x2400 | —— | |
| 性能 | FPS | 140:7ms | 128:7ms | —— |
| 程序大小 | Code | 34156 | 29688 | —— |
| RO-data | 2520 | 2512 | —— | |
| RW-data | 180 | 180 | —— | |
| ZI-data | 16052 | 16052 | 包括 LCD buffer、PFB pool、rt heap、rt stack、stack、heap、snake resource 等 | |
结合以上数据不难得出,引擎本身占用资源非常小,而对应的性能也非常强悍!嵌入式领域根本不需要 FPS 达到 128 甚至是 140。因此以上数据还可以进一步优化,PFB 的尺寸可以进一步降低,引擎任务和游戏任务的任务堆栈在当前测试环境下也是非常富裕,可以进一步压缩以缩小 rt heap 大小。 综上,TinySquare 满足了“代码尺寸小,轻量化运行成本”的设计原则,同时也展现了极佳的性能。
| 名称 | 说明 |
|---|---|
| docs | 文档目录 |
| examples | 例子目录 |
| library | 依赖库目录 |
| port | 移植代码目录 |
| source | 源代码目录 |
TinySquare 遵循 Apache-2.0 许可,详见LICENSE文件。