Bandicoot如何崩溃导致Playstation崩溃


顽皮狗的安迪·加文(Andy Gavin)谈及90年代的内存管理和3D动画。

“《 Crash Bandicoot》中的内存非常缺乏,以至于我不得不从Sony库中窃取一小部分额外的内存。在我看来,我只是尝试删除了那些我没有使用过的部件,然后检查了一切是否仍然有效。如果一切正常,那么我将它们标记为免费,并对它们的代码进行修改,更改字节码。我想:我可以做到,如果索尼不想自己修复它,那么我只需更改他们的代码即可。那是自由的记忆。 (笑)记忆有限。但是没有人绝对允许我们这样做。”

嗨,我是Naughty Dog Inc的联合创始人,Crash Bandicoot的首席程序员Andy Gavin。我们决定创建第一个具有三维角色的动作平台游戏,并且要正确地做所有事情,我们实际上不得不入侵设备。

这是Naughty Dog的哲学的一部分,该哲学利用每个CPU或GPU周期,每个字节的内存来尽一切可能。如果汽车中有这样的机会,那么我们试图找出如何最大程度地利用它,而不管它是否对我们有用,以及我们是否会使用一些疯狂的技巧。 1994年夏天,我和我的搭档Jason Rubin共同完成了一款3DO格斗游戏,称为《勇士之路》,并考虑了接下来要制作的游戏。当时最流行的游戏机类型是动作平台游戏,例如《超级马里奥世界》和其他各种经典的16位平台游戏。同时,街机上出现了新的3D设备,某些类型的游戏开始从传统2D过渡到3D。


诸如《街头霸王II》和《真人快打》等游戏仍处于巅峰状态,但《 Virtua Fighter》已经出现。它使用3D图形,很酷,而且很明显,游戏将以这种方式移动。新的游戏机将以3D模式运行。我可以创建3D平台游戏吗?尚无人这样做,但这即将发生。考虑一下Sonic如何通过3D管道循环飞行。看起来如何?直到1994年秋天,顽皮狗只由我们,杰森和安迪组成,形成了真正的协同作用。我们俩都处理所有创作方面的事情,我们是最好的朋友,室友,Jason是一位杰出的艺术家,我是一名游戏程序员,我认为这很好。 [笑]在我们两个中,他试图使游戏看起来很棒,而我试图使技术发挥作用,我们俩都在努力使游戏真正有趣。我和杰森(Jason)将“勇士之路(Way of the Warrior)”的版权出售给了环球影业的一个新部门,即环球互动公司。实际上,他们告诉我们:来到加利福尼亚,停在史蒂芬·斯皮尔伯格(Steven Spielberg)旁边的环球影城,我们将免费为您提供平房和所有您需要的东西。您可以做任何您想做的事,只需向我们展示。我们带着那只叫Naughty Dog Morgan的狗进入我的本田雅阁,开车穿越全国,所以我们有很多时间可以交谈。我们讨论了:平台游戏在3D中将是什么样子?来到加利福尼亚,停在史蒂芬·斯皮尔伯格(Steven Spielberg)旁边的环球影城(Universal),我们将免费为您提供平房和所有您需要的东西。您可以做任何您想做的事,只需向我们展示。我们带着那只叫Naughty Dog Morgan的狗进入我的本田雅阁,开车穿越全国,所以我们有很多时间可以交谈。我们讨论了:平台游戏在3D中将是什么样子?来到加利福尼亚,停在史蒂芬·斯皮尔伯格(Steven Spielberg)旁边的环球影城(Universal),我们将免费为您提供平房和所有您需要的东西。您可以做任何您想做的事,只需向我们展示。我们带着那只叫Naughty Dog Morgan的狗进入我的本田雅阁,开车穿越全国,所以我们有很多时间可以交谈。我们讨论了:平台游戏在3D中将是什么样子?

我们讨论了《刺猬索尼克》游戏。想象一下,您正在平台上循环,运行和跳跃,并以3D方式收集对象。相机始终在播放器后面。您可以看到世界,一切看起来都很棒,但这就像一场有关Sonic屁股的游戏。您所要做的就是看Sonic的屁股。但是,当我们在前面看到它时,该角色最具表现力。是否可以设定玩家移动到相机的位置?但是如何看他在哪里跑步?实际上,这种反射逐渐将我们引向了Crash Bandicoot的鹅卵石层。玩家应该在水平方向上向侧面移动吗,他应该在屏幕上看着肩膀吗?我们同时设计了一款游戏,该游戏将成为《 Crash Bandicoot》,并同时为它选择了一个平台。

我们知道,由于它将是3D游戏,因此我们需要新的32位平台之一。因此,有3DO,我们已经为此做过一场比赛,但是这辆车就像弯道,只有3D机器。另外,它非常昂贵,而且卖得不好。还有雅达利捷豹。我们认为这是一种误解。而且有认真的人即将发布新车。我们从任天堂知道了一辆神秘的汽车,但找不到任天堂正在做些什么。他们根本没有与美国人沟通。世嘉有两个项目。她有32X,从秋天开始发行。她应该增强Genesis的能力。此外,她还创造了一辆新车。我不记得它是否已经被称为土星,但结果变成了土星。还有一个黑马索尼。该公司以前从未制作过视频游戏。我们听说她有一台强大的新机器,因此我们联系了Sega和Sony,并研究了他们提供给我们的信息。要与他们达成协议,您必须放下自己的灵魂和长子,然后,如果您向他们保证,便可以订购汽车。索尼拥有一辆新车,就好像是全3D一样。它很好地适应了2D,它是一种全新的清晰架构,与诸如Silicon Graphics之类的高端商用3D设备非常相似,但有许多简化之处,使控制台更经济。 PlayStation 1有两个主要的专用芯片-图形模块和具有MIPS架构的特制CPU。但是现代的GPU复杂得多,它们执行大量的计算,而这些计算是90年代旧的GPU无法完成的。PlayStation 1 GPU只是在屏幕上渲染了三角形,但效果很好。他每秒可以绘制约120,000个三角形,这在当时是惊人的。当时的PC上没有用于3D图形的设备。他们有VGA板。如果可以得到数百个多边形,您将很幸运,因为所有计算都是以编程方式进行的。还有一部售价199或299美元的PlayStation。

-299。-

这是一台完成的机器,带有CD驱动器,内存和所有必要的东西。当时控制台和PC之间的差异非常大。我们正在谈论Windows 3.1和DOS的时代。要开始游戏,通常需要拥有一个带有特殊autoexec.bat和config.sys的启动盘,必须在计算机中将其打开。当时,PC世界并不十分游戏友好。在PlayStation或Genesis或Super Nintendo上,仅插入盒带或CD就足够了-吊杆上的所有东西都已装好。我最喜欢索尼。她很酷,清晰,有能力并且对3D感兴趣。我真的以为这是唯一可以承受我们计划的机器。

Crash Bandicoot作为游戏的基本思想是它应该具有机制,就像在《大金刚国家》这样的游戏中一样。玩家必须经历倒计时级别,敌人和跳跃。它必须是带有卡通动物角色的平台,我们不希望它看起来非常像电子游戏。我们希望她像《鲁尼突尼斯》卡通人物那样,动画人物动画流畅,动作流畅。如果它被一块巨大的滚石压碎,那么它将变成一块滚动的薄煎饼。我们希望通过经典动画磁带的情感来创造一个与动画世界类似的世界,然后通过电视连续剧如Duck Tales和The Simpsons重新发现它们。动画再次变得很酷。帧中有崩溃,我们每秒有30帧,屏幕上大约有1500个多边形。其中有600人被车祸占领。那就是他对我们的重要性。大多数游戏使用大约80个多边形,并且角色看起来像是奇怪的行走块。我们希望他看起来像一个真正的卡通人物。这需要很多细节,所以他拿走了我们垃圾掩埋场预算的三分之一。


创建崩溃后,我们不断发明新东西。还没有人制作过动作平台类的3D游戏。同时,很明显,通常用于开发游戏的PC不会。我再说一遍,那时是Windows 3.1时代,缺少3D图形,实际上只有640 KB的RAM。我们冒险收购所有公司,然后我们就有五个,Silicon Graphics工作站,主要是Indigo2 Extremes。工作站的价格在75到10万美元之间。他们有3D图形。用于创建3D图形的软件每辆车的成本也约为75,000。在此之前不久,在此类软件上制作了电影《终结者2》,《深渊》和《侏罗纪公园》。因此,我们决定选择Alias PowerAnimator作为软件,当时是三种可能的选择之一[笑]。

因此,我们有了一个笨拙的大盒子-PlayStation的早期原型,结果证明它是一台非常不错的机器。但是首先,您需要了解一些东西。它附带了一堆手册,这些手册原来是从日语神秘文本中翻译得非常差的。我们对这组或那组有趣的英语单词的含义进行了精彩的讨论。要真正弄清楚,我们必须凭经验进行测试。我们采用了各个部分,并编写了测试代码以对机器执行特定操作,并查看其如何应对。这类似于您在赛道上驾驶汽车并检查其转弯速度的方式。控制台具有许多不同的图形模式,例如,高分辨率模式下的半速操作;但是,中分辨率模式显然是在最后时刻发明的,因为它的工作速度与低分辨率模式相同。 Jason已经创建了角色Crash Bandicoot,该角色看上去与游戏中的角色几乎相同,因此我将其带到了显示器上,我们将其缩小到了适合屏幕的尺寸。我编写了代码来计算每个多边形占用的像素数,结果发现平均为1.2像素。因此,我建议:为什么我们还要对这些多边形进行纹理处理?我们决定不对字符使用纹理化模式。着色时,我们将使用更快,更轻松的模式,大多数开发人员不会使用该模式。大多数只是使用过的纹理。部分原因是由于我们进行了测试并发现在非纹理模式下,游戏的运行速度是以前的两倍。如果开发人员未进行测试并相信说明中的数字,则他们将收到一个数字。我们发现,PlayStation实际上可以每秒在图形设备上绘制相当数量的多边形,但是我们需要执行计算才能知道这些多边形应位于何处。


如今,几乎每台计算机甚至手机都具有功能强大的顶点块GPU,它们可以执行大量计算,通常是数十亿次的求和乘法。那时,大多数计算机可以一次在CPU中执行乘法和加法运算,因此它们可以进行数百或数千次运算,但无法进行数十亿次运算。这是一个严重的障碍。

PlayStation的根本问题是,从数学角度来看,硬件和软件之间的交互并不理想。我们似乎理解问题出在软件上,索尼只是想使用它编写的库,但是并没有最大限度地使用机器。设计师在内部的某个地方添加了用于汇总乘法的设备,因为需要数百万个这样的运算,但是所有这些都隐藏在Sony编写的C语言库的下面:您给它们传递了数字,它们进行了乘法和,但是性能很糟糕。尽管图形单位每秒可以绘制100-120,000个多边形,但是库设法对数学进行了转换,可能是5到1万个,这显然是不够的。也就是说,如果您使用Sony的官方说明并调用图形库在PlayStation 1上测试顶点数学的基本性能,则可能损失整个数量级,请使用铁的十分之一。代码只是不够快地工作。


我们所做的事情几乎与任何优秀科学家都会做的一样-我们拆开了系统,意识到内部有足够的动力,但控制台却对我们隐藏了。对于这个特定的问题,我通过我在索尼的朋友们提出了一个创造性的解决方案-我们交换了两张纸,亲自交了。 “我什么都没告诉你。” (笑)但是实际上就足够了。我们只是系统地完成了所有这些工作,结果发现,在经过特殊设计的Sony CPU中,存在一个称为协处理器的数学“大脑”,能够执行非常专业和有限的计算来转换顶点。并且他设法以GPU能够使用此数据的速度执行它们。自街机时代以来,几乎所有专业游戏设备都具有两个主要“大脑”:图形模块和CPU。好的老式CPU处理单个数字,这使它们能够执行计算机能够执行的所有操作,但同时它们只能“思考”一个想法。图形模块提供了一种渲染图形硬件的方法。在80年代初期的游戏中,甚至在像Galaga这样简单的游戏中,您只需要射击外星飞船,该图形就被称为精灵。那时,CPU无法渲染精灵。发明了能够创建精灵和滚动背景的小型图形模块。实际上,由于视频游戏,所有计算机图形技术都得到了发展。但是,您始终必须在这些机器中的图形大脑和大脑之间保持平衡,从事普通数学。如今,GPU有时可以执行数千个相同的操作,因此GPU的处理能力远大于CPU的处理能力。他们有许多千兆位触发器,有时甚至有万亿个触发器。他们不执行常规计算。


让我在2D平台游戏中向您解释游戏玩法。以大金刚国家为例。玩家可以在一个级别(即,左右),向上和向下跳台中前进和后退,但实质上游戏是线性的。通常,您向右移动并遇到障碍。一切都归结为1980年《 Pitfall》中出现的原理。您可以在藤蔓上摆​​动以跳过尖峰。怪物可以在平台上漫游,蜜蜂飞过它们。游戏正在线性发展。您会看到自己的移动位置,并且游戏节奏非常快。跳跳踢,跳跳踢。因此,它与2D配合得很好。设计师几乎测量了游戏的音乐节奏,因此,这些游戏非常令人兴奋和令人上瘾。您将对游戏有一个更好的了解,首先学习管理的基础知识,成为大金刚,然后您在水平上研究敌人和物体的运动,记住路线。就像在节奏游戏中播放音乐一样。但是在3D中,一切都不同。我们增加了一个新的维度。现在您可以左右移动。如果您在大金刚乡村或马里奥有三只乌龟来到您身边,那么您需要跳过它们或跳到它们的头上,以将三只乌龟一一击倒。在3D中,您只需向右移动即可安静地围绕它们移动。我们添加了一个全新的空间维度,而空间变得太多了。这似乎改变了选择与冲突之间的平衡。我们必须弄清楚如何对此进行补偿,以保持游戏的正常进行。我们意识到我们已经添加了一个新维度,因此减去它是最容易的,但是减去不同的维度。假设这是在鹅卵石水平上。测量我们实际上花了一些时间。

这不是三个空间维度之一。由于存在关卡的危险(如果您不经常移动,移动,移动,石头会压碎您),因此您无法选择其他尺寸,因此使您在狭窄的走廊上移动得如此之快,以至于使游戏过程变得异常激烈。公猪的水平方向相反-您将向目标跳跃,而不是将物体向自己移动。就像您坐在野猪上一样,无法控制它的速度。这是一个野猪,您基本上需要左右移动,然后才开始更普通的3D关卡。例如,在疯狂海滩上,我们放置了丛林墙以缩小空间,而不是完全缩小,而是部分缩小。还有其他一些因素可以缩小范围,例如,这些级别的敌人(例如螃蟹或臭鼬),他们绕过玩家的一侧。这并不意味着我们无法根据需要使用新尺寸,因为我们在左侧有一个方框,在右侧有一个方框。您可以做一些有趣的事情,例如,玩家必须选择是否要面对威胁并移到箱子里。如果玩家处于“狂野的猪”之类的水平,那么我们就是故意这样做的。假设我们的杆子上有尖刺,左边是一个盒子,右边的道路上没有障碍物。因此,为了更轻松地渡过这个障碍,您可以向右移动并越过支柱。但是那样你就不会得到盒子了。要获取它,您需要在最后一秒移至该职位,然后滑至侧面。也就是说,游戏为玩家提供了时间计算的选择或要素,例如在3D类型的某些级别(带有滚动的鹅卵石)上,其次是平台。播放器需要跳跃,但是您可以增加电压,导致平台崩溃。平台本身具有其有效期。玩家爬上她,然后她移动并跌落。而且,我们还有不同格式的级别,我们再次采用了一个维度。例如,在游戏中,有许多关卡代表例如一堵墙,也就是说,它们似乎以2D形式出现。是的,您可以移到侧面,但是我们已经做了类似2D水平的操作,固定了相机,使其从侧面看。还有另一种类型的级别,其中摄像机升起并且Crash好像沿着网格移动,但是几乎没有上下移动,并且玩家不是在开放空间上而是在桥下,这存在某种致命的危险。在这里我们再次采取了一个维度。例如,在游戏中,有许多关卡代表例如一堵墙,也就是说,它们似乎以2D形式出现。是的,您可以移到侧面,但是我们已经做了类似2D水平的操作,固定了相机,使其从侧面看。有一种类型的级别,其中摄像机上升,而Crash好像沿着网格移动,但是几乎没有上下移动,并且玩家没有开阔的空间,而是在桥下,这存在某种致命的危险。在这里我们再次采取了一个维度。例如,在游戏中,有许多关卡代表例如一堵墙,也就是说,它们似乎以2D形式出现。是的,您可以移到侧面,但是我们已经做了类似2D水平的操作,固定了相机,使其从侧面看。还有另一种类型的级别,其中摄像机升起并且Crash好像沿着网格移动,但是几乎没有上下移动,并且玩家不是在开放空间上而是在桥下,这存在某种致命的危险。镜头升起,而Crash好像沿着网格移动,但几乎没有上下移动,并且玩家没有打开空间,而是在桥下,那里存在某种致命的危险。镜头升起,而Crash好像沿着网格移动,但几乎没有上下移动,并且玩家没有打开空间,而是在桥下,那里存在某种致命的危险。


在每种情况下,我们都希望增加限制或降低自由度,以缩小空间并提高游戏强度。由于存在额外的维度,因此该游戏比传统的2D游戏更具多样性,因为在不同的级别上,我们消除了不同的维度。我们大约有7-10种不同的策略来限制测量。盒子实际上也是为了填补空白而发明的。屏幕上没有太多敌人,因为机器不会应付很多敌人,但是我们积极地用抽屉装满了空白处。此外,它们可能会散落在整个堆栈中并造成困惑。对于只有几个多边形的这种简单对象,它具有难以置信的通用性。

我们确定我们想要创建一种在视频游戏中从未使用过的动画类型。它本来就很像卢比调音(Looney Tunes)的风格,这种变形的动画。这是一种非常有弹性的橡胶风格的动画,在传统动画中实现。因此,实际上需要对角色进行动画处理。在90年代低聚图形时代,传统上是用少量骨头来创建角色的:骨头,肱骨,前臂骨头,头骨头;角色的所有右臀部图形都附着在右大腿的骨头上。骨头是刚性物体,就像铰链一样。它可以旋转或移动。这在某种程度上让人想起机器人,如果您需要手指,则必须制造很多骨头。对于PlayStation,这是过多的计算。我们知道她永远不会应付一堆骨头。就像动画片中那样,用动画制作用锤子敲打手的动画当然是不可能的。我们在那里看到什么?手像球一样肿胀,或扁平成煎饼,或类似的东西。我们无法用单个骨骼系统来完成所有这些工作。在诸如《 Virtua Fighter》之类的游戏中,街机使用经典的骨骼系统。它非常适合格斗游戏,因为它没有太多的变形,但是角色看起来有些受限制。使用骨骼创建面部动画几乎是不可能或非常困难的,我们知道我们确实想实现它。哪个角色不喜欢微笑或眨眼?甚至有可能在Silicon Graphics工作站上实现这样的动画吗?就像动画片中那样。我们在那里看到什么?手像球一样肿胀,或扁平成煎饼,或类似的东西。我们无法用单个骨骼系统来完成所有这些工作。在诸如《 Virtua Fighter》之类的游戏中,街机使用经典的骨骼系统。它非常适合格斗游戏,因为它没有太多的变形,但是角色看起来有些受限制。使用骨骼创建面部动画几乎是不可能或非常困难的,我们知道我们确实想实现它。哪个角色不喜欢微笑或眨眼?甚至有可能在Silicon Graphics工作站上实现这样的动画吗?就像动画片中那样。我们在那里看到什么?手像球一样肿胀,或扁平成煎饼,或类似的东西。我们无法用单个骨骼系统来完成所有这些工作。在诸如《 Virtua Fighter》之类的游戏中,街机使用经典的骨骼系统。它非常适合格斗游戏,因为它没有太多的变形,但是角色看起来有些受限制。使用骨骼创建面部动画几乎是不可能或非常困难的,我们知道我们确实想实现它。哪个角色不喜欢微笑或眨眼?甚至有可能在Silicon Graphics工作站上实现这样的动画吗?在诸如《 Virtua Fighter》之类的游戏中,街机使用经典的骨骼系统。它非常适合格斗游戏,因为它没有太多的变形,但是角色看起来有些受限制。使用骨骼创建面部动画几乎是不可能或非常困难的,我们知道我们确实想实现它。哪个角色不喜欢微笑或眨眼?甚至有可能在Silicon Graphics工作站上实现这样的动画吗?在诸如《 Virtua Fighter》之类的游戏中,街机使用经典的骨骼系统。它非常适合格斗游戏,因为它没有太多的变形,但是角色看起来有些受限制。使用骨骼创建面部动画几乎是不可能或非常困难的,我们知道我们确实想实现它。哪个角色不喜欢微笑或眨眼?甚至有可能在Silicon Graphics工作站上实现这样的动画吗?哪个角色不喜欢微笑或眨眼?甚至有可能在Silicon Graphics工作站上实现这样的动画吗?哪个角色不喜欢微笑或眨眼?甚至有可能在Silicon Graphics工作站上实现这样的动画吗?

杰森(Jason)创建了这个Crash模型,并准备创建很酷的卡通动画。他发现强迫PowerAnimator这样做确实可行,因为它具有强大的工具,例如骨骼和顶点权重以及变形场。但是PowerAnimator实现它们的方式无法在PlayStation上播放。所有这些东西都使用了昂贵的设备在Silicon Graphics工作站中使用浮点,甚至她无法实时执行它们。她必须渲染动画,并且视频游戏是实时进行的。我们需要有时间在1/30秒内完成所有操作。这成为另一个严重的问题,因为我们确实想实现这些动画。

我建议:好吧,我们可以读取所有顶点的位置。如果我们知道所有顶点在每个帧中的位置,那么骨骼的类型对我们来说并不重要。尽管SGI至少使用了1000根骨头,但原理是相同的。我们只需绘制多边形和顶点位置,就可以很快完成。我们不必执行骨骼计算,因此不会在骨骼上花费CPU资源。但是采用这种策略,问题是如果我们有一个动画,每秒动画30帧,而Crash由大约500个顶点和大约600个多边形组成,那么我们需要在每个顶点的每个动画帧中存储位置。这是大量数据。但是与此同时,我们已经为这种疯狂的内存策略而迷住了,它的数据量增加了30倍,因此我们可以处理比其他人更多的数据。因此,我们决定使用PowerAnimator中Jason的所有复杂效果烘焙动画数据。所以我做到了,并且奏效了,因为PlayStation开发套件的内存大约为8或32兆字节。因此,可以允许比实际机器上更大的体积。我们为此工作了几个月,而我一直在想,无论如何我们都必须将所有内容都保存在我们的记忆中。体积很大。它需要做的少。但是我有一种感觉,在数学意义上,没有太多的数据可以写出专门的压缩算法。如何理解这一点:在计算机科学理论中,数据具有一定程度的复杂性。它们具有模式和局限性,在我们的情况下,这些动画可能会遭受损失。根据相同的理论,jpeg可以工作,而且由于他完全改变了Internet和存储图像的方式,因此jpeg可以工作。在jpeg的情况下,我们将图像转换为一个频率范围,这是一个复杂的数学变换,然后我们丢弃高频垃圾,对其进行反转,并根据丢弃的垃圾量,图像开始看起来好坏,但它仍然包含最重要的部分,占据了20个或减少30倍的空间,因为我们摆脱了不重要的信息。我非常确定,使用动画数据时,在某些情况下我们可以摆脱高频动画,例如在角色腰部的顶点处,因为它们不会上下移动太多。在jpeg的情况下,我们将图像转换为一个频率范围,这是一个复杂的数学转换,然后我们丢弃高频垃圾,对其进行反转,并根据丢弃的垃圾量,图像开始看起来好坏,但它仍然包含最重要的部分,占据了20个或减少30倍的空间,因为我们摆脱了不重要的信息。我非常确定,有了动画数据,在相同的情况下,我们可以摆脱高频动画,例如在角色腰部的顶点处,因为它们不会上下移动太多。在jpeg的情况下,我们将图像转换为一个频率范围,这是一个复杂的数学变换,然后我们丢弃高频垃圾,对其进行反转,并根据丢弃的垃圾量,图像开始看起来好坏,但它仍然包含最重要的部分,占据了20个或减少30倍的空间,因为我们摆脱了不重要的信息。我非常确定,使用动画数据时,在某些情况下我们可以摆脱高频动画,例如在角色腰部的顶点处,因为它们不会上下移动太多。但它仍然包含最重要的部分,占用的空间减少了20或30倍,因为我们摆脱了不重要的信息。我非常确定,有了动画数据,在相同的情况下,我们可以摆脱高频动画,例如在角色腰部的顶点处,因为它们不会上下移动太多。但它仍然包含最重要的部分,占用的空间减少了20或30倍,因为我们摆脱了不重要的信息。我非常确定,有了动画数据,在相同的情况下,我们可以摆脱高频动画,例如在角色腰部的顶点处,因为它们不会上下移动太多。


马克·泽尼(Mark Zerny)编写了一个分析程序。他制作了一组动画,并分析了每个组件和每个顶点,计算了一种动态范围以及动画之间发生的变化的幅度。他发现信息实际上变化很小。因此,事实证明,我们可以使用一种非常专业的算法来确定范围和所有其他内容,并在开始时创建一个映射,例如,其中写道,第7个顶点的Y坐标几乎没有信息,因此只需要两位。她在这样的范围内移动,并且她需要很多位。最后,我们获得了50-81范围内的压缩率,也就是说,数据变小了50倍。


如果您查看PlayStation 1的设计,尽管设计和平衡正确,但该机器只有2 MB的RAM和1 MB的VRAM。但是她还有一个CD驱动器,它可以存储多达640 MB的数据以供读取,而且还远远不止这些。这个比例非常大。也就是说,从理论上讲,有可能使级别超过两个兆字节。就像在常规游戏中一样,假设在《扭曲金属》中,您进入了埃菲尔铁塔级别,并且游戏将埃菲尔铁塔级别加载到1兆字节的内存中。它们具有一定数量的图形和动画,大约占一兆字节。现在,您可以提出不同的数据压缩方法,但是没有办法解决此限制,人们没有真正尝试过。因此,原则上,一切正常。一台计算机(即CPU和GPU)只能访问当前内存中的内容。内存中的每1/30秒需要渲染一帧。现在将要绘制的所有内容,现在将要使用的所有动画和声音都必须在内存中,因为您可以快速访问内存。 CD驱动器大约需要1/3秒才能将磁头移动到CD上的任何点。加载数据需要一些时间。它可以在六秒钟左右的时间内下载一个兆字节。因此,您不能只画一帧就可以开始从磁盘下载新的兆字节,因为要花上八秒钟才能得到它。那你会怎么做-等待八秒钟?这可以在级别之间完成。因此,当在常规游戏中切换关卡时,当它从磁盘读取整个兆字节或在那里需要多少字节时,会出现一个加载屏幕。CD是更“遥远”的驱动器。它更大,但也更慢。使用更长的时间,但是为什么不使用它呢?毕竟他是。在早期的PlayStation游戏中,开发人员创建了一个或两个兆字节的级别,并且CD上可容纳640兆字节,也就是说,可以在其中记录300个级别。他们有300个关卡吗?不,否则创建游戏将花费十年。因此,CD几乎是空的,或者因为它们是大量数据,所以它们充满了音乐或视频。但是通常,光盘只是空的。 Twisted Metal之类的游戏只能占用50 MB的磁盘空间。因此,这么多游戏的级别看起来好像占据了大约一个兆字节,也许是一个兆字节半。够了为PlayStation创建了如此多的游戏,但是从我的理论上讲,我们不必坚持这一点。


我的想法是使用复杂的虚拟内存技术替换数据块。假设,如果一个级别占用30兆字节,那么在某个特定时刻,我们可能只需要一个兆字节,但是整个级别实际上是30兆字节。我决定将整个级别分成64 KB页面,并从中创建数据块。它们可以是有意义的内容,例如崩溃动画,其代码或背景的一部分。块应小于64 KB,我们将它们填充到一个页面中,直到几乎完全填满为止,但是它们不能分为几页,否则您必须将这些块分成更小的块。当一个级别包含30 MB的页面时,内存中可以容纳16-18页。问题是我是否可以通过这种方式分配级别块因此,在该级别的任何时候,我永远都不需要超过16页的数据;如果这将有助于在整个系统中更好地工作,则也可以将一个代码块复制到几页上。游戏是预先进行的,但是如果玩家以一种方式移动,它将不断确定它将加载哪些页面,丢弃不需要的旧页面,将其他页面加载到原处。如果我们一次不需要超过16个活动页面,则任何页面都可以替换任何其他页面。所有“崩溃”纹理都足够清晰且具有多种颜色,并且“古墓丽影”纹理似乎模糊且像素化,因为为其分配的内存很少。开发人员没有地方存储其他纹理。为此,我们有20-30倍的空间。或取每个级别的多边形数量。像古墓丽影(Tomb Raider)这样的游戏看起来非常立方体,带有方形走廊,而崩溃(Crash)具有疯狂的形状等等,因为我们有更多的多边形。还有许多其他技术可以达到这个目的,但是内存非常重要。因此,我获得了一大堆专利,因为我是最早意识到如何实际使用CD或磁盘上的空间作为游戏动态部分来扩展它的人之一。今天,它一直在发生。他们了解如何实际使用CD或磁盘上的空间作为游戏动态的一部分来扩展它。今天,它一直在发生。他们了解如何实际使用CD或磁盘上的空间作为游戏动态的一部分来扩展它。今天,它一直在发生。


我认为Crash Bandicoot最重要的一课就是证明游戏可以拥有自己独特的风格个性和艺术风格。是的,在某种程度上,其他人以前也这样做过。最后,马里奥(Mario)具有自己的风格,这在很大程度上决定了过去视频游戏的风格。但是Crash拥有自己的整体世界,并从美国卡通风格中获得了明显的借鉴。所有Crash产品(我的意思是前四款游戏)都遵循这种风格。在原始版本中播放仍然很有趣,即使在PlayStation 1上,它们的外观也相当不错,因为这种样式超过了像素限制。在开发的早期阶段,我们的狂妄自大半自以为是:选择PlayStation的重要因素是任天堂拥有Mario,世嘉有Sonic。而且,索尼似乎还没有吉祥物,因此,如果我们开发一款具有类似吉祥物特征的游戏,那么我们将没有竞争对手。索尼真的很感兴趣,他们想要这款游戏。我们必须确保它仅出现在PlayStation上。我们故意决定创建这种情况,然后探索我们的可能性。但事实证明它行之有效。我们梦想着Crash会成为吉祥物。但是即使索尼同意合作,她也从未正式宣布合作-他们说这不是吉祥物,他们没有吉祥物,但每个人都认为这是吉祥物,而且该公司大力支持它,甚至还向环球影业购买了版权。索尼真的很感兴趣,他们想要这款游戏。我们必须确保它仅出现在PlayStation上。我们故意决定创建这种情况,然后探索我们的可能性。但事实证明它行之有效。我们梦想着Crash会成为吉祥物。但是即使索尼同意合作,她也从未正式宣布合作-他们说这不是吉祥物,他们没有吉祥物,但每个人都认为这是吉祥物,而且该公司大力支持它,甚至还向环球影业购买了版权。索尼真的很感兴趣,他们想要这款游戏。我们必须确保它仅出现在PlayStation上。我们故意决定创建这种情况,然后探索我们的可能性。但事实证明它行之有效。我们梦想着Crash会成为吉祥物。但是即使索尼同意合作,她也从未正式宣布合作-他们说这不是吉祥物,他们没有吉祥物,但每个人都认为这是吉祥物,而且该公司大力支持它,甚至还向环球影业购买了版权。但是即使索尼同意合作,她也从未正式宣布合作-他们说这不是吉祥物,他们没有吉祥物,但每个人都认为这是吉祥物,而且该公司大力支持它,甚至还向环球影业购买了版权。但是即使索尼同意合作,她也从未正式宣布合作-他们说这不是吉祥物,他们没有吉祥物,但每个人都认为这是吉祥物,而且该公司大力支持它,甚至还向环球影业购买了版权。


Crash Bandicoot的销售起步不错,但持续不断。 Crash Bandicoot是第一款销量第二年,甚至第三年销量更高的游戏,而且我敢肯定,当我们在圣诞节前一周发布Crash Team Racing时,Crash Bandicoot超过了它,并且售出的副本数量超过了其销售量。所有以前的时间。首先,这是一款吸引了众多观众的游戏;从儿童到核心游戏玩家,每个人都可以玩。它没有太多残忍,但是角色着迷,她很有趣,而且游戏玩法非常激烈,同时价格也很实惠。您可以坐下来开始演奏,对我们来说,这是最重要的目标之一。我不想创造一个我必须考虑太多的游戏。 Crash Bandicoot变成了铁匠铺顽皮狗的理念得到了锻造:进入游戏的每个元素都必须很棒,因为我们想创造一个真正出色的游戏,成为热门游戏,成为经典游戏,并且要实现这一目标,我们决定在其中做到卓越仅此而已,但是需要最好的技术来实现这一点。技术越好,游戏的感觉和外观就越好。如果正确实现所有这些功能,那么您可以超越平庸而创造出游戏杰作。游戏的感觉和外观会更好。如果正确实现所有这些功能,那么您可以超越平庸而创造出游戏杰作。游戏的感觉和外观会更好。如果正确实现所有这些功能,那么您可以超越平庸而创造出游戏杰作。

All Articles