Defold GameKit 是一套以真实 Defold 游戏为载体、同时可作为可复用 Library Project 使用的个人数据导向游戏开发工具库。目前覆盖:确定性的服务生命周期、输入上下文、状态与存档、Collection Proxy 场景、数据驱动叙事、本地化、Sequence/Audio/Camera/UI/Interaction 表现层、组合式 Sprite FX、单次后处理合成和无阴影 2D 光照,以及 Editor 与离线内容制作工具。
本仓库既是 Library 源码,也是它的集成参考游戏。/gamekit/ 是唯一导出的 Library 命名空间;/main/、/game/、/input/ 和 /assets/ 用于演示宿主项目应如何组合 GameKit。
E:\EmptyProJTest 是与本仓库并列的独立最小 Defold 消费工作区。后续公开 Release URL、显式依赖、全新进程 Runtime、Benchmark 与最小包体 A/B 验收统一复用该项目;仓库根 tests/ 不再保留重复 fixture。CI 不依赖该本机目录,而是在临时目录生成同契约的最小消费者。
为了让设计师、制作人与程序员可以对照同一份文档工作,正文使用中文解释概念,同时保留必须原样输入的英文技术标识。反引号中的名称通常是代码、配置项、资源路径、命令或固定取值,不应自行翻译后再输入 Defold。
| 文档术语 | 快速理解 |
|---|---|
| Library / Library Project | 可被其他 Defold 项目通过依赖地址接入的“工具库工程”。 |
| 宿主(Host) | 实际制作并发布游戏的项目;它负责提供场景、素材、组件地址和平台配置。 |
| Facade(门面接口) | 对外保持稳定的一层简化 API;游戏代码依赖它,而不直接依赖内部实现。 |
| Service(服务) | 在游戏启动时按顺序创建、启动,并在退出时反向停止的功能模块。 |
| Owner / Token(所有者/令牌) | 标记“谁创建了这项临时状态”;切场景或取消流程时可一次清理对应内容。 |
| Fixture(测试样例) | 为验证某种行为而准备的固定输入、存档或最小场景。 |
| Gate(门禁) | 发布前必须通过的自动检查,例如内容校验、API 兼容检查和确定性打包。 |
| Runtime / Build | Runtime 指游戏真正运行时;Build 指编译或打包成功。Build 通过不等于目标设备运行已验证。 |
| Baseline(基线) | 后续版本用来比较包体、性能或 API 变化的已记录参考值。 |
| Render Target / Composite Pass | 先把画面绘制到离屏纹理,再通过一次全屏合成应用后处理与光照。 |
DEFOLD_GAMEKIT_MASTER_PLAN.md——最高层目标、架构、阶段、ADR、验收证据与剩余门禁的权威总纲。gamekit/QUICKSTART.md——安装与首次集成步骤。gamekit/API.md——公共模块、生命周期与稳定性契约。gamekit/LIBRARY.md——Defold Library 打包规则与宿主责任。gamekit/COMPATIBILITY.md——有实测证据的平台与依赖兼容矩阵。gamekit/BENCHMARKS.md——发布包、运行时与 Renderer 测量结果。gamekit/MIGRATING.md与CHANGELOG.md——升级政策与版本历史。gamekit/TROUBLESHOOTING.md——常见故障诊断。gamekit/THIRD_PARTY_NOTICES.md——MIT 主许可证、第三方依赖许可证与归属义务。gamekit/editor/README.md与gamekit/fx/README.md——Editor 工具和 Renderer/FX 专项契约。
当前发布版本为 1.0.0。不可变公开资产已发布到 GitHub Release,且已由全新的 E:\EmptyProJTest 成功下载并解压;1.x 冻结了 33 个公共/SPI 模块与 259 个导出符号,采用 MIT 许可证,并保留独立 headless 消费者、全新进程存档 fixture、10 进程 Library 基准、最小编译消费者 A/B 和公共 API 删除门禁。已经实测的平台与尚未验证的平台仍必须按 gamekit/COMPATIBILITY.md 区分;公开资产可下载不等于所有平台 Runtime、签名和设备能力都已验证。
python tools/validate_gamekit.py --json
python tools/validate_public_api.py
python -m unittest discover -s tools -p "test_*.py" -v
python tools/package_gamekit.py
随后通过正在运行的 Defold Editor 构建项目。正常提交状态下,所有诊断入口保持关闭:
[gamekit]
integration_test = 0
fx_benchmark = 0
library_benchmark = 0