技术访谈:试验进化
RedLynx最新Xbox 360经典游戏的制作。
在跨平台开发的时代,主机独占游戏显得有些单薄,尤其是在Xbox 360上,微软缩减了第一方工作室的规模,偶尔会削减内部引擎开发,转而支持第三方中间件——以至于下一款《寓言》游戏正在虚幻引擎上运行。
这一趋势的一个光荣的例外是RedLynx的现象试验发展-一款由业内最受尊敬的开发者为360硬件从头设计的游戏,现在可以在Xbox Live Arcade上使用,并获得了令人印象深刻的成绩9/10 Eurogamer评论得分。
在这个特别深入的数字铸造技术采访中,我们与RedLybwin888官网nx的塞巴斯蒂安·阿尔托宁(又名阿尔托宁)正面交锋sebbbi,讨论从《Trials HD》中获得的经验教训,了解雄心勃勃的Track Central编辑器背后的想法,并揭示我们在Xbox 360上看到的最先进的游戏之一的渲染改进的完整故事。
虚拟纹理、照明、分辨率、抗锯齿、后处理技术、GPGPU技术——继续往下读,你就会发现为什么《Trials Evolution》不仅是一款游戏玩法杰作,而且还是尖端Xbox 360游戏开发的技术展示。
关于DLC,我们有两个方面需要改进。在《Trials HD》中我们并没有任何脚本系统,所以我们不能将新的技能游戏添加到dlc中(dlc只是Xbox Live中的内容包)。trial HD在启动时将所有内容加载到系统RAM中,这限制了我们可以添加到DLC内容中的新对象和纹理的数量。
在续集中,我们想要解决这两个问题。数据流解决了有限的内存问题,我们实现了一个非常复杂的可视化脚本系统来解决技能游戏问题。不用说,视觉脚本系统很快扩展为一个完整的游戏创造系统,允许你创造各种各样的游戏(如第一人称射击游戏和赛车游戏)。
“用户反馈对我们来说一直很重要。幸运的是,我们经常发现自己的想法与玩家的想法非常吻合。《Trials HD》的巨大成功让我们有可能最终创造出我们梦想中的游戏。”
用户反馈对我们来说一直很重要。幸运的是,我们经常发现自己的想法与玩家的想法非常吻合。多人游戏,全球赛道共享和户外环境都是我们的用户群从试驾2第二版开始经常要求的。《Trials HD》的巨大成功让我们有可能最终创造出自己梦寐以求的游戏。
在《Trials HD》中我们并没有自动收集指标,但我们分析了来自排行榜和用户论坛的数据。这些信息对于了解游戏的难度以及哪些关卡对于大多数玩家来说过于困难是至关重要的。我们学到的最重要的一点是,游戏需要适当的教程和更流畅的学习曲线。
“我们的图形引擎现在使用‘接近硬件’的低级GPU接口,而不是高级的DirectX API来提交绘制调用和GPU状态。”
将绘制距离从40米增加到2000米,这意味着我们每帧渲染的对象要比我们在Trials HD中渲染的多5倍。为了应对大量增加的对象数量,引擎中的许多东西都被彻底检修了。例如,我们的图形引擎现在使用“接近硬件”的低级GPU接口,而不是高级的DirectX API来提交绘制调用和GPU状态。
我们使用VMX128指令完全优化了我们的粒子引擎,这释放了六个硬件线程中的一个,只是为了可见性筛选的目的,同时仍然允许我们将粒子计数翻倍。我们现在有一个基于动态深度缓冲金字塔的遮挡剔除系统,可以非常快速地丢弃所有遮挡对象,并为复杂场景提供了一个很好的性能提升。我们还实现了对象和地形几何LOD(细节级别)系统,根据到相机的距离来缩小多边形计数。
阴影映射系统也得到了改进。新系统根据深度缓冲区分析计算出非常严格的阴影地图级联边界(灵感来自于Lauritzen, Salvi和Lefohn的SDSM算法),并允许我们在没有太多额外成本的情况下达到大尺度地形所需的阴影地图质量。
我们现在流化所有内容:网格(三角形和顶点),地形高度场,植被地图和纹理。为了有效的网格流,我们必须压缩我们的顶点格式尽可能小。基于像素着色器衍生品的切线计算用于蒙皮模型。它既节省了大量的带宽和内存,也使蒙皮顶点着色器更快。对于其他网格,我们尝试了各种方法,包括基于四元数的切线,但最终我们选择了紧凑的16字节顶点格式(包括一些聪明的位打包)。这些修改也使渲染稍微快了一些,因为GPU内存带宽的使用减少了,所以这对我们来说真的是一个双赢的局面。
“[虚拟纹理]让我们可以用非常大的纹理制作许多物体……这让我们的美工在设计游戏世界时完全摆脱了任何内存预算。”
对于纹理流,我们使用自己的虚拟纹理系统。与id Software的虚拟纹理系统不同的是,该系统是为无处不在的独特纹理映射而设计的,我们的系统旨在节省存储空间,同时仍然提供良好的纹理变化和分辨率的混合。
虚拟纹理确实改变了我们处理纹理的方式。系统对可见场景进行细粒度分析,并确定哪些纹理区域应该加载到内存中。它的设计目的是在内存中只保留渲染当前场景实际所需的纹理像素。因为屏幕上总是有固定数量的像素(720p = 921K像素),虚拟纹理的内存占用总是相同的,无论游戏世界包含多少和多大的纹理。这让我们能够使用2048x2048的大纹理(有些甚至是4096x4096)制作许多物体,并且在设计游戏世界时完全释放了美工的纹理内存预算。
当我们从硬盘加载虚拟纹理数据时,它必须快速解压缩:所有贴花必须在基础数据上混合,并且必须动态地重新压缩为GPU格式。我们实现了一个快速的基于gpgpu的纹理压缩器(和组合器)来将大部分工作负载卸载给GPU。其他流任务作为CPU作业实现,并被调度到首先完成其主要任务的核心(填补执行中的漏洞)。
我们现在有一个完全正确的(线性空间)照明管道,所以渲染看起来比旧管道更自然。我们还添加了一个完全由艺术家控制的颜色分级系统,允许他们堆积任何数量的Photoshop滤镜,并将滤镜烘焙到一个大的3D纹理查找表,在我们的后期处理管道的末端采样。这个查找还包括一个Xbox PWL伽马修复斜坡(使图像看起来尽可能像真实的sRGB)。
烟雾和灰尘基本上只是alpha混合粒子,启用了轻微的背景模糊(新功能)。我们新优化的粒子系统能够运行更多的粒子,所以我们尽可能地利用它。我们还添加了适当的物理上正确的指数雾和后期处理的“神射线”滤镜,为灯光和雾效果添加了轻微的体积感。
我们进一步改进了旧的粒子渲染系统。它仍然使用我们的(相当时髦的)前后预乘目标alpha混合与模板计数来拒绝额外的粒子层(这将是不可见的,因为严重透支)。计数模板的技巧工作得很好(以提高填充率),预乘alpha混合方程允许我们通过一个绘制调用渲染所有的粒子(包括添加剂和百分比混合)。我们优化了我们的基数排序器(用于排序我们的粒子和对象)。它的部分矢量化和缓存优化得非常好。
“成千上万的(手动)缓存优化和CPU失速优化被引入,我们VMX128向量化了几乎每一位适合向量化的代码。”
整个引擎经历了长达一年的优化过程。Xbox PPC CPU是一种较老的有序设计,所以如果你想要获得良好的性能,就必须很好地优化你的代码。我们引入了成千上万的(手动)缓存优化和CPU失速优化,并且我们对几乎每一位适合向量化的代码进行了vmx128向量化。因此,现在的代码是专门针对控制台的PPC处理器架构进行优化的。
我们更多地使用了GPU memexport,因为GPGPU一直是我的心头好。在《Trials Evolution》中,我们使用GPU进行地形叶子生成、粒子处理和纹理压缩。我们的延迟照明和抗锯齿着色器使用xbox特定的GPU微码进行“扭曲宽”分支。该技术可用于降低非相干动态分支的成本(但取决于GPU扭曲大小,因此在除CUDA之外的大多数PC GPGPU平台上不可用)。
我们做了一些研究,得出的结论是,基本上没有1280x720p的国产电视机在全球销售过。1366x768是最常见的高清“720p”电视分辨率,而1080p电视机在Trials HD推出后的两年半时间里变得越来越普遍。我们认为没有任何理由再支持原生1280x720渲染,因为基本上所有电视都会放大图像,没有人会看到未按1:1像素比例缩放的游戏。所以我们选择了低高清(但这次是16:9),并让高质量的Xbox 360缩放器硬件升级到电视原生分辨率。
“我们使用的是FXAA的改良版。它起源于FXAA 2,但我们的版本导致显著减少纹理模糊…我们的版本运行时间为0.8毫秒,不到16.6毫秒帧的5%。”
我们使用的是FXAA的修改版本。它起源于FXAA 2,但我们的版本导致显著减少纹理模糊。我们再次使用xbox特定的微码分支技巧来获得额外的着色器性能(将效果限制在具有高对比度边缘的区域)。我们的版本运行在0.8ms,不到16.6ms帧的5%。
在制作早期,我做了一些立体3D重投影测试,但最后我们没有时间专注于那些只会让一小部分用户受益的技术功能。让庞大的游戏世界以每秒60帧的稳定速度运行,并对所有新的流媒体技术进行微调,这占用了所有技术程序员的时间。
这次的物理变化没有那么激进。我们升级到更新的版本子弹物理.不幸的是,这意味着我们必须重新编写所有Xbox物理优化。然而,这一次,我们对硬件细节有了更多的了解,最终提供了更好的结果。
因为自行车在户外游戏世界中移动得更快,跳跃也更大,所以我们需要对其进行物理修改。自行车悬架需要改进,这样沉重的撞击就不会导致自行车部件卡在地上。在《Trials Evolution》中,我们还为用户提供了更多控制物体物理属性的选项。从质量和浮力到表面摩擦,现在都可以在编辑器中更改。
“物理修改是必须的……在户外游戏世界中,自行车移动得更快,跳跃也更大。我们修改了自行车悬挂系统,这样沉重的撞击就不会导致自行车部件卡在地上。”
《Trials Evolution》是我们的第一款Xbox Live多人游戏,所以它自然是一个学习过程。幸运的是,我们的游戏模式非常耐延迟,因为自行车不会相互碰撞。在《Supercross》中,每辆自行车都有自己的车道,而在《Trials》中,你将看到实时的对手。这也让我们在多人游戏中拥有完美的控制精度。如果网络很慢,只有对手的自行车会有延迟的迹象。你自己的自行车总是跑得很好。
每个控制台只模拟自己的物理世界。我们只通过网络发送优化的视觉表示。然而,我们确实使用物理引擎来进行外推,以更好地预测对面自行车的位置,因为从网络连接接收到的数据总是有点过时。
轨道中心对我们来说很重要。它为用户带来了“youtube风格”的内容共享、评级和搜索功能。视觉脚本系统允许玩家定义任何游戏规则。我们已经看到了第一人称射击游戏、3D赛车游戏、自上而下射击游戏,以及《吃豆人》、《愤怒的小鸟》和《超级马里奥》等游戏。在我写这篇文章的时候,这款游戏才发布两天!它基本上是Xbox 360的3D游戏制作平台。
我们还没有考虑下一款《Trials》游戏。我们仍然对刚刚发布的版本感到非常兴奋,我们正在忙着配置服务器和维护论坛。当硝烟散去,我们才有机会专注于下一个项目。
我们当然会密切关注未来技术的发展趋势。我们在DirectX 11显卡上市后立即为我们的工作站购买了显卡,这样我们就可以使用DirectCompute和tessellation等新功能进行测试。如今的gpu已经发展成为并行计算的怪物,可用于不仅仅是图形渲染。未来的游戏将如何受益于这样的技术进步,这将是一件有趣的事情……
bwin888官网Digital Foundry专注于游戏硬件和软件的技术分析,使用最先进的捕获系统和定制软件向您展示游戏和硬件的运行状况,准确地可视化它们的能力。为了向你展示4K游戏的真实面貌,我们需要建立自己的平台,为离线观看提供高质量的4K视频。于是我们就这么做了。
我们的视频文件是几亿字节,我们选择了高质量的提供商,以确保快速下载。然而,带宽并不是免费的,所以我们每月收取4.5英镑的小额订阅费。我们认为这是一个很小的代价,以无限访问我们的内容的顶级质量编码。谢谢你!
支持数字化铸造bwin888官网