Remy Siu 在四月的一次采访中突然"破防"了。这位 Sunset Visitor 工作室的创始人花了大量时间折腾视频编码(video codecs)——就是游戏里播放开场动画、过场 CG 用的那个底层技术。他的新作《1000xResist》被这个问题折磨得不轻:选个 PC 优化好的编码吧,主机上可能播不了;选个全平台通用的,画质又得砍一刀。现在他做下一款游戏《Prove You're Human》,要用到真人实拍的全动态影像(FMV),问题变本加厉。
Siu 的吐槽让我想起一个老问题:为什么游戏开发者 decade 了还在被视频编码折磨?我找了几个经历过的人聊了聊,发现这事儿比想象中更离谱。
先说说这玩意儿为啥麻烦
视频编码的本质是压缩。原始视频文件太大,得压小了才能塞进游戏,但压缩必然丢数据——"有损"压缩嘛,懂的都懂。问题是,丢多少、怎么丢、在不同硬件上表现如何,全看用的是哪个编码方案。
有些项目一个编码搞定。有些呢?得准备十几种格式,几百个文件逐个验证。Sam Barlow 的 Half Mermaid 工作室(《Her Story》《Immortality》)就属于后者。"很快你就发现没有万能方案,"Barlow 说。他们为了压榨性能,移动端用原生播放器,主机上切 Bink,PC 又是另一套——结果就是每个视频文件都要伺候好几套播放器。
更烦的是平台差异。Steam Deck 上播得好好的过场,到 PC 可能直接黑屏。多平台发售的游戏,开发者得给每个平台单独调参,像在做 N 份重复劳动。
开发者们被迫整的"黑科技"
为了绕过这些坑,有些团队走了极端路线。我听到的案例包括但不限于:
——把视频拆成逐帧图片序列,用游戏引擎自己的渲染管线播放,彻底绕过编码系统。代价是体积爆炸,内存吃紧。
——为特定平台单独重制整个视频管线,相当于同一批内容做多个版本。
——在运行时动态检测硬件,实时切换编码方案,代码复杂度直接上天。
这些都不是"优化",是被迫的 workaround。Barlow 干了十多年 FMV 游戏,至今没找到优雅的解法。Siu 的新项目因为真人实拍占比更高,编码选择直接决定画面能到什么程度——"全平台兼容"和"画质拉满"基本互斥。
为什么没人解决?
理论上,行业可以推个统一标准。实际上?各平台巨头各有各的算盘。索尼、微软、任天堂、苹果、谷歌……每家硬件架构不同,授权政策不同,甚至偏好的编码格式都不同。开发者夹在中间,要么选边站,要么全做。
还有个现实问题:视频编码技术本身在迭代。H.264、H.265、AV1、VP9……新标准不停出,老设备不支持新格式,新设备为了兼容还得留着老解码器。游戏开发周期动辄数年,立项时选的编码,发售时可能已经半过时。
更隐蔽的成本是验证。每换一种编码,每支持一个新平台,都得完整测一遍:画质有没有劣化、音画是否同步、加载会不会卡、特定硬件上会不会崩溃。Barlow 提到他们"individually organize and validate hundreds of files multiple times"——这话翻译过来就是:重复劳动量惊人,还不敢省,省了上线就翻车。
对玩家意味着什么
最直接的:你玩的游戏体积可能莫名其妙大了一截,因为里面塞了三四套重复的视频文件。或者某些版本的画质比别的平台糊一点,不是开发者不想做好,是编码方案限制了天花板。
偶尔也能碰到更离谱的——某段过场在 Steam Deck 上直接消失,或者 CG 播到一半音画不同步。这些问题根源往往不在"游戏代码 bug",在视频编码和特定硬件的兼容坑。
Siu 的《1000xResist》和 Barlow 的 Immortality 都属于重度依赖预渲染视频的类型,所以感受特别深。但说实话,哪怕是个普通游戏,开场放个 logo、中间插段剧情动画,都绕不开这套东西。区别只是痛苦程度。
有盼头吗?
短期看,没有。各平台生态割裂是结构性问题,不是技术问题。长期看,也许云游戏、串流技术能绕开本地解码的坑,但那又是另一套依赖条件的方案了。
Barlow 干了十多年,总结就一句话:没有 one-size-fits-all。Siu 正在做的《Prove You're Human》还得继续找平衡。这个"沉默的噩梦"大概会继续沉默地折磨下去——玩家看不到,但开发者的时间表和血压都真实地被它消耗着。
说到底,游戏开发里这种"底层基建拉胯"的事儿不止一件。物理引擎、音频中间件、输入延迟……每个都是专业领域,每个都能让团队掉层皮。视频编码的特别之处在于,它看似只是个"播放器"问题,实际牵一发动全身,从美术管线到平台认证全受影响。
下次看到游戏更新日志里写"修复了部分过场动画无法播放的问题",可以多想一层:背后可能不是简单的代码 bug,是某个开发者又和编码格式搏斗了几个通宵。
热门跟贴