为什么做完战斗还不算完成游戏

人和 AI 一起做游戏 · 第 5 篇

为什么做完战斗还不算完成游戏:《人和 AI 一起做游戏》第 5 篇,以 Kibble Street TD 文中开发阶段的 Home 画面为背景。

本篇依据截至 2026 年 8 月 2 日的开发记录,回顾 2026 年 6—7 月的完整游戏循环;Home、商店、成长与存档描述对应当时版本。

上一篇:游戏里的画面并不是战斗本身

如果让《Kibble Street TD》打开后直接进入战场,玩家已经可以召唤单位、攻击建筑并分出胜负。对于验证核心玩法,这一步非常重要;但战斗结束之后,一连串更接近产品的问题才刚刚出现。

玩家第一次进入时选择哪个阵营?再次打开时是否还要重选?胜利奖励去了哪里?下一关怎样确定?获得的资源在哪里使用?道具、编队和设置能否在退出后保留?如果这些问题没有稳定答案,完成的仍然只是一段可以运行的战斗,而不是一款能够持续游玩的游戏。

一场战斗只是完整流程的中段

战斗原型的边界很清楚:进入战场,执行规则,产生胜负。它足以回答“这个玩法是否成立”,却无法回答“玩家为什么还要进行下一场”。

战斗原型与完整游戏循环的区别
战斗原型与完整游戏循环的区别

完整游戏需要在战斗前后各增加一段。战斗之前,要准备阵营、关卡、升级、编队和道具;战斗之后,要结算奖励、推进进度、写入存档,并把玩家带回能够继续做决定的位置。

这两端会反过来影响下一场战斗。升级改变长期能力,编队决定参战单位,道具库存限制可用选择,关卡进度决定下一场内容。于是单场胜负不再是孤立结果,而是一次“投入—战斗—回收—再投入”的循环。

启动流程先回答:这是新玩家还是回流玩家

在本篇记录的开发阶段,《Kibble Street TD》有两条启动路径。没有阵营记录的新玩家,在必要内容加载完成后进入阵营选择;选择结果先保存,再准备对应阵营的 Home。已经有存档的回流玩家不再重复选择,而是直接读取原有阵营和进度,进入自己的 Home。

新玩家与回流玩家的两条启动路径
新玩家与回流玩家的两条启动路径

这里的重点不是多一个选择页面,而是让启动过程与存档保持一致。阵营不能只停留在按钮的视觉状态里,否则下一次打开就无法知道玩家属于哪一方;Home 也不能在关键资源尚未准备好时提前响应点击,否则看到界面并不等于真正能够操作。

因此,当时的流程只有在 Home 入场完成、输入限制解除后,才把它视为可交互状态。关键内容加载失败时会停在错误界面等待重试,而不是带着缺失资源继续进入后续页面。

Home 不是菜单,而是整个游戏的交通枢纽

在当时的 Home 中,玩家能同时看到当前阵营、两种资源、下一关入口和四类参战单位。底部入口连接升级、商店、编队与排行,右上角设置负责偏好和存档相关操作。

Home 如何连接各个页面
Home 如何连接各个页面

这些入口由同一套页面跳转规则管理。升级、商店、编队和排行会在 Home 的视觉基础上切换内容;战斗则进入独立页面;设置可以覆盖在当前页面之上。页面返回、连续点击限制和系统解锁也由统一入口判断,避免每个按钮各自维护一套跳转逻辑。

点击 GO 时,游戏不是从按钮上读取一个写死的关卡号,而是根据已经完成的最高关卡确定下一关。某些系统也会随着进度逐步开放。Home 因此不仅展示信息,还把“玩家现在处于哪里、下一步可以去哪里”集中表达出来。

局外页面让战斗结果有了用途

升级页回答的是长期成长:如何把获得的 KIBBLE 转换为下一场能够感知的能力变化。商店页管理货币、道具和礼包,让资源获得与消耗有明确入口。编队页决定不同职责的单位怎样进入下一场战斗。排行页把个人关卡进度放进更大的比较范围。设置页则处理声音、触感、阵营切换和重新开始等不会直接发生在战场里的选择。

开发阶段的升级、商店、编队和设置页面,图中的礼包展示保留当时状态
开发阶段的升级、商店、编队和设置页面,图中的礼包展示保留当时状态

图中商店保留了当时的礼包页面,用来说明系统分工;它不是当前 Android 商店内容的清单。

这些页面并不是为了让主界面显得功能更多。它们真正的作用,是把一次战斗产生的结果转换成下一次选择。如果奖励只能在结算面板上出现,却不能用于成长或准备,它只是一个数字;如果编队调整不会进入下一场,它也只是一个没有后果的界面。

结算不是弹窗,而是把战斗写回游戏

战斗结束时,《Kibble Street TD》会先整理本场结果:胜负、完成进度、敌方单位击杀、防御塔状态、宝箱和已消耗道具。随后计算奖励,更新货币与库存;胜利时只允许按顺序推进当前下一关。数据写入完成后,结算面板才把结果展示给玩家。

战斗结果怎样写回进度与存档
战斗结果怎样写回进度与存档

胜利后,在尚未达到当时发布关卡上限时可以继续下一关,也可以返回 Home;失败后可以重试或回去重新准备。无论选择哪条路,本场已经发生的资源变化都不会依赖结算动画继续存在。界面负责说明结果,存档负责让结果跨越页面和下一次启动。

这条顺序很重要。如果先播放奖励动画,再尝试保存,一旦写入失败,玩家看到的获得与实际数据就会分离。当时的实现把状态变化放在结果展示之前,让下一页读取到的就是已经确认的新状态。

存档保存的不是一个分数,而是玩家的连续状态

这一阶段的《Kibble Street TD》需要持续保留阵营、最高关卡、KIBBLE 与 CANS、升级、道具库存、战斗携带、编队、故事进度、系统解锁和引导状态;声音与触感等偏好也需要在下一次启动时恢复。

一次游玩结束后需要继续保留的状态
一次游玩结束后需要继续保留的状态

这些数据来自不同页面,却必须组成同一个玩家状态。商店增加的道具要能被战前准备读取,升级页购买的能力要进入战斗配置,胜利推进的关卡要改变 Home 的 GO 入口,重新开始则要回到未选择阵营的启动路径。

页面可以不断调整,连续状态不能各自为政。开发到这里,工作重点已经从“把每个页面画出来”变成“保证任何入口、返回和重新启动都能接上同一条流程”。

这个环节由谁负责

人负责定义完整游玩循环:玩家第一次看到什么,战前能够做哪些准备,战后获得什么,以及哪些选择必须被长期保留。

AI 负责检查页面之间的输入与输出,沿着首次启动、回流、胜利、失败、重试、返回和重置等路径寻找断点,并把分散的规则整理成可验证的流程。

引擎负责场景节点、界面显示和本地存储能力,但它不会自动决定哪些数据属于同一个玩家状态,也不会替产品设计下一次行动的理由。

如果你想开始

不要先列出十几个页面名称。先画出一条最短闭环:启动、选择或读取身份、进入枢纽、开始玩法、产生结果、保存、返回枢纽。然后为每个页面写清楚它读取什么、修改什么、离开后谁会继续使用这些结果。

最后至少验证六条路径:第一次启动、再次启动、胜利、失败、关闭后重开,以及清空进度后重新开始。它们全部能够接回同一条循环,战斗才真正成为游戏的一部分。