Rondo 的第一个可玩原型已经跑起来了。
现在,角色可以在一座咖啡店庭院里走动,被围栏和桌椅挡住,挥出近战攻击,也会被敌人追赶和击中。血量归零后,按下 R,就能重新开始。动作已经有了基础声音反馈,测试包也分别在 Mac 和 Windows 虚拟机里完成了试玩。
场景还很简陋,角色和敌人都是占位模型。但这两天的开发,已经把一个游戏想法推进到了可以亲手操作的阶段。这篇文章就从这个小庭院开始,记录 Rondo 的第一段进度。
1. 从客户端开发走进游戏开发#
我有客户端应用开发经验,但此前没有游戏开发经验。Rondo 是一次个人游戏开发尝试,我会借助 AI 辅助编码,并逐步探索它在美术、声音和文案制作中的用途。
项目暂定名 Rondo,意思是“回旋曲”。正式名称和具体故事还没有确定。
目前明确的方向是:使用 Godot 开发一款动作 RPG,以实时 3D 场景呈现 2D 像素画面,UI 则单独使用 2D 像素风格。开发主要在一台 M1 Pro MacBook Pro 上进行,同时需要支持 Windows。
关于内容,现有草案里有一家咖啡店、白天的工作与对话,以及夜间外出战斗、搜集素材的设想。世界可能由草原、小镇和工业废弃地组成,尝试在废土背景里保留清新的视觉气氛。这些都还在草稿里;目前真正进入游戏的,是用于验证基础操作和战斗的庭院。
2. 先做一个可以反复玩的房间#
第一阶段把范围收在一个房间里:一名玩家角色、一个敌人,以及一套可以失败后重来的基础交互。
现在的操作很简单:
- WASD 或方向键移动。
- 空格或鼠标左键进行近战攻击。
- R 重置玩家和敌人,重新开始。
敌人会在发现玩家后直线追近,进入攻击距离时停下来,在地面显示扇形预警,再发动攻击。预警开始时,攻击方向就会锁定;真正出手时,会重新检查玩家是否还在范围内。因此,看到预警后走开,确实能够躲过这一击。

玩家和敌人都有血量显示,受击会有反馈。敌人被击败后消失,玩家死亡后出现重试提示。按下 R 时,位置、血量和相关战斗状态会一起恢复。
这一版已经可以练习靠近、攻击、走位和重试。不过,敌人还没有复杂寻路,玩家也没有翻滚、连招或正式动作动画。接下来要判断的是:这套最基础的交互能否逐渐形成清楚、有意思的攻防节奏。
3. 3D 世界如何变成像素画面#
当前项目使用 Godot 4.7.2,脚本采用带类型标注的 GDScript。
庭院本身是一个 3D 场景,角色、建筑、碰撞和光照都在三维空间里工作。场景先通过 SubViewport 渲染到一张低分辨率图像,再使用最近邻方式放大显示。可以把 SubViewport 理解成一块独立的小画布:先在里面画好世界,再把结果显示到游戏窗口中。
目前基准分辨率为 640×360,窗口比例变化时会扩展可见区域。血条、文字和操作提示放在独立的 2D UI 层,字体随游戏打包,并通过共享 Theme 统一管理。
这条路线已经能呈现出初步的像素效果,但视觉风格仍需要继续打磨。模型比例、配色、轮廓和光照怎样配合,才能让低分辨率画面既好看又容易辨认,还没有最终答案。
镜头是这阶段一个具体的调整点。原型保留了缓动跟随选项,但默认改成直接跟随。低分辨率画面会放大细微位移的影响:角色停下后,如果镜头仍在缓慢靠近目标,像素和阴影还可能继续变化。当前实现处理了停止时的微小漂移,并通过真实渲染下的连续帧比较检查静止画面。
4. 补上声音,也补上调音量的入口#
第二阶段接入了四类基础音效:挥击、命中、玩家受伤和敌人死亡。声音分别连接到对应的游戏事件,重置时停止正在播放的音效。
这次实际使用的是现成的 CC0 授权素材,来源包括 Freesound、OpenGameArt 和 Kenney。AI 生成音效与使用 Logic Pro 编辑仍属于后续探索,本轮还没有采用。
接入以后,又根据试玩反馈调整了各类声音的相对音量,并在总线上加入限幅器,抑制多个声音重叠时的尖峰。界面也增加了总音量滑块,默认 50%,修改后会保存,下次启动继续使用。
素材整理还有一项尾巴:挥击和死亡音效目前使用 MP3 试听文件转出的 WAV,之后需要获取原始无损文件进行替换。
5. Windows 测试遇到的第一个图形问题#
Mac 上目前使用 Forward+ 渲染器和 Metal。Windows 测试是在同一台机器的 Parallels 虚拟机中进行的,这里遇到了本阶段比较集中的兼容性问题。
当时 UI、攻击预警和扣血逻辑都正常,3D 模型却在启用方向光阴影后不可见。排查记录显示,场景中的模型已经加载,问题与当前渲染路径有关;底层原因还没有定位清楚。
最终,在这台虚拟机中改用 Compatibility 渲染器,并通过 ANGLE 使用 Direct3D 11,模型和阴影恢复了。随后又针对庭院调整环境光和阴影,让画面更接近 Mac 上的表现。
这些调整只应用于对应的 Windows Parallels 环境,属于当前场景下的经验校准。更换素材或渲染环境后仍需重新检查,也不意味着两种渲染器能够输出逐像素相同的结果。
目前,Mac 测试包的操作与听感、Windows Parallels 测试包的画面与操作都已完成试玩确认。普通 Windows 硬件、Windows 音频和性能基准仍待验证。
6. 这一阶段怎样检查#
第二阶段收尾时,已有检查记录为 103 项无窗口检查和 50 项 Mac 图形界面检查,均通过。这些数字包含重复覆盖,主要用于检查移动、镜头、近战、敌人行为、音效触发、音量控件和窗口布局。
自动检查能帮助发现状态和判定问题。画面是否稳定、声音是否合适、操作是否顺手,仍然需要打开游戏和导出包实际体验。部分无窗口测试退出时还有资源未释放提示,后续也需要整理测试清理逻辑。
对这个阶段来说,验收结果很具体:庭院里的基础操作和战斗可以反复进行,现有功能有回归检查,两个已测试环境都有能够运行的包。
7. 接下来:翻滚,以及庭院里会发生什么#
下一阶段的建议计划是加入翻滚,尝试形成“观察预警 → 躲避 → 趁收招反击 → 失败后重试”的战斗循环。
翻滚目前尚未实现。方向、持续时间、无敌窗口、冷却,以及它与攻击之间的关系,都还需要通过原型和试玩确定。先把这一种动作做清楚,再考虑更多战斗系统。
与此同时,我也决定从本周开始学习加深人物塑造、世界构建、环境叙事和视觉基础能力。