以下是经截断的法典会话日志。在超算上使用 Astra,持续运行 27 分 36 秒。
下方经截断的日志中包含一个请求及确认。
灵感来源:
https://www.reddit.com/r/aigamedev/comments/1w94j3z/hfs_day_1_dev_diary_citizen_of_the_stars/Some
一些有用的点滴信息:
- 除人体模型外的资产均由 Astra 在同一会话中通过 Blender MCP 或程序化生成产生。
- 非会话内构建:引擎是用于 AI 方面的自定义 wgpu 引擎,运动学由 Astra 从其他项目移植而来。
Astra 总结:
- 我使用 Codex 构建了 Keel,这是一个受《星际公民》启发的原型,核心是让玩家作为一名身处可驾驶飞船内、携带实体货物的人。
- 它复用了现有的 Kinetics 角色系统,原生运行于 Rust/wgpu 之上,并利用 Blender MCP 创建飞船、驾驶舱、可工作的坡道以及板条箱。地形和天空为程序化生成。并行代理处理了物理、渲染和资源创建。
- 你可以搬运和堆叠板条箱,将它们固定在甲板上,驾驶飞船,然后在飞船移动时离开座位行走或跳跃。松散的货物会随加速移动,固定的货物则保持不动。
- 78 项测试通过,还包括自动化原生游戏流程检查和截图审查。物理仍为简化版;下一个里程碑是进行一次从星球到轨道的程序化货物运送任务。
完整会话日志:
› 我们来制作一个新游戏,基本设定如下:大致就是《星际公民》,但只保留核心功能集:1)玩家是人([PROJECTS]/Games/Kinetics/)2)可驾驶且带有实体货舱的飞船 3)星球上的玩法 4)太空玩法 —— 硬件资产使用 Blender MCP 完成 [PROJECTS]/Blender/ —— 任何星球、地形、小行星等都应采用程序化生成—— 你觉得如何?
• 我将检查 Kinetics 和 Blender 工具,然后建议一个首个可玩片段,将人、飞船、货物、星球和太空系统整合在一起。
• 运行了 pwd && rg --files -g AGENTS.md -g README.md -g Cargo.toml -g package.json -g '*.blend' -g '*mcp*'
│ -g '!target' -g '!node_modules' -g '!vendor' -g '!build' .
└ [PROJECTS]/Games
./Kinetics/README.md
… +58 行 (按 ctrl + t 查看完整记录)
./SpaceGame/References/Pixels/README.md
./SpaceGame/crates/engine_runtime/Cargo.toml
• 探索了
└ 列出 Blender
列出 Blender
• 运行了 for p in /AGENTS.md /mnt/AGENTS.md [LOCAL_DISK]/AGENTS.md [PROJECTS]/
│ AGENTS.md [PROJECTS]/Games/AGENTS.md; do if [ -f "$p" ]; then cat "$p"; fi; done
└ (无输出)
• 运行了 cat Kinetics/AGENTS.md Kinetics/README.md Kinetics/Cargo.toml
└ # Kinetics
… +207 行 (按 ctrl + t 查看完整记录)
[profile.release]
debug = 1
• 运行了 cat [PROJECTS]/Blender/AGENTS.md [PROJECTS]/Blender/README.md
└ # Blender 游戏资源工作区
… +102 行 (按 ctrl + t 查看完整记录)
`ERG_CHARACTER=female ./run_game.sh` 选择女性角色。有关绑定使用、路径和验证,请参阅游戏的 `docs/PLAYER.md`。
• 启动了 `/root/kinetics_reuse`
• 探索了
└ 列出 Kinetics
在 README.md 中搜索 ship|cargo|planet|floating|origin|dvec|DVec|gravity
列出 ls -la
在 build_kinetics_weapons.py 中搜索 socket|collis|door|seat|ramp|export|mesh
───────────────────────────────────────────────────────────────────────────────────────────────────────
• Kinetics 已经提供了角色绑定、移动、手脚逆运动学以及第一人称和肩部摄像机。主要的新工程是让一艘移动的飞船能够可靠地支持行走的人和松散的货物。我打算先验证这一交互,然后将相同的可玩循环从程序化生成的星球表面扩展到太空。
• 探索了
└ 读取 README.md, stage.rs, main.rs
• 与 `/root/kinetics_reuse` 进行了交互
• 完成了 `/root/kinetics_reuse`
───────────────────────────────────────────────────────────────────────────────────────────────────────
• 我认为这个设定是可行的。实体货物应成为首个可玩内容的核心:它为行走、飞船、星球和太空提供了共同的目标。
初始的游戏循环可以是:
走过降落平台 → 将板条箱搬上船 → 固定它们 → 进入驾驶舱 → 飞向太空 → 在轨道仓库停靠 → 卸货 → 获得报酬。
这已经是一个有意义的游戏,你所列出的每一项功能都为其做出了贡献。
我检查了 Kinetics 和 Blender 工作区。Kinetics(Kinetics/README.md)为我们提供了大量角色工作:绑定、移动、蹲伏/爬行、手脚逆运动学以及第一人称/肩部摄像机。我将把这个基础用于一个新的独立原生 Rust/wgpu 项目。
对于第一个版本,我建议:
- 一艘小型货运飞船,围绕其可用内部空间设计:驾驶舱、可步行的货舱、尾部坡道、起落架和货物束缚装置。根据人和板条箱的尺寸来构建其尺寸。
- 一颗程序化生成的岩石星球,带有一个着陆前哨站和值得步行的地形。使用确定性生成,以便再次访问某个地点时保留其地理特征。
- 一个轨道仓库,为太空旅行提供直接目的地。
- 实体板条箱:搬运、放置、堆叠和固定。货物会增加飞船质量;未固定的货物在机动过程中可能移动。
- 辅助推进器飞行,包括起飞、着陆、停靠以及在地面和太空之间旅行。
- 最初为单人游戏,带有小型送货经济和保存/加载功能。
你的资产分配是合理的:Blender MCP 用于制造物体——飞船、空间站、门、设备、板条箱——而程序化生成用于自然环境,包括星球、地形、岩石和小行星。飞船导出应包含碰撞形状、活动部件和命名交互点,以及可见几何体。
最大的工程挑战是在移动飞船内行走和移动货物。Kinetics 目前假设固定地面和直立世界。我们需要基于飞船的相对运动和接触点、多层甲板支持、重力过渡以及能够在行星距离上保持精度的坐标。
因此,我决定从一个非常具体的里程碑开始:一个 Kinetics 角色走上飞船的坡道,装载两个板条箱,固定其中一个,并在飞船平移和旋转时在货舱内移动。一旦这一功能运行可靠,我们再将其扩展到地表到轨道的送货循环。
─ 耗时 2 分 02 秒 ───────────────────────────────────────────────────────────────────────────────────
› 开始吧
• 我将在一个新的原生项目中构建首个可玩里程碑:一个人、一艘带有可工作坡道的货运飞船、两个实体板条箱,以及一个用于在移动货舱内行走的飞行测试。我将使用 Kinetics 作为角色基础,使用 Blender MCP 制作飞船和货物资产。
• 探索了
└ 列出 Kinetics
列出 Kinetics
读取 run_game.sh
读取 gpu.rs, lab.rs, asset.rs
在 gpu.rs 中搜索 ^pub|^ pub|fn render|fn frame|fn mesh|fn draw
读取 render.wgsl
列出 assets
读取 gpu.rs
读取 control.rs
读取 lab.rs
• 调用了 blender.get_blendfile_summary_path_info({})
└ 执行工具 get_blendfile_summary_path_info 出错:无法连接到 127.0.0.1:9876 上的 Blender。
请确保 Blender 正在运行且 MCP 插件已启用,并已启动服务器。
• 运行了 mkdir -p Keel/src Keel/tools Keel/assets/hardware Keel/docs/shots Keel/logs && cp -a Kinetics/
│ assets/characters Kinetics/assets/motion Kinetics/assets/weapons Keel/assets/ && cp Kinetics/src/
│ {asset,arms,body,dynamics,footing,gait,inertia,kinematics,wrist,stance,lab,arena,stage,font,contr
│ … +1 行
└ (无输出)
• 编辑了 3 个文件 (+28 -0)
└ Keel/.gitignore (+4 -0)
1 +/target/
2 +/logs/
3 +/docs/shots/
4 +*.blend1
└ Keel/AGENTS.md (+7 -0)
1 +# Keel
2 +
3 +独立原生 Rust/wgpu 具身货物飞行原型。请阅读 README.md 了解当前可玩范围和操作。Kinetics 是角色系统的只读源;切勿为 Keel 工作修改同级游戏。
4 +
5 +坐标为米,+Y 为前方,+Z 为局部支撑坐标系中的向上方向。保持模拟、角色动画、渲染和创作的硬件分离。保留源角色形状和资产来源。硬件必须使用 Blender MCP 制作;自然环境是确定性程序化几何体。Blender 工作区说明适用于 Blender 工作。
6 +
7 +运行聚焦数值模拟测试、cargo build --release 以及原生烟雾控制脚本。在视觉更改后检查截图。记录实际限制;不要将首个移动货舱里程碑描述为一个完整的星球游戏。
└ Keel/Cargo.toml (+17 -0)
1 +[package]
2 +name = "keel"
3 +version = "0.1.0"
4 +edition = "2024"
5 +
6 +[dependencies]
7 +wgpu = "=29.0.4"
8 +winit = "=0.30.13"
9 +bytemuck = { version = "=1.25.0", features = ["derive"] }
10 +pollster = "=0.4.0"
11 +glam = "=0.33.6"
12 +serde = { version = "1", features = ["derive"] }
13 +serde_json = "=1.0.151"
14 +png = "=0.18.1"
15 +
16 +[profile.release]
17 +debug = 1
• 与 `/root/kinetics_reuse` 进行了交互
• 启动了 `/root/hardware`
• 启动了 `/root/renderer`
───────────────────────────────────────────────────────────────────────────────────────────────────────
• 新项目暂时命名为 Keel。飞船、模拟和渲染器正在并行构建。第一个货物模型将支持搬运、堆叠、滑动和固定;板条箱将保持直立,同时我们在移动货舱内建立可靠的接触点。
...
Reddit 帖子长度有限,完整日志已超出。
评论 (0)