想分享一下我如何用Claude作为主要开发工具构建一个完整的3D浏览器游戏。这是一款披萨配送模拟游戏,你需要骑着摩托车穿行在城市中,按照GPS导航行驶,遵守交通信号灯,在时间耗尽前完成订单并保持披萨完好无损。
游戏包含的功能:
- 包含街道、建筑、路口、红绿灯、人行横道的3D城市
- 具备物理引擎、速度和加速机制的摩托车
- 带有逐向导航功能的GPS小地图
- 包含配送地址、时间限制和披萨状态追踪的订单系统
- 搭载AI出租车在城市中行驶的交通系统
- 路标、命名道路、区域系统
游戏开发过程中AI(Claude)的用途:
城市生成: 这是工作量最大的部分。我需要一个程序化生成的城市网格,包含命名街道、正确连接的路口,以及填充街区的建筑。Claude生成了网格系统以及以正确偏移量和尺寸放置建筑的逻辑。让路口与道路网络对齐费了好几轮迭代。
交通信号灯系统: 每个路口需要独立循环的同步信号灯。Claude构建了信号灯的状态机以及检测玩家是否闯红灯的检测区域。最具挑战的是调整黄灯到红灯的过渡时间,使其对玩家来说显得公平合理。
GPS与导航: 显示从当前位置到配送地址路线的小地图完全是Claude的成果。它计算穿过街道网格的最短路径,并根据玩家朝向与下一个路点的相对角度更新方向提示("确认安全后调头"、"在X街左转")。
披萨状态物理机制: 急刹车、急转弯或碰撞都会降低披萨状态。Claude将其建模为与加速度变化(而非绝对速度)相关的简单物理响应。经过几轮调校使其感觉严苛但不至于不公平。
摩托车操控: Claude编写了移动控制器,包括加速、减速、随速度变化的转弯半径,以及带冷却条的加速机制。让第三人称视角顺畅跟随且不穿模到建筑里也是个挑战。
Claude处理得不太理想的部分:
- 建筑边缘附近的3D碰撞检测。必须手动修复多处摩托车会卡入建筑角落的边缘情况
- 最初的交通AI过于可预测。需要多次提示才能让出租车在路口表现得更自然
- 性能优化。第一版一次性渲染了城市中所有建筑,不得不引导Claude采用视锥体裁剪和LOD概念
令我惊讶的部分:
GPS路径查找几乎第一次就完美运行。我原以为这会是最棘手的部分,结果反而成了Claude构建得最可靠的功能。
如果有人想试试,可以在这里玩:https://vinish.dev/crust-courier
很好奇别人用AI辅助构建了哪些其他3D浏览器游戏,以及最大的痛点在哪里。
评论 (0)