下载 App

《回声伴生》开发日志 01

修改于10/1624 浏览
主题公布的时候,"涌现"两个字弹出来,我第一反应是兴奋——这词太好了,太好发挥了。第二反应是发愁,因为它也是个特别容易做砸的词。
我琢磨了一个下午,最后把手上四个想法全划掉了。

先说"涌现"这个词坑在哪

涌现的意思是:简单的规则,跑出了没人预先写好的结果。蚁群是这样,鸟群是这样,康威生命游戏是这样。听起来很美。
但作为做游戏的人,这里有个坑:系统的复杂性,和玩家能感受到的复杂性,完全是两件事。
我见过太多标榜涌现的游戏。作者写了一堆相互耦合的系统,生物自己找食物、自己繁殖、自己打架,做得确实牛。然后玩家进去玩二十分钟,出来说:"就是一堆东西在乱动。"
问题不在系统。问题在于玩家没法把看到的结果,归因回具体的原因。归因不了,涌现在他眼里就等于随机。
所以我认为,做涌现主题真正难的地方不是把系统做复杂,而是让人看懂。系统复杂是容易的,往里加变量就行了;让人看懂才难。
于是问题变成:怎么设计一个系统,让玩家能在一局游戏里,亲眼看着一个复杂结果长出来,而且能指着它说"这是因为刚才我……"。
关键在时间尺度。像《矮人要塞》那种游戏,涌现故事是真的,但那故事得跑几十个小时才长出来。21 天做不完,玩家也等不了。
所以我得把涌现压缩进十分钟。

四个我否决掉的想法

后面那一整个下午我基本在自我否决。
一、物理沙盒。 一堆小球小方块,靠物理引擎自己撞。这种东西一定会有涌现,物理引擎自己就会给你惊喜。 否决原因:玩家是上帝视角,他自己不在系统里。看一堆东西自己动,看两分钟就腻。
二、生态圈模拟。 草吃阳光,兔子吃草,狼吃兔子,我调参数让它们自己平衡。 否决原因:同上,而且更致命——玩家唯一的动作是调参数。调参数是个上帝动作,离"故事"太远。你调完只能等,等完只能看。没人会为这个写一段故事。
三、殖民地经营。 造房子、招人,每个人有自己的性格,自己闹矛盾。 否决原因:一个人21 天做不完,而且这类游戏的涌现故事起码几小时才长出来。
四、卡牌 roguelike,每张卡会随机变异。 这是当时最"安全"的一个,肯定做得出来。 否决原因:它是随机的,不是涌现的。 随机和涌现长得像,但差一个关键东西——归因。玩家抽到一张奇怪的卡,他没法说"这是因为我之前怎么怎么样",只能说"运气好"。
四个划完,需求反而变得特别清楚:
  1. 玩家本人必须在系统里。他的行为得是系统的输入之一。
  2. 结果必须能归因,玩家得能顺着线头摸回自己。
  3. 十分钟内得用户能体验到。
  4. 规则本身得简单。简单规则跑出复杂结果才叫涌现;规则本身就复杂,那叫设定。

最后剩下的那个东西

然后就是《回声伴生》:
玩家有一个助手,跟着你打怪。它不像宠物,更像一面镜子。
具体是:玩家的所有行为都被记下来,转化成五个参数——攻击性、谨慎性、机动性、协作性、贪婪性。你一路拿刀砍,攻击性就涨;你躲在远处放风筝,谨慎性就涨;你到处捡东西,贪婪性就涨。
这五个数决定助手怎么行动。它每一秒都在给六个候选行为打分——攻击最近的敌人、挡在你前面接子弹、跑去捡碎片、模仿你刚才的动作、贴着你跑、发呆——谁分高做谁。分数就是这五个参数乘出来的。
但到这儿为止,它还只是个"会学习的宠物"。真正让它变成涌现的,是后面两条。
第一条:参数每波掉 3 点。
这条看着像个数值细节,其实是我整个设计的发动机。
如果没衰减,玩家第一波狂砍一通把攻击性拉满,后面三波助手就永远是那个样子。玩到第二波他就知道结局了,剩下全是重复。
加上衰减之后,玩家不能"设置一次就不管"。他必须持续用行为把那个参数维持住。这逼着他一直做选择。而选择多了,故事就有了。
第二条:突变解锁的不是数值,是规则。
这是我最花心思的地方。
一般养成游戏,练到某个数值解锁一个更强的技能,这是加法。我做的不是加法,在原型版本,我做了六个"协议",每个的触发条件都是一对参数的差值:
  • 狂化协议:攻击性 − 谨慎性 > 30
  • 守护协议:谨慎性 − 攻击性 > 30
  • 相位牵引:机动性 − 攻击性 > 20
  • 影舞协议:机动性 − 协作性 > 20
看出来了吧,全是关系,不是阈值。
为什么?如果是阈值,玩家可以只刷一个参数。但条件是差值,玩家就必须塑造一个形状。同样写着"攻击性 60",配谨慎性 10 和配谨慎性 50,是两个完全不同的助手。
而且这些协议不改数值,它们改规则本身。
比如相位牵引的效果是:玩家冲刺的时候,会把路径上的敌人拉成一堆。注意,它改的是玩家的冲刺规则,不是助手的。
这就绕回来了:规则一改,玩家的打法就得跟着改;打法一改,参数就变;参数一变,别的协议又满足了。
这个圈,就是我的时间压缩器。本来要几十小时才转一圈的循环,我把它压进了十分钟。

环境是第三只手

还差一块拼图。
如果只有玩家和助手两个东西,这个系统就是在他们俩之间打转,维度不够,转久了还是那点花样。
所以我加了环境。而且环境不帮任何一方,它专门拆。
场地里有一块橙色斜纹区,我们叫"观者区"。助手站在里面,它的机动性行为评分打对折——它跑不起来。
场上出现远程兵的时候,助手的谨慎性权重会放大 1.5 倍,它会突然变怂。
分裂怪被打死的时候,全场五个参数各加 1,把水搅浑。
这么设计是因为,环境是唯一一个"不站队"的东西。它不奖励玩家,也不奖励助手,它只是在那儿,把你们俩刚形成的默契弄乱一点。玩家好不容易练出一套打法,换个地形就不灵了,他得重新想。
重新想的那一刻,故事就又长出一截。

怎么知道它到底成没成立

上面说的所有东西,都可能是我自作多情。规则写出来了,不等于玩家能感觉到。
所以我给自己定了一个唯一的验收标准,也是整个 21 天唯一认的成功指标:
测试的时候,有没有玩家自己说出这句话——
"等等,我的助手怎么突然开始 XX 了?哦……是因为我刚才一直 XX……有点意思。"
有"等等",有"哦",就成了。没有这两个词,系统再复杂也是黑箱,等于没做。
在找人测之前,我先自己跑了对照实验:同一场战斗里,直接把助手内部的五个参数从莽夫型改成守护型,看它行为分布怎么变。
切之前那三秒多:它攻击了 29 次,挡弹 0 次。 切之后那四秒:攻击 8 次,挡弹 33 次。
差距够大吧。所以我当时觉得稳了。

然后翻车了

我让同事玩了两把。他说:感觉不出来有什么不一样。
我不信,回去一帧一帧看录屏。看完就明白了。
六个行为在画面上真的一模一样。助手挪一下,偶尔挥一刀。它在攻击、它在挡弹、它在模仿我——画面上分不出来。玩家眼里就是"一个跟着我打的圆点"。
那次之后我才真的理解那句话:看不出来的差别,就是不存在的。

于是回头改了一整轮表现

美术这块我没有人力,21 天就我自己,所以画面上所有东西都是代码画的。
一开始觉得这是没办法。后来发现挺香:颜色是变量,形状也是变量,改配色就是改个数。
然后我给每个视觉元素定了同一条规矩:只干一件事,把系统里的数字翻译成人眼当场能看懂的东西。
背景压黑,留一层很淡的网格。 是为了让画面上所有亮的东西都变成信息。谁在动、谁离谁近,一眼就清楚。网格还顺便当尺子用,玩家会不自觉地拿它估距离——这直接决定他敢不敢冲。
助手会变色。 颜色不是挑的,是算出来的:五个参数加权混成一个颜色。攻击性高偏暖红,谨慎性高偏靛蓝,贪婪高偏紫,都差不多就是灰白。
开局它是个灰不溜秋的小东西,一局打完它变成什么色,看你怎么打。总体成长高了它还会大一圈——视觉上,"你确实把它养大了"。
它头顶挂一行字。 攻击 ← 攻击性 26。左边是它在干嘛,右边是驱动它的那个参数。
这是我自己最满意的一处。它把因果直接怼到玩家脸上。第一次看见自己那个攻击性数字出现在助手头上,人会"哦"一声——那声"哦"就是我要的东西。
一排 12 个格子。 助手最近 12 次决策的历史。格子底色是驱动参数的颜色,里面一个字是行为:攻、挡、拾、模、跟、待。一局打完不用回忆,扫一眼就知道它这几分钟在干嘛。
三种敌人做成三种形状。 冲锋兵三角,会往你身上扎;远程兵方的,站着不动;分裂怪菱形,会裂。不写名字,靠形状半秒认出来。
HUD 不做成仪表盘。 左边五根参数条加一条行为历史,右边是碎片、已觉醒的协议,还有"正在形成的关系"的进度条——比如狂化协议那条 攻击性 − 谨慎性 > 30,现在 62%。
TapTap

接下来

先做养成深度,加两层:一是让两个已觉醒的协议凑在一起能咬合出组合效果,二是让助手在一局之内有看得见的蜕变阶段,不再是全程一条直线。
再做局外成长,走记忆型不走数值型——下一局开局带着上一局的参数残余,并且记住上一局你具体是怎么对它的,但不给任何永久加成。
这两块都必须配可读化:开局要明确告诉玩家"它记得你上一局的样子",协议咬合要有提示,否则玩家只会觉得"这游戏开局是随机的"。
猜你想搜
聚光灯游戏创作挑战 回声伴生开发日志
《回声伴生》开发日志 · 第二篇截图
《回声伴生》开发日志 · 第二篇
本期进展 咬合不做"组合技",做解锁链 本来打算写一批组合技,检测两个协议同时存在就触发额外效果。动手发现走不通:组合技是新的结算路径,每加一条就要在伤害、护盾、拾取里各开一个口子。47 种突变两两组合上千种。 真正的问题是——狂化和暴走听起来就该连在一起,玩家却只能靠运气凑齐。它们本来就是一条链的两级,我只是没把链写出来。 所以改成解锁链:觉醒某协议,把它下游突变开进候选池。狂化 → 暴走 /
官方
1 赞
《回声伴生》开发日志 · 第五篇截图
《回声伴生》开发日志 · 第五篇
回声伴生》开发日志 · 第五篇:把"第一次"和"下一次"补上 前四篇补的是"玩起来有什么"。这一轮补的是两端:第一次进来怎么上手,和中途退出还能不能接着打。 另外还回退了一个东西——第四篇我写进日志的那个 Web 音频修复,实测是错的。 本期进展 设置并构建了新手教程 实现了中断保存的功能 为助手设置了专属音效 问题: 旧版本bgm声音过大,导致玩家音效听不清,现已下调bgm音量。 玩家音效过于
官方
4 赞
《回声伴生》开发日志 · 第三篇截图
《回声伴生》开发日志 · 第三篇
本期进展与问题处理 放弃"全程序化" 。形状词汇量用完了。15 种敌人,三角方块菱形圆,几何图形的区分度七八种就榨干了,再加敌人玩家没法半秒认出来; 形状承载不了质感。能画出"一个环",画不出"一个在发光的护盾"。 于是引入 32 张贴图。 开发过程中遇到了三个问题,一:贴图全变白块。二:所有贴图上下颠倒。三:每张图的"前方"都不一样。对贴图和位置进行了重新审核,为图片设置正确方向。修复问题 3.
官方
4 赞
《回声伴生》开发日志 · 第四篇:截图
《回声伴生》开发日志 · 第四篇:
把声音和"我错过了什么"补上 第二、三篇的下期计划里都留了同一条:内容可见性。 这一轮把它做了,同时补了音频——一个从第一篇起就没碰过、但缺了会明显影响手感的模块。 本期进展 突变池:把"我错过了什么"变成一页可以看的东西 47 种突变,一局最多觉醒 5~6 次——玩家能看到不到总量的八分之一。这个数字本身是重玩价值,但之前玩家不知道自己错过了什么。 新增「突变池」页,按 Tier 分组列出全部突
官方
4 赞