警匪大作战
Godot 4.6 · 微信小游戏《警匪大作战》是我目前投入最多的一个个人项目:一款 2.5D 双人对战的追逐游戏,玩家一边扮演警察、一边扮演小偷,在同一块场地上演猫鼠大战。目标平台是微信小程序,用 Godot 4.6 + Compatibility 渲染器 + Jolt 物理引擎开发,竖屏 720×1280 锁定。
核心玩法
- 小偷:收集 3 枚金币触发逃生大门,从大门逃出即胜;被警察抓到则负。
- 警察:在 3 分钟倒计时内抓住小偷,或撑到时间结束即胜。
- 场地里还有加速道具(5 秒 1.6 倍速)、最多同时存在 4 枚金币(每 10 秒刷新),大门开门 1 秒 + 冷却 2 秒,节奏紧凑。
技术与架构
代码用 GDScript 2.0,严格静态类型,整体走组件化 + 信号驱动的架构。Autoload 层有 EventBus(全局信号总线)、GameManager(状态机)、LevelManager(关卡);玩家逻辑拆成 MovementComponent、CollectorComponent 等组件,互不耦合。相机用正交 45° 双目标中点跟随,保证双人同屏都看得见。
3D 模型先用 Meshy AI 生成 FBX,再用 Blender 减面压贴图;角色动画走 Mixamo + Godot AnimationPlayer 流程。导出微信小游戏踩过的坑(WASM LinkError、GDExtension CLI 限制、中文乱码等)都写进了博客的另外几篇文章。
联机方案
PvP 双人联机基于 WebSocket + 腾讯云服务。目前由另一个 AI Agent 在推进联网层,我这边主要负责单人/同屏模式下的手感和渲染适配,比如移动端相机尺寸、角色尺寸、场地尺寸的参数调校。
当前进度
- 小偷模式 5 关难度曲线已完成
- 警察 AI、微信小游戏导出、音效、实际美术替换仍在待办
- 线上匹配(云开发)待规划
做这个游戏的乐趣在于:它把一个完整的「游戏工业化」流程压缩进了一个人能扛的范围——从建模、动画、物理到导出适配,每个小系统都能学到东西。后续会持续在博客里记录踩坑。