Game Engines
Unreal Engine
MyCryENGINE
haxqer

分享一个开源项目 godot-skill:让 Claude Code / Codex 真正会写 Godot 项目

  •  1
     
  •   haxqer · 14 days ago · 1313 views

    项目地址: https://github.com/haxqer/godot-skill

    起因

    用 AI agent 写 Godot 项目时,卡住的地方通常不是 GDScript 本身,而是工程结构:

    • .tscn / .tres 虽然是纯文本,但 UID 、ext_resource 引用一手写就容易写坏,编辑器打开一堆红;
    • 改完没法自证,得人肉打开 Godot 才知道有没有炸;
    • TileSet 、SpriteFrames 、AnimationPlayer 、AudioBusLayout 这类资源,纯手写基本不现实。

    所以把这套东西打包成了一个 skill ,让 agent 用脚本去操作工程,而不是靠猜格式。

    能做什么

    • 场景与资源编辑:事务式批量修改节点、属性、布局 override ,挂脚本、连信号、重构节点树;项目设置、InputMap 、autoload 、shader globals 、多人复制配置
    • 内容制作:TileSet / TileMapLayer 与 GridMap 绘制、Theme / StyleBox 、SpriteFrames 图集动画、AnimationPlayer 关键帧、音频总线路由
    • 烘焙:mesh / CSG 碰撞、精灵轮廓描边碰撞、2D / 3D 导航网格、glTF 导出
    • 调试验证:headless 跑项目,日志解析成结构化诊断;对 script / scene / shader / resource 做静态校验;确定性输入 + 截图场景;运行时与性能验证
    • 测试:GUT / GdUnit4 无头运行
    • 导出:Android / iOS / Web / Windows / Linux / macOS / 服务端 / visionOS 预设校验与导出
    • 杂项:导入设置审计、UID 修复、抠图( chroma key )等资源管线小工具

    针对 Godot 4.7 设计,兼容 4.x 。

    怎么装

    从源码:把 skill/godot/ 拷进你的 skills 目录。

    从 release:解压 dist/godot.zip 到 skills 目录,包里已经带了顶层的 godot/ 目录。

    Claude Code 和 Codex 都能直接加载。


    项目还比较早期,有在折腾 Godot 的朋友欢迎试试。缺什么能力、或者踩到坑了都可以提 issue ,PR 更好。

    haxqer
        1
    haxqer  
    OP
       14 days ago
    基于此 skill 开发的游戏(本人完全没有游戏开发经验,哈哈): https://github.com/haxqer/idle-battle
    angryWoodlouse
        2
    angryWoodlouse  
       14 days ago
    @haxqer 游戏有 bug ,地牢战斗界面有打不过的 boss ,可以直接在天梯页面点击挑战触发战斗胜利👀
    haxqer
        3
    haxqer  
    OP
       14 days ago
    @angryWoodlouse 确实,感谢排查 bug !!天梯那里有 bug
    haxqer
        4
    haxqer  
    OP
       14 days ago
    @angryWoodlouse 修复了天梯 bug ,部署更新: https://haxqer.github.io/idle-battle/
    treblex
        5
    treblex  
       2 days ago   ❤️ 1
    我自己遇到的问题 1.写 tscn 的时候必须用 / 而不是 # 表示层级(布局会叠一起就是这个问题)。2 写 gds 不要用类型推断(大部分的爆红启动不了)

    游戏的 ui 一直写不好,我让它去读前端开源项目的 ui 框架写个 skill ,好一点,但是还是没有游戏 ui 的感觉

    而且 dsflash 没有视觉,无头测试有截图但是它看不了,可以让它写日志,自动跑一局再自己分析
    haxqer
        6
    haxqer  
    OP
       1 day ago   ❤️ 1
    @treblex 感谢反馈。四个都是真问题,v0.3.0 都修了。

    # 那个查完挺逗:它压根不是层级符号,是 Godot 发现 parent 路径找不到时自己打的标记,节点直接被丢到根上改名。真正坑人的是全树都写 parent="." 那种一点错不报,照常跑起来,所有 Control 全挤在 (0,0),就是你那个叠一起。现在 check_project 会把场景实例化一遍,硬伤直接判挂;全平的那种得靠新加的 ui_report 查。

    gds 改成默认全写类型了,:= 只留给一眼能看出类型的地方( 4.7 里 := 接 Variant 本来就直接起不来)。

    UI 专门写了篇 game_ui.md:先容器后坐标,标题屏/HUD/暂停/对话框四套模板直接抄,配了套深色主题。

    你说的写日志跑一局那招直接抄进去了:新加的 ui_report 会把每个 Control 的位置大小导成纯文本 JSON ,自动查重叠,布局坏了测试直接红——没视觉也能看出叠没叠。

    https://github.com/haxqer/godot-skill/releases/tag/v0.3.0

    有空再跑跑,有坑接着砸过来
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5844 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:53 · PVG 09:53 · LAX 18:53 · JFK 21:53
    ♥ Do have faith in what you're doing.