接盘日记 - 第三集:我让关卡变真实,玩家发现自己白玩了八个月

第二天早上,我打开需求单。

上面写着:

优化关卡体验,让玩家感知更真实

我盯着“真实”两个字看了很久。

在这个项目里,真实不是需求。

真实是事故。

昨天我刚发现,项目里有一堆关卡字段。

realLevel
displayLevel
payLevel
fakeLevel
还有一个 bossExpectedLevel

正常项目里,关卡是数字。

这个项目里,关卡是立场。

战斗系统认为你在第二关。
界面认为你在第五关。
礼包认为你在第七关。
排行榜认为你在第十一关。
客服后台认为你还没开始玩。

每个系统都有自己的世界观。

并且互不承认。


我问产品:

“你说的真实,是按哪个关卡真实?”

产品愣了一下。

他说:

“就是玩家感觉真实。”

我说:

“那事实呢?”

他说:

“事实不要太刺激用户。”

我第一次听到“事实”还要控制刺激程度。

我去翻关卡逻辑。

很快看到一段代码:

const realLevel = user.level
const showLevel = Math.max(realLevel, fakeLevel, bossExpectedLevel)

我沉默了。

正常项目取最大值,是为了算伤害。

这个项目取最大值,是为了保护玩家自尊。

更绝的是下面还有一行注释:

// 不要让用户意识到自己还在新手期

我看着这行注释,突然有点佩服。

它没有解决新手期。

它解决了意识。


我拉了几个测试账号。

账号 A,界面显示第 7 关,实际在第 2 关。
账号 B,界面显示第 12 关,实际在第 3 关。
账号 C,排行榜第 31 名,客服后台显示未通关新手引导。

我问客服:

“如果账号 C 来问为什么卡关,你们怎么看?”

客服说:

“我们一般说数据正在同步。”

我说:

“但它同步八个月了。”

客服说:

“所以我们说请耐心等待。”

我沉默了。

在这个项目里,客服不是解决问题的人。

客服是现实缓冲层。


我试着把测试环境里的关卡显示统一成真实进度。

结果很炸裂。

玩家从第 7 关变回第 2 关。
礼包从“高阶勇士专属”变成“新手补给”。
排行榜名次直接消失。
任务栏提示“完成第七关领取奖励”,但按钮上写着“请先通关第二关”。

测试看完之后,在群里发了一句:

“这个版本像账号被盗了。”

运营马上说:

“不能这么发,用户会以为我们回档。”

我说:

“可我们只是让它显示真实进度。”

运营说:

“那更不能发。”

我懂了。

用户能接受游戏骗他。

但不能接受游戏突然坦白。


下午开会。

主题叫:

关卡真实感优化方案讨论

听起来很专业。

实际内容是大家讨论:

到底要骗得更少,还是骗得更像。

数据同事说:

“不能动显示关卡,动了漏斗会断。”

运营说:

“不能动礼包关卡,动了付费会掉。”

客服说:

“不能动后台关卡,动了我们没法判断玩家是不是记错。”

产品说:

“那能不能只让玩家觉得我们动了?”

领导听完,点点头:

“这个方向可以。”

我坐在会议室里,突然意识到。

我们不是在优化关卡体验。

我们是在维护一场多人协作的幻觉。


最离谱的是数据后台。

我打开关卡漏斗。

新用户第 1 关通过率正常。
第 2 关几乎没人。
第 3 到第 6 关全是 0。
第 7 关到达率 98%。

这张图不像游戏数据。

像玩家集体瞬移。

我问数据同事:

“这图你们没觉得奇怪吗?”

他说:

“刚开始觉得。”

我问:

“后来呢?”

他说:

“后来老板很喜欢。”

我看着那根从第 1 关直冲第 7 关的曲线。

突然理解了老板为什么觉得项目节奏好。

不是游戏节奏快。

是数据跑得快。

玩家还在新手村,报表已经替他冲进中后期了。


我继续翻代码。

看到一个方法:

getLevelForReport() {
    return this.getLevelForBoss()
}

我以为自己看错了。

数据上报关卡,取的是老板视角。

下面还有个兜底:

if (!level) return 7

正常项目兜底是 1。

这个项目兜底是老板验收关。

我终于明白为什么新用户第七关到达率 98%。

不是玩家强。

是兜底强。


我又看了一眼那个文件:

TruthLevelManager

真相关卡管理器。

名字很大。

但项目里没有调用。

像一个证人。

知道真相。

但没人敢让它出庭。

我问前同事:

“为什么这个东西一直没接?”

他说:

“接过一次。”

我问:

“然后呢?”

他说:

“玩家少了一半。”

我说:

“为什么?”

他说:

“因为他们发现自己没那么强。”

这句话听起来像心理咨询。

实际上是线上事故。

后来大家就达成了共识:

真相可以存在。

但不能上线。


晚上领导问我:

“今天这个真实感,有进展吗?”

我说:

“有。”

他说:

“怎么处理?”

我说:

“不能直接真实。”

领导点点头,像是早就知道。

我继续说:

“只能让所有地方看起来没那么矛盾。”

领导很满意:

“对,要平滑。”

我第一次觉得“平滑”这个词很残忍。

它不是让系统更正确。

是让错误更圆润。


最后这个需求的方案很简单。

玩家原来看到第 7 关,现在还看到第 7 关。
礼包原来按第 7 关卖,现在还按第 7 关卖。
数据原来觉得玩家到了第 7 关,现在继续觉得。
客服后台原来显示第 1 关,也继续显示。

唯一变化是:

几个地方不再互相打脸。

任务栏不再说“去打第 2 关”。
结算页不再突然写“欢迎来到第 7 关”。
礼包不再在新手引导里喊“高阶玩家专属”。

大家都很满意。

因为真相没有改变。

只是露馅的地方少了。


测试通过后,产品说:

“这版感觉自然多了。”

运营说:

“数据也没掉。”

客服说:

“玩家应该不会问了。”

领导说:

“你看,真实感这不就做出来了吗?”

我没有说话。

因为我突然意识到,这个项目对“真实”的理解很高级。

不是符合事实。

而是所有谎言互相对齐。


下班前,我又打开了一次远程配置。

本来只是想确认第七关那个字段还在不在。

结果我看到一个新配置:

truthLevel = 999

我愣了一下。

旁边还有注释:

// 老玩家回流活动:让用户感知已接近通关

我看了看项目当前一共 32 关。

又看了看 truthLevel = 999

突然明白了。

第三集还没结束。

因为这个项目马上要告诉玩家:

你不是在第七关。

你已经快通关了。

2赞

沙发 已阅

:+1: :+1: 3篇都看了一下,真的假的?没见识过大开眼界

太高产了,持续追更! “真相可以存在。但不能上线” 绝了 :+1:

速更,快快快

催更催更!

游戏叫什么? 我膜拜一下

看完之后我知道怎么解决,将3-6关挪到后面做8-11关就可以解决真实了 :rofl:

我也想知道这游戏叫什么,求告知

好奇 这是真实发生的嘛 :rofl: 太戏剧了 现在还真想知道这游戏叫什么名字了

你总能在这里找到些似曾相识的感觉 :rofl:

什么游戏啊,我想玩玩