Red Shelter 的玩家一直在反映两件事:游戏在加载画面卡住,跑图过程中还会变慢。开发日志第 2 篇介绍的 0.9.34 更新把两者都修了。最醒目的修复简单得近乎好笑:太阳的阴影每一帧都要把整条街画两遍。去掉这份重复劳动后,开发者自己的测试电脑平均帧耗时从约 21 毫秒降到 13.5 毫秒,卡顿帧的占比也从最高 19% 降到 2% 以下。
快速信息
来源:Red Shelter 开发日志第 2 篇《全员到齐,游戏也更顺了》,0.9.34 更新,2026年10月24日发表于 itch.io。本文关于该游戏的事实均出自这篇日志,数字均为开发者自报的测试电脑结果,不是独立复现的测量。
游戏:Red Shelter,一款生存跑酷游戏,跑图沿街进行,救下的幸存者会住进避难所。这篇日志讲的是它的性能修复,不是角色或路线指南。
症状:玩家反映的两个问题,加载画面卡住与跑图过程中变慢。阴影修复针对的是变慢,另一项加载改动针对的是卡住。
本文不声称的内容:不写测试电脑硬件、显卡、引擎或系统,不写 FPS 数字,不写价格,也不拆分每项修复各贡献了多少改善。日志里都没有这些,帧耗时数字只是开发者自报的更新前后结果。
最后核实:2026年11月1日。
封面图:无。开发者 itch.io 页面上找不到可核实的 Red Shelter 实机截图,页面主视觉也无法排除就是该页自己说明的临时 AI 加载插画,因此本文不配未经核实的图片、无图发布。
平均值变好了,但讲故事的是卡顿占比
两个不同的抱怨是一起来的,这一点很重要,因为它们的成因并不相同。加载画面卡住,是开始游玩前的一次糟糕瞬间;跑图过程中变慢,则是持续整局的拖累。把它们笼统地当成一个叫卡顿的问题,会让开发者用一个修复去干两份活。日志把两者分得很清楚,修复也是分开的:加载卡住用加载改动解决,跑图变慢用阴影改动与角色动画改动解决。这种拆分也让报道保持诚实:加载修复对跑图速度没有任何声称,阴影修复对加载也没有任何声称。如果你的玩家同时反映加载差和跑图慢,先把抱怨拆开再动手,否则你会用错系统去修一半的报告。
最醒目的数字是平均帧耗时,开发者自己的测试电脑上,更新前约 21 毫秒,更新后 13.5 毫秒。但更有用的数字是卡顿占比:耗时超过 25 毫秒的帧从最高 19% 降到 2% 以下。这才是纸面变快与实际不再卡顿之间的区别。平均值变好了,也可能仍有五分之一的帧在卡,而玩家感受到的是卡顿,不是平均值。一帧耗时 25 毫秒,相当于只有 40 帧每秒,所以游戏平均值看着体面时,仍可能有五分之一的帧处在这条线或其下。日志同时给出两个数字,是个值得照搬的汇报习惯:平均值给整体印象,坏帧占比给玩家实际感受。这里的两个数字都带着同一个标签,而且必须一直带着:它们是一位开发者在一台测试电脑上自报的结果,没有写明硬件,也没有声称每个玩家的机器都会有同样的变化。
太阳每一帧都把整条街画了两遍
这是整个案例的核心,用开发者自己的话说:太阳的阴影每一帧都要把整条街画两遍,现在改成了单条更短的级联。要理解这为什么伤得这么重,可以想想阴影 pass 是干什么的。画阴影意味着要从光源的视角再把场景画一遍,游戏借此知道什么东西挡住了光。如果这个 pass 覆盖整条街,而且每帧跑两遍,那么游戏每帧总共要把街画三遍:你看到的画面一遍,阴影两遍。把阴影工作改成单条更短的级联,就去掉了一整遍画街的成本,还缩小了剩下的一遍。改动很小,省下来的却很多,这也解释了为什么帧耗时降了这么多,而街道本身、角色与玩法都没有变。本段关于阴影 pass 的一般解释只是背景知识,不是日志原文;画两遍与单条更短级联这两个事实是开发者自己的说法。
同一更新里的另外两项修复处理剩下的两个症状,各自遵循不同的思路。加载画面现在会一直停留,直到游戏完成图形准备工作,于是沉重的第一帧不再发生在玩家眼前。那一帧本身并没有变便宜,只是被移到了玩家预期要等的地方,也就是加载画面后面,而不是以可见卡顿的形式砸过来。角色修复讲的是体积:角色动画压缩到了约 3 倍小的文件,于是跑图中途救起一名幸存者时不再引起卡顿。这里的规律值得注意:哪怕只是在游玩中途加载一样小东西,比如一名幸存者的动画,也可能拖住需要它的那一帧,而把文件变小就能去掉这个卡顿。同一更新也给八名幸存者都做了 3D 模型,但那是内容,不是性能案例,本文不展开。按同一篇日志的说法,公开版本里的僵尸、物品与道具仍在使用占位造型,这也提醒读者:这是一款仍在积极开发的原型,不是正式成品。
能复用的部分
下面的步骤不是 Red Shelter 开发者在已述三项修复之外做过的事,而是把这些修复推广到你自己项目的清单,全部只停留在你自己的项目里。能复用的习惯是数坏帧,而不只是算全部帧的平均值。游戏平均变快了,也可能仍有五分之一的帧在卡,只有卡顿占比能告诉你卡顿是不是真的没了。第二个习惯是排查隐藏的重复劳动。阴影 pass、反射 pass,或任何会重画场景的效果,都可能悄悄让最重的成本翻倍,而且它不会出现在可见物体的清单里,因为多画的那一遍玩家根本看不到。第三个习惯是把成本移到预期要等的地方。加载画面、菜单切换,或行动开始前的安静时刻,都能吸纳那些否则会在游玩中途以卡顿形式砸过来的工作。
周一早上照着做
在你自己的项目里,除了平均帧耗时,同时记录超过你自己卡顿阈值的帧占比。如果平均值变好了、卡顿占比还很高,卡顿就还在。
在你自己的项目里,列出每一遍会重画场景的 pass,从阴影开始,逐项检查是否有对同一区域的重复覆盖。一遍重复的全场景 pass,可能比全部可见物体加起来还贵。
在你自己的项目里,把阴影范围缩短到当前场景中玩家实际能看到的程度,并量一下改动前后的帧耗时,让省下来的部分是测量结果,而不是猜测。
在你自己的项目里,让加载画面一直停留到图形准备完成,并检查加载后的第一帧是否不比普通帧更重。
在你自己的项目里,找出每一项会在游玩中途加载的资源,比如被救角色的动画,检查它的文件体积与加载时机。在需要它的时刻到来之前,先压缩它或预加载它。
在你自己的项目里,每做一项修复就单独重测一次卡顿占比,这样你才知道是哪项修复起了作用,而不是把功劳一次性算给整个更新。

