原文链接:http://www.gamasutra.com/blogs/DavidDAngelo/20140625/219383/Breaking_the_NES_for_Shovel_Knight.php
译:highway★
译注:原文中的NES,是FC的美版名字,后面请自行替换,翻译的比较糙,很多地方可能有问题,见谅~
《铲子骑士》(Shovel Knight)是一款包含NES经典外观的游戏,但在仔细研究时会有一些很不一样的地方。在开始开发游戏的美学和游戏风格时,我们在Yacht Club Games(译注:开发工作室,呃,至于为什么叫这个名儿……)时脑子里已经有了一些目标。我们不是精确地模仿NES,而是创建一个更漂亮的8位游戏的视觉效果。
如果NES的开发从未停止过,那现在会怎么样?如果现在人们仍旧开发8位游戏,那在现在的技术下,游戏玩起来会是什么感受?我们觉得,受益于现今的游戏设计理念下,游戏玩法会更加有趣,技术层面将获得微妙但实质性的提升。这在NES上是可能的,其中技术被内置到卡带(译注:我不确定我是不是要加上这个注释,或许有些比较年轻的朋友确实没有玩过卡带机。算了,我只是感叹一下时间过得好快,就好像前一秒,我还在家跟楼上的发小一起打开电视双打忍者蛙与双截龙,下一秒,我们俩就都是爸爸了……)中。
后期的NES游戏,如超级马里奥兄弟3包装卡带技术,比起早期的NES游戏,比如原来的超级马里奥兄弟有了很大的改进。不同的芯片组允许对角滚动,更大的精灵,或(日版FC - Famicom独有的功能,详见下文)额外的声道。与改进的技术和对硬件的理解相结合,早期和后期NES游戏之间的差异,可能是惊人的。
我们想象一下,也许一些卡带的进步将允许使用Shovel Knight中我们用到的技术。我们还打破了一些NES的技术限制,纯粹是出于个人偏好...我们决定消除任何阻碍游戏体验的缺点 。一个例子是精灵闪烁,当NES试图在每条水平线上显示超过8个精灵时,便会发生精灵闪烁。这种效果对某些人来说是怀旧的,但我们觉得这种效果并不好,所以我们不要这种效果。然而,我们确实根据精灵闪烁的想法制定了游戏设计决策:我们试图避免屏幕上出现凌乱的物体,并限制像粒子效果这样的东西。 在这种情况下意识到规则,也让游戏的感觉清晰简单。
还有更多的例子,让我们详细介绍一下我们如何扭曲NES的规则!
我们如何打破规则!
现代硬件!主机和PC版本!我们不在NES上!
Shovel Knight本机运行在现代硬件上,无法在NES硬件上运行。这让一些非常认真对待NES的人感到惊讶,一些玩家希望在自制的NES闪存盘上玩Shovel Knight。
事实上,Shovel Knight是一款非常复杂的游戏,能够在许多硬件平台和配置上运行。在本世代的任天堂主机上,Shovel Knight使用Nintendo的Miiverse和Streetpass功能支持一些独特的无线和互联网功能。还集成了第三方中间件,如FMOD音频和SDL控制器支持。
宽屏16:9显示(或3DS上的5:3)
相反,Shovel Knight每个像素在1080p时实际上是4.5x4.5像素,虚拟分辨率为 400×240。NES输出为256×240,我们提供相同的可视垂直分辨率。我们的背景图块(和大多数NES游戏相同,译注:图块/瓷砖 - tile,后面保留原文tile,用瓷砖总会联想到厕所,见谅啊~)尺寸为16×16,我们拥有与NES游戏相同数量的垂直tile。保持垂直尺寸和tile尺寸对我们来说非常重要,以便与NES游戏的游戏感相匹配。唯一的区别是额外的水平空间,我们认为这是一个很好的补充,允许额外的空间在关卡内设计谜题,物体和稍微脱离战斗的休息区域。
我们现代升级的一部分是扩展了屏幕的可视空间,避免在NES虚拟控制台游戏中看到的黑条。这意味着以16:9的分辨率显示我们的游戏,原生于大多数现代显示器。虽然我们确实改变了我们的宽高比,但我们没有改变分辨率,没有让Shovel Knight成为像素密集的高清游戏。
背景视差
背景视差滚动是以不同的速率移动 屏幕的不同层/部分屏幕 的能力,从而为2D图层提供3D移动的视觉表现。我们的第一个预告片的开头就有这种效果。在SNES(译注:我们所说的日版SFC)上,效果更好,使用的也更为普遍。它可能在NES上也可以实现,但要用一些小技巧。程序员有几个选择:
- 确保没有背景的任何部分相交并仅在一个方向上滚动它们: Shatterhand中的非交叉点(译注:视频已经挂了,如果需要请自行搜索shatterhand,此为美版,日版名为特救指令,开发商为Natsume,一个强到不可理喻的开发商……核心成员部分来自KONAMI,Natsume成立的契机来自于KONAMI的大裁员……如果由于年龄原因对此工作室不太了解的话,可以搜索一下它的历史和开发过的游戏,在当年,可以说非常……BUG级了)
- 创建一个以不同速率滚动的背景动画图块:金属风暴中的动画图块(译注:只看技术,请忽略惨不忍睹的视觉效果……特别是令人尴尬的配色)
- 蝙蝠侠小丑回归中:背景中的非交叉点和前景中的精灵(译注:Sunsoft开发)
在Shovel Knight的早期开发中,我们决定增强视差滚动效果,创建平均5-6层背景来滚动。这感觉就像NES将要做的下一个技术步骤,所以它对我们来说感觉不合适。更重要的是,添加效果使游戏玩法层更具辨识度(译注:反之,上面的金属风暴在有些关卡,辨识度就比较差)。拥有如此多的图层还有另一个好处:我们可以真正利用3DS的裸眼3D效果(译注:呃,前几分钟很爽,后面选择关闭,我想大多数玩3DS的玩家或许都会这样吧,眼睛真的不舒服)!
精灵闪烁
当在同一水平线上显示超过8个精灵时,在NES上会发生精灵闪烁。我们保持精灵数量尽可能低,但如前所述,我们没有确切的数字。我们的一些物体会产生比NES游戏更多的粒子...但我们认为它应该看起来更漂亮一点儿。
像Recca(译注:FC的STG游戏 烈火92,系统非常非常丰富……游戏设计在当年,也挺BUG级别了)或Contra(译注:魂斗罗)这样的游戏通过每隔一帧显示某些精灵(30fps而不是60fps)来绕开精灵限制(译注:在玩烈火92的过程中,能很明显的感受到那种闪烁感,尤其是敌人和子弹、爆炸特效)。在运行低分辨率隔行扫描视频的CRT监视器上,每帧都会显示对象。除此之外,NES粒子艺术通常会利用闪烁来表现, 比如爆炸效果。我们在某些情况下使用闪烁精灵来取代alpha透明度; 例如,Shovel Knight在被击中后在“无敌”状态下闪烁。总的来说,这并不是一个重要的限制,除非它让游戏玩法不像NES游戏玩法(译注:gameplay这词儿翻译成游戏玩法挺别扭的,您能用gameplay的话,就还是用gameplay去理解吧)。
调色板添加
NES只能喷出54种不同的颜色......这并不是很多。对我们来说问题主要在于尝试在大多数色调中显示渐变。例如,没有非常有用的黄色,较暗的色彩范围非常不明显,并且没有很多色调可用于显示具有较暗肤色的字符。坚持NES调色板对我们来说是一个重中之重,因为它给人一种非常独特的外观。最后,我们最终只加了几个额外的颜色。
有关NES颜色的更多信息,请查看此Wiki:
wiki: http://en.wikipedia.org/wiki/List_of_video_game_console_palettes#Famicom.2FNE
这里的深紫色是#22123B
那么我们的耻辱是什么颜色?(译注:耻辱?由什么好耻辱的……)在这个来自Treasure Knight舞台的镜头中,你可以看到地面上的深紫色细节。一旦添加,这种紫色在其他地方使用,主要作为黑色和任何给定背景的冷色调之间的桥梁。
深红色调是#360900
与紫色相似,我们需要一种颜色来弥合从黑色到暖色调的差距。这个深红色在Mole Knight的舞台The Lost City中显得突出。你不会看到这种红色常用作紫色,因为NES调色板倾向于冷色调。众所周知,Mega Man(译注:美版名,日版为ROCKMAN,我们俗称的洛克人)被认为是一个红色机器人,但在开发人员看到光谱之后变成了蓝色(译注:我开始不知道他在说什么,在查wiki之后看了这个梗,wiki中为最初为白色,选择蓝色是为了让动画更清晰,其他的一些文章和wiki还有本文也有些出入,一些文章中写的是稻船敬二最初设计的是白色机器人,但开发团队想要制作蓝色的角色,因为NES上,蓝色的调色板比任何颜色都要多。之后,二哥便接受了。之后获得BOSS武器后改变洛克人的颜色,也是二哥所为,因为他觉得一个蓝色的家伙取得了火焰喷射器,射出红色火焰会很奇怪。如果您对这段历史比较感兴趣,还请自行查阅)。
米色斗篷是#9E9E5C
这个下一个作弊颜色实际上是第一次创造。我们需要Polar Knight佩戴的羊皮斗篷的颜色,NES调色板中没有任何颜色真的符合要求。这种米色也用于他的皮肤,并保持主题关卡的统一。我们实际上打算回去修复这个米色,因为它是整个游戏中唯一用到的地方,但我们尝试过的任何东西都没有这个效果好。最后我们决定就放这儿不修复了。
村民:#824e00
最后的作弊颜色需要帮助使Shovel Knight的演员更加多样化。默认的NES调色板提供了很少的选择,尤其是创建具较暗肤色的角色时。当做 “Pixel My Face” Kickstarter(译注:国外的众筹平台,相对于国内的那些实际上已经沦为增加曝光率的众筹平台来说,还是更实在一些,当然……我国国籍不能发起众筹)奖励(在某个承诺层,支持者在游戏中作为肖像永生化)时,这尤其成问题,因为我们有来自世界各个角落的支持者。因此,我们最终的作弊颜色是浅棕色,给这个家伙的脸带来阴影!
每个Sprite的颜色数
NES上的精灵限制为4种颜色(或3种颜色+透明度),您可以看上面的“塞尔达传说”屏幕截图中的角色精灵。
一些开发者使用另一种技巧创建了更多彩色精灵。像Mega Man这样的角色是由两个精灵构成的,一个用于他的身体(蓝色,浅蓝色和黑色),一个用于他的脸(米色,白色和黑色),脸的精灵覆盖在身体上。这就是为什么Mega Man的脸有时会与他的身体分开闪烁。对于Shovel Knight,我们决定像Mega Man这样处理大多数精灵,除了透明度之外,还可以使用4-5种颜色。
获得这种平衡是一个棘手的过程,因为有太多颜色的角色,有的地方会伸出来像拇指一样。我们调整了很久细节的程度和颜色,直到找到一个看起来很棒的组合。(下图:右侧为调整后)
一个太精细的精灵也很难做动画!
在这个例子中,你可以看到原始的King Knight设计。虽然左侧精灵只有5种颜色(正如我们所说的限制),但它细节太多了,几乎感觉更接近16位精灵。在通过几次通过以简化形状以便于辨识和简化之后,我们最终得到了你在游戏中看到的精灵!
多个调色板同时使用
尽管Shovel Knight中的每个精灵都是使用有限的颜色创建的,但我们没有让屏幕上的所有精灵都遵循单一的调色板。再举一点Mega Man为例,玩家的精灵颜色变化也会影响1-Ups(译注:加一条命,在东北,俗称奖人儿,读人不读淫,感谢!)和 其他道具。这是由于均匀的调色板; 当为一个精灵调整颜色时,所有精灵都会改变颜色。我们选择不担心这个限制,因为使一个调色板工作让人头痛,而且并没有让gameplay收益,但我们确实使用有限的调色板来创建敌人变体以及循环伤害和爆炸效果。
这些效果使游戏更加清晰和令人兴奋; 例如,循环伤害使你很明显的看到你正在伤害敌人,因为所有物体的效果都是一致的,并增加了乐趣,因为颜色循环比典型的“受击”动画或闪烁更具影响力。 这些调色板循环和移位效果是通过将表示精灵的索引无符号字节纹理和表示调色板的完整32位颜色纹理传递给像素着色器来创建的......这是8位技术的飞跃,可以模仿过去的美好时光!(译注:这里这个受击效果很像洛克人蓄力射击的感觉。)
要查看调色板效果的限制,请查看此站点,该站点显示您可以通过循环单个调色板创建的惊人动画。
内存限制
一个NES卡带只能容纳如此多的信息:代码,动画,背景,文本,音乐,以及其他一切都必须适应32k的内存,尽管通过使用称为内存映射器的盒式芯片大大扩展了因为更高级的图形和特殊效果需要ROM大小大到4-6兆位(0.5~0.75 MB)(译注:这里是机翻,我……不校对了,我觉得有点儿难受。)。Shovel Knight的容量接近1.2GB(大约有150 MB - .mp3文件)。因为我们不需要安装在小型卡带上,所以不需要极端优化和数据压缩,我们能够将我们的技术工作集中在游戏系统和稳定性上。
我们的作曲家兼声音设计师Jake'Virt'Kaufman喜欢提醒我们,当编译成真实的机器代码(见下文)时,配乐将很好地融入6MB的Kirby's Adventure(译注:星之卡比)卡带中,但前提是所有图形和游戏代码都被删除。
大精灵
NES上的精灵硬件对于绘制非常大的移动物体并不是很有利,因为它施加的限制(毕竟,即使是一些小东西也可能导致闪烁)。为了解决这个限制,聪明的开发人员将大的精灵图显示为动画背景tile层。这就是为什么每当你在NES上与一个体积很大的敌人作战时,他们通常都是在没有背景艺术的黑屏上。BOSS是背景。(译注:真佩服FC时代那些程序员,真是带着脚镣跳舞,在痛苦中传递快乐。)
BOSS的黑色背景总是给NES游戏一个独特和史诗般的感觉,其中焦点只关注你和你的敌人,所以我们认为保持这一点非常重要。但是,由于没有精灵限制,我们不需要使用背景图层或其他变通方法来制作大型精灵。我们只是使用我们的动画精灵代码,小心设计,并确保精灵在黑色(或很暗)的背景上。
摄像机振动
在NES上,相机抖动仅发生在单个轴上。下次看到 Bowser在超级马里奥兄弟3的最后一次遭遇中(译注:传送门 1:50)砸地时要注意 。这与NES在对角线滚动方面的困难有关。我们没有这样做,因为我们没有找到令人信服的理由来保留它。
HUD作为一个层
NES游戏的一个奇怪之处在于精灵通常会在HUD(译注:HUD - head-up display)前面画出来。在NES上,大多数HUD都是在背景层上绘制的。这是因为只有1层,所以背景和HUD必须共享。在许多情况下,支持大ROM大小的内存映射器芯片还包含支持“分屏”状态栏的特殊时序硬件,但背景层仍然只是一个背景,并且精灵被绘制在它上面。因此,如果玩家能够到达屏幕顶部,HUD将被他们的精灵掩盖。偶尔,这种行为被用作游戏机制,因为秘密或路径可能隐藏在这种“无法到达”的屏幕空间中。我们喜欢这个怪癖,尽我们所能坚持下去,但有时层次结构太怪异了,我们不得不根据具体情况改变一些实例。
声音限制
音乐可能是Shovel Knight中最真实的NES部分,虽然它可能看起来比你对NES游戏的预期更加丰富和饱满。这是因为它被编写为使用一种称为VRC6的特殊存储器映射器/声音芯片,该芯片在NES时代结束时用于几个Konami游戏中。该芯片允许使用先进的图形技术,但最着名的是增加了3个声道,使音乐更加丰富和深入。然而,VRC6等外部声音芯片仅适用于日本家庭,因为西方NES缺乏必要的卡带连接,因此对于大多数西方游戏玩家来说这是一种不熟悉的声音。比较美国版恶魔城III中的音乐和日本版; 差异是惊人的。(译注:机核网做过一期gadiopro,重轻老师讲的8bit音乐的历史和基础原理,非常硬核。见文末)
作曲家Jake Kaufman使用名为Famitracker的免费程序开始创作Shovel Knight的音乐和声音效果。Famitracker以NES机器代码导出音乐,该机器代码能够在实际的NES或Famicom控制台上运行,具有所有限制和硬件怪癖。我们使用母带制作工具(EQ和压缩)完成音频,以便在今天的声音设备上给它一些额外的冲击,但避免使用混响效果或立体声混音,这会破坏声音的原始特性。你听到的任何回声或特殊效果都是按照它们在NES上的方式逐个编程。 这是一个Jake的视频,演示了在Famitracker for Shovel Knight中创建的几首曲目的复杂性。
NES的另一个限制是声音效果通常会导致其中一个音频通道掉线。NES为音乐和声音共享了相同的5个基本通道,因此SFX会暂时窃取一个或多个音乐频道以便播放。Shovel Knight中没有这种效果 - 声音效果简单地叠加在音乐之上,这完全是不真实的,但听起来要好得多。
下次启动NES游戏时,请仔细聆听并注意大多数游戏如何将低音,鼓声或和声调整到旋律中以便打包更多声音效果。
我们打破了NES的规则!
当你把所有的变化加起来时,看起来Shovel Knight和NES的技术之间存在着巨大的鸿沟。但是,我们觉得8位时代美学的核心得到了尊重,甚至可能得到了提升!
Shovel Knight是一个梦想项目,让我们探索一种今天很少见的游戏风格。尝试解决过去的技术问题,同时避免任何可能真实现代性的陷阱,这是非常有趣的。我们希望通过不仅仅是肤浅的方式对NES表达了忠诚,而且我们也建立了奇特的坚如磐石的基础。
译注:文章有些位置的格式可能很奇怪,见谅,我改不好。
你真是印度劳模啊
@刘美工:画外包和策划沟通的想吐,翻译一下止吐