Hacker News 中文摘要

RSS订阅

世嘉CD版《Silpheed》的艺术与工程 -- The art and engineering of Sega CD Silpheed

文章摘要

文章回顾了90年代Sega CD游戏《Silpheed》的开发背景,指出CD-ROM虽存储容量大,但访问速度和带宽远逊于卡带,导致许多游戏依赖全动态影像,而该作在技术与艺术上实现了巧妙平衡。

文章总结

好的,这是根据您的要求,对原文主要内容进行的中文重述,保留了关键细节,并删减了与主题无关的内容(如作者的个人工作方式说明、部分冗余的感叹和链接引用)。


世嘉CD版《Silpheed》的艺术与工程

90年代是游戏主机性能飞速提升的十年,但CD-ROM光驱的出现却是个异类。虽然其640MB的存储容量是卡带的320倍,但高达800毫秒的寻道时间和单倍速150KB/s的带宽,却比卡带慢了数百万倍和数十倍。

世嘉的Mega-CD(即世嘉CD)为其Genesis主机带来了CD-ROM功能,平台上诞生了近200款游戏。其中不乏《索尼克CD》等佳作,但大量依赖全动态视频(FMV)的劣质游戏,如《夜陷》,也给这款外设带来了糟糕的名声。

然而,《Silpheed》是个例外。凭借精美的艺术风格和令人惊叹的动画引擎,它让媒体为之疯狂。玩家们甚至难以分辨哪些是实时3D渲染,哪些是预渲染画面。要知道,这些近乎全屏的过场动画,是在一颗12.5MHz的m68k CPU上运行的,仅使用16种颜色,数据流带宽为150KB/s。在16位、16kHz的音频占用下,每帧视频画面仅剩8KB的空间。

硬件架构基础

Mega-CD的加入使主机变成了两个并行运行的系统。Mega-CD端拥有PCM音频和CD播放功能,并带有一个具备图形加速(旋转、缩放等)功能的ASIC芯片。两个系统通过扩展端口共享内存,并通过模拟音频混合进行通信。

《Silpheed》的架构

游戏画面由三个图层渲染:两个由瓦片(tile)构成的背景层(A和B),以及一个包含精灵(sprite)的前景层。副CPU(Sub-CPU)负责处理背景B的瓦片和地图,主CPU则负责包含HUD的背景A和前景精灵层。副CPU使用双缓冲机制,在Word RAM中渲染,主CPU则将其中一个缓冲区送入VDP显示,同时副CPU渲染下一帧。

优秀的设计决策

大多数FMV游戏表现糟糕,是因为开发者采用自上而下的方法,试图用弱小的CPU将真正的电影塞进小小的CD-ROM。而Game Arts公司为《Silpheed》采取了相反的策略:从系统限制出发,自下而上地进行工程设计。他们做出了出色的权衡,使用平直着色多边形、总共16种颜色、无高洛德着色,并尽量减少抖动。这种方法的成功,离不开Game Arts艺术家们在这些限制下(尤其是有限的色彩)的卓越表现。

带宽问题与解决方案

FMV的核心是带宽问题。数据需从CD-ROM读取、由处理器解压成图像,再送入屏幕。Mega-CD在这三个阶段都力不从心。

瓦片地图问题:由于没有帧缓冲,渲染必须遵循繁琐的流程:将768个8x8像素的瓦片绘制出来,再通过一个瓦片地图(nametable)将它们排列在屏幕上,形成256x224的图像。

三种降低带宽的方法: 1. 缩小视频尺寸:《Silpheed》将顶部和底部的两行瓦片设为黑色(共16行),这几乎像是一种艺术选择,营造了电影般的宽银幕比例。 2. 降低帧率:游戏主要使用15fps,复杂场景甚至降至7.5fps。 3. 压缩:过场动画和背景视频采用了不同的压缩方式。

视频压缩技术

《Silpheed》不使用帧间差分压缩,每一帧都是自包含的,拥有所有需要的瓦片和地图。这看似没有压缩,但繁琐的瓦片地图系统反而成了优化的巨大来源。

  • 单色瓦片复用:画面中大量瓦片是纯色的。编码器只存储每种纯色瓦片的一个副本,然后在瓦片地图中反复引用。例如,在某一帧的896个瓦片中,有456个引用了相同的15个单色瓦片,带宽直接降低了50%。

  • 利用Mega-CD ASIC解压:对于由两种颜色构成的瓦片,游戏利用了Mega-CD ASIC的“字体位”(Font bit)功能。该功能本意是快速渲染双色文字。通过向寄存器写入两个调色板索引和一个16位的位图模式,ASIC就能将1位数据扩展为4位像素数据。这为剩余50%的瓦片又节省了37%的带宽。

  • 瓦片地图压缩:瓦片地图本身也被压缩。它利用图像中瓦片索引线性递增的特性,将地图存储为一个768位的位图(96字节),其中0表示“自动递增”,1表示“读取一个立即值”。这使地图空间需求减少了近30%。

特殊处理

  • 分形关卡:游戏中的两个关卡(第1关和第10关)包含复杂纹理(开发者称之为“分形”)。这些序列极难压缩,所有瓦片都使用原始格式,唯一的办法是将帧率降至7.5fps。

  • 调色板技巧:游戏中的激光和爆炸效果并非使用纯色,而是多色的。这是通过在主调色板末尾预留四种颜色,并由主CPU每帧循环移位这些颜色来实现的。这也意味着,艺术家在设计游戏关卡时,只能使用12种颜色(过场动画则使用全部16种颜色,因为其中没有激光效果)。

评论总结

根据评论内容,总结如下:

主要观点与论据:

  1. 游戏体验争议:评论1认为《Silpheed》是“糟糕的游戏”("genuinely awful game"),而评论2则高度评价其“像控制电影”("felt like controlling a movie"),强调其视觉冲击力。评论2指出,游戏玩法并非核心,体验才是重点("gameplay was secondary to the experience")。

  2. 技术实现亮点:评论4称赞其“使用ASIC进行位图旋转和字体渲染,类似MPEG方式”("Using the ASIC meant for bitmap rotation and font rendering in an almost MPEG like fashion"),认为设计巧妙。评论2补充,Sega CD无3D能力,但游戏通过FMV模拟3D效果("tries to fool you into thinking it’s a polygon based game")。

  3. AI工作流讨论:评论5对作者使用AI框架的工作流程表示好奇,认为这种“副项目中的乐趣”常会消失("where the joy is gone")。评论3指出该文章是旧文重发("old post"),由机器人提交。

平衡性总结:评论对游戏评价两极分化,一方批评其玩法,另一方推崇其体验与技术;技术实现获一致认可;AI工作流引发对创作乐趣的思考。