为什么在最终游戏中会留下额外的资产?


28

我只是在阅读有关“无人的天空”文件中发现的内容的信息,其中有很多未使用或与游戏无关的内容。不久前,我还阅读了有关Watch Dogs文件中保留的E3设置的信息。为什么游戏开发人员会在最终游戏中留下旧文件和未使用的文件?

当然,这只会占用光盘上的额外空间,并且意味着如果您下载游戏,必须下载更多的数据吗?

另外,开发人员是否不害怕人们会找到什么?


7
通常,它不会使用足够的数据来保证将其删除。有时删除此“未使用”文件实际上会给使用“未使用”文件部分的其他游戏对象造成问题。我认为这取决于需要满足的截止日期,以及最后一刻可以削减内容的事实。
瑞安·怀特

10
作为附带说明,更衣室地板上有很多这样的例子。tcrf.net/The_Cutting_Room_Floor
drawoc '16

2
1)没有人记得删除它们。2)是的。3)号
user253751 '16

另一个示例是Dota2。开发人员不仅留下了一些资产,甚至还包括不完整的功能,这些功能可能会在将来发布。例如新角色​​,物品或技能。因此,拆解二进制文件的人们至少可以看到一些有关该游戏的未来新闻(著名示例:几年前在代码中看到的维修区主/下场人物已于几天前正式宣布)。
巴库里

Answers:


35

大型游戏使用一种称为构建管道的工具。这就像另一组工具,可以处理所有不同发行版本的游戏内容。诸如No Man's sky和Watch_Dogs之类的多平台游戏肯定会在不同平台上使用不同的资产。因此,我认为您的问题有两个可能的答案。

  1. 开发人员忘记从管道中删除某些资产,因此他们与实际游戏捆绑在一起。

  2. 开发人员有意将一些“未使用”的资产留在游戏中,以供以后在补丁或更新期间使用,因为他们无法按时完成任务。《巫师》中的恶魔坑实例3。


16
另外,3.故意放置“未使用的资产”,以便修改者/高级用户找到它们,以偷看一下即将发布的版本。与#2相似,除了内容甚至可能不在该特定标题或将来的补丁中使用。
Kroltan '16

4
+1为Kroltan的#3。IIRC巫师3的一个示例是在未使用的内容中隐藏了一个复活节彩蛋。您需要修改游戏的某个秘密区域,才能看到带有开发人员照片或类似内容的照片。
牛奶

3
“忘记删除”不是描述它的好方法。开发人员可能知道他们已经删除了对资产的使用。但是有可能另一个团队已经开始使用该资产。在这种情况下,删除(完全破坏游戏)的可能成本远远超过删除它的好处。
阿隆(Aron)

33

在由多人共同开发的大型游戏中,要找到所有参考内容可能比想象中的难。即使有明确的工具可以提供帮助(我们在ArenaNet上构建了此类工具,使用Unreal的任何人都可以使用Unreal版本的那些工具,Bungie的工具可以做同样的事情,甚至可以谈论它们,等等)。

引用内容的方法有几种可能会打败此类系统,通常是简单地通过引用系统无法跟踪的内容(例如,在代码中创建对某些资产的隐式或硬编码引用)来引用内容。

即使假设您已经解决了查找所有内容相互引用的问题,也存在无法分辨是否确实使用了某些问题的问题。也许某个脚本中的某处引用了某些资产,但是该脚本的触发量未正确放置在墙上,因此内容永远都不会在游戏中产生。彻底测试这一点也很困难。

当自动(或自动售货机),用于检测和过滤掉不用的内容失效的方法,你只剩下老式的方法:人工干预。人们会犯错误,做出错误的假设(他们可能会认为文件仍在使用,即使不是因为其他人进行了更改),是的,甚至有时选择将游戏中无关的内容作为复活节彩蛋。导致这种情况的仅仅是人类的自然错误。

通常不是内容足够量的真多动针负荷或文件大小的优化。还有一些工具可以报告任何大型构建链或引擎中最大或最慢的资产,但重点是减少主要违规者的影响,而不是查找和定位每个浪费的字节。通常。


Arqade上未使用的文件作为复活节彩蛋的示例:Undertale在哪里出现了“打Sans时可能播放的歌曲”?
菲利普

1
目前,Starbounl存在一个问题,即您无法获取/制作“煮熟的触手”,因为教您食谱的位已被删除。同时,资产和定义文件就好像应该在那儿一样摆在那里。考虑到在那儿您经常学到一种配方来创建/挑选由相同成分制成的不同物品(无论​​如何都是用于食物),因此很容易看出如何误将比特从游戏中排除。
StarWeaver

1
即使可以找到磁盘上包含的游戏未使用的所有内容,某些游戏仍被设计为允许用户下载制造磁盘后由供应商生产的额外成本的附加模块。 。如果磁盘上包含价值10 MB的纹理,这些纹理在磁盘上的游戏中没有使用,但在下载版本中很有用,则可以使下载大小减少10 MB。
超级猫

1
MechCommander 2是一个较旧的示例,其中说明游戏附带的游戏中有许多未使用的资产。当Microsoft在其上测试其当时新的XNA Build工具时,它显示40%的游戏纹理尚未使用。blogs.msdn.microsoft.com/briankel/2006/01/24/...
罗斯岭

只需注意:对于图灵完备的语言(最有用的是),找出是否曾经执行过一行代码是无法解决的(停止问题)。如果您确实做到了这一点,则不妨抛弃游戏并收集诺贝尔奖。
Ordous

9

其他答案中缺少的是,这与游戏无关。它影响所有应用程序。

总会有文件和代码在任何相当复杂的程序中都不会使用。发生这种情况是由于以下两件事:

  • 程序会随着时间而发展。
  • 需要弄清楚是否不再使用某些代码或文件。
    • 如果您在不花精力的情况下删除内容,则应用程序的行为将变得不可预测

7

添加到/增强Uri Popov答案

  1. 程序可能会安装更新程序包,其中包含现有资产文件的新的改进版本以及程序本身的更新。就我而言,我不会覆盖资产文件的先前版本,因为我想允许回退到较早的程序版本(例如,想象分发了完全灾难性的更新的恐慌:-)。原始程序版本可能正在使用texture_0.dds和更新的一个texture_1.dds(因此不再需要texture_0.dds)。覆盖(仅使用单个名称)将禁止删除程序更新,即,回退到原始版本,除非还有用旧文件覆盖新资产文件的棘手机制。那不是任何人都想要支持的东西。

编辑:

对原始问题发表评论后,

没有人记得删除它们

  1. 我会说没有人删除它们。如果游戏在该文件X(现已丢失)的加载点缺少足够的错误捕获(错误,无知,错误,关键人物离开公司等),并且经过严格测试却未发现问题,该怎么办?假设加载仅“每3次”发生,仅在36级的35上发生,您只有在4周的激烈游戏中才能达到:-)。崩溃的软件使声誉丧失,这是一个残酷的现象,在最坏的情况下,它可能最终破产了。最好不要触摸该文件:-)。

4
为“没人敢删除” +1。不删除未使用的资产通常只会花费很少的磁盘空间。如果您的团队中的其他人仍在使用某项资产,那么如果该资产离开了紫色的棋盘格或导致崩溃,则可能会使您的公司声誉受损。
Patrick M

2

为什么游戏开发人员会在最终游戏中留下旧文件和未使用的文件?

当然,这只会占用光盘上的额外空间,并且意味着如果您下载游戏,必须下载更多的数据吗?

另外,开发人员是否不害怕人们会找到什么?

游戏开发人员将未使用的文件留在最终游戏中,因为他们不想花费精力查找和删除所有未使用的文件。毕竟,游戏在运行时还需要一些额外的材料,时间就是金钱。清理会增加成本(取决于此操作的自动化程度)。

虽然这会占用额外的空间,并且意味着必须下载更多的数据,但这通常不是开发人员的问题,甚至客户通常也不太关心稍大的下载大小。

不确定开发人员是否需要担心别人会发现什么?他们为什么要这样?只要多余的文件没有任何妥协(真的是不好的艺术品,关于老板或顾客的笑话,...),他们可能就不在乎。尽管在某些情况下,他们实际上担心参与者会在资产中发现什么。


Not sure if developers need to be afraid of anything people might find?阅读了Titanfall 2的技术测试没有进入PC的原因,他们不同意:P。
TMH

@TomHart你是对的。在这种情况下,他们很害怕。在其他情况下,例如问题中提到的情况,则不是,而是包括额外资产。我想开发人员之间的恐惧程度会有所不同。
Trilarion '16

1

有人暗示了这一点,但其他答案并未完全提及它:一切都归结为成本,而且有些成本比您想象的要棘手。

最明显的代价是有人必须删除它们。现在,您可以在案子上放一个实习生,让他去搜索文件和其他内容,以删除实际游戏中不需要的文件。但是仍然,您必须为此付出代价,即使您不付款(因为您是不付实习生的怪物),您仍然可以让那个实习生做一些有用的事情,例如为开发团队订购比萨饼,因此它仍然会花费你。

不太明显的成本是您要删除的资源是由于某种原因而放入的:您是否绝对确定该原因已过时?当然,您为演示编写了此代码,并且不再需要它了,但这完全正确吗?您是否编写了一个有用的函数而忘记了迁移到其他库的功能?Stacey是否为最终在真实游戏中的演示制作了非常酷的图形?内部模拟器是否仍然使用您用于测试的旧级别?

制作游戏是一项业务。即使它不是赚钱的业务,它仍然是资源有限的业务。每个决策都需要进行成本效益分析,即使您不必为每个决策编写业务案例。一个简单的事实是,将这些资产留在游戏中的成本要稍高一些才能下载,而这样做的好处是可以大大降低发行前就发生爆炸的风险。

“不太明显”段落中的所有问号都表示不确定性。你就是不知道 而且,当您开展业务时,必须将未知数换成已知数。众所周知,即使您构建的程序包有点膨胀,它也通过了测试。

还有其他潜在成本,例如开发过程中的信息泄漏,可能会被用来诱骗黑客,但是您是按原样通过测试过程完成的,因此您不必担心。

tl; dr:没有人会注意到下载量增加了4%,但是他们会注意到您是否通过删除必要的文件破坏了游戏。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.