关于 defold-project-setup
用于配置 Defold 项目的技能,会将依赖和引擎内置内容下载到 `.deps/`,供模块解析时只读使用。它还列出新项目适用的 `game.project` 基础设置建议。
主要功能
- 01读取 game.project 中的依赖 URL
- 02下载并提取声明的 include 目录
- 03获取 Defold 引擎内置内容
- 04支持 dry-run 模式
- 05列出 game.project 基础设置
适用场景
- 01开始项目工作前准备 `.deps/`
- 02更改依赖后更新解析上下文
- 03检查新项目的基础设置建议
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ indiesoftby/ defold-agent-config --skill defold-project-setup安装后在 Claude Code 中输入/defold-project-setup确认已加载。
附带文件scripts/fetch_deps.py
详细介绍
设置 Defold 项目
下载并解压 Defold 库依赖项和引擎内置资源到 .deps/ 目录,该目录用作只读上下文,以解析模块引用。还提供适用于新项目的推荐 game.project 设置。
运行时机
- 执行任何任务前,如果
.deps/文件夹不存在或为空。 - 编辑
game.project中的依赖项后(添加、移除或更改了任何[project] dependencies#N条目)。
运行方法
从项目根目录执行设置脚本:
Windows(PowerShell):
python .agents/skills/defold-project-setup/scripts/fetch_deps.py
Linux/macOS:
python3 .agents/skills/defold-project-setup/scripts/fetch_deps.py
使用 --dry-run 可查看将要执行的操作,而不下载或解压任何内容。
功能
- 读取
game.project并解析所有[project] dependencies#NURL。 - 将每个依赖项 zip 下载到临时目录。
- 检查每个 zip 中
game.project的[library] include_dirs。 - 仅将声明的 include 目录解压到
.deps/。 - 从最新的稳定版本下载 Defold 引擎内置资源到
.deps/builtins/。
运行后
.deps/文件夹已准备就绪,可用作只读 include 目录。
推荐的 game.project 设置
创建新项目或检查 game.project 时,应用以下推荐的基准设置。这些设置为大多数 Defold 游戏提供了合理的默认值。
[html5]
[html5]
scale_mode = Stretch
heap_size = 64
cssfile = /builtins/manifests/web/dark_theme.css
retry_count = 1000
scale_mode = Stretch— HTML5 画布填满整个浏览器窗口。heap_size = 64— 64 MB 足以满足大多数游戏的需求;如果需要,引擎会分配更多内存。cssfile = /builtins/manifests/web/dark_theme.css— 深色主题比白色主题更适合作为默认设置。retry_count = 1000— 遇到网络问题时,引擎最多重试 1000 次加载游戏文件,避免连接速度较慢时加载失败。
[engine]
[engine]
fixed_update_frequency = 60
max_time_step = 0.05
fixed_update_frequency = 60— 固定更新以 60 FPS 运行(这是 Defold 的默认值)。max_time_step = 0.05— 游戏在帧率降至 20 FPS 时仍可正常运行。低于该帧率时,游戏会变慢,而不是跳过较长的时间段。
[physics]
[physics]
gravity_y = -1000.0
scale = 0.01
velocity_threshold = 100.0
use_fixed_timestep = 1
max_fixed_timesteps = 0
gravity_y = -1000.0— 该值会乘以physics.scale,因此物理引擎内部使用的值为 -10 m/s²(地球重力)。scale = 0.01— 对于 2D 游戏,通常设置为0.01(1 像素 = 0.01 m);对于 3D 游戏,设置为1.0(1 单位 = 1 m)。velocity_threshold = 100.0—(仅适用于 2D 物理)为确保物理模拟稳定,该值应为1.0 / physics.scale,因此当 scale 为0.01时应设置为100.0。use_fixed_timestep = 1— 物理模拟以固定时间步长模式运行。通过object_interpolation扩展在物理步之间插值移动对象。max_fixed_timesteps = 0—(仅适用于 3D 物理)将固定的 dt 直接从 Defold 引擎传递给 Bullet3D,并禁用 Bullet3D 的内部累加器。
评论
支持 Markdown