美利坚:游戏制作教父 第549节

  不管是飙血还是声音还是震动,必须要打磨到极致。

  在这个门派下甚至还有《GameFeel》这种专门研究‘感觉’的典籍存在,也算是某种意义上的宗门秘籍了。

  第三派则是主张沉浸感优先,追求极致的代入感和氛围营造,让玩家仿佛真正置身于那个世界中。

  第四派跟沉浸感有些相似,主张叙事第一。

  追求电子游戏更加‘电影化’,以导演的角度去看待和处理游戏中的问题,设计镜头、设计演出,高度重视情绪的表达。

  而《战地》算是哪一派呢?

  答案是每种都沾一点。

  但游戏性大概是它最重要的部分。

  那种区别于其他FPS的大战场协同作战正是它的灵魂所在。

  为了这个真正的核心,其他所有东西都可以做出一定的让步。

  不过……

  为了有限的硬件而妥协,从而阉割游戏本身,从来都不是GAMENOVA的作风。

  不然林立新为什么还要费这么大的劲专门成立一个引擎部门?

  优化可是门大学问。

  “关于大战场的问题,我其实有几个思路。”

  林立新默默来到白板前。

  如何在有限的显示性能中尽可能地塞下更大的世界,一直以来都是开发者们热衷于处理的问题。

  他没有急着在白板上写什么,而是先扫视了在场的众人。

  在这里的都是图形学和硬件领域的佼佼者,算是GAMENOVA最重要的技术智囊团队。

  但越是这样的情况,考虑问题时就越容易‘工程化’,忽略了那些其实很简单的东西。

  “第一,我们其实并不需要做太复杂的地图,因为这一次的题材是……海湾危机。”

  为什么一个地图会占用那么多的资源?

  因为地图需要被整个塞进内存里。

  玩家在加载进地图的时候,首先需要先把它们缓存下来,这样才能确保接下来的游戏过程中丝滑的体验。

  如果内存不够大,那么开发者就需要考虑一些邪道的手段来解决这个问题。

  比如……分块。

  典型自然就是MC的区块加载机制。

  仅加载必要的区块,卸载掉无用的部分,确保内存不会被一直塞入越来越多的东西直到爆缸。

  当然因为MC的逆天优化和部分Mod的内存泄漏问题,偶尔还是会出现不论分配多少内存都会被吃光的情况,这就完全是论外了。

  这种流式加载策略在电子游戏中非常常见。

  世嘉的《刺猬索尼克》,其实也是通过类似的思想将地图动态加载,从而实现了流畅顺滑的高速体验。

  所谓的爆内存,其实很多时候就是这么一回事。

  不管是CPU还是显卡,都需要内存这个高速缓存来辅助存储数据。

  否则所有的内容都从硬盘读的话,实在是慢到让人想要撞墙。

  显存也是这么一回事。

  如果频繁使用的资源在显存里,那显存在渲染画面的时候就可以就地使用,读取速度快到飞起。

  反之亦然,如果从内存读,速度就要慢得多了。

  而若是从硬盘读呢?

  那就完全是一场彻彻底底的灾难了。

  就此看来,面对一个大地图,内存绝对是最大的问题所在。

  那么寻找突破点自然也要从这里开始。

  这次的题材为林立新提供了一个绝佳的机会。

  海湾战争是什么地方?

  那是中东大沙漠。

  而沙漠……恰恰是一种最节约性能的选择。

  一个游戏地图里最占资源的东西,往往就是那些复杂的模型,大量的遮挡、阴影、光照、纹理过渡……

  如果是一个欧洲城市战场,成吨的楼房会直接把可怜的显卡和内存都干爆。

  但沙漠就不一样了。

  别说是建筑物了,就连树都找不着。

  高低起伏平缓有序,没有混乱复杂的光照关系。

  纹理几乎完全一致,整张地图的地面甚至都可以用同一个纹理解决,显存不需要缓存更多复杂的东西。

  节约下来的性能,拿来在沙漠上加点建模简单的堡垒或是防空炮,完全足够了。

  “的确如此……沙漠天然就是一个元素稀少简单的环境,很适合电子游戏使用。”

  “不对。”

  卡马克摇了摇头。

  林立新说的这些一点儿不假,沙漠的确是比正常的城镇要好做的多。

  但也存在着一个非常致命的问题。

  “视距怎么办?沙漠里可没有任何东西遮挡,渲染剔除根本就没有意义。”

  这特么的,沙漠那地界,万里无云的天气。

  一个雷霆大跳站在沙丘上,两眼一张罗怕不是能瞄出去几英里远。

  直接就给GPU吓哭了好吗?

  “嘿嘿……这就是我接下来要说的重点。”

  林立新没有急着反驳他,而是开口反问道,

  “卡马克你去过真正的沙漠吗?”

  “怎么说?”

  “Heat Haze(热霾),当地表受到太阳辐射加热后,空气密度变化导致光线发生折射,远处的景物就会变得模糊扭曲,难以辨析。”

  闻言,卡马克一愣,随即眼神放光。

  这哪用去真正的大沙漠看?

  加州这破地方,一年到头的都是那么热,尤其是南加州,大太阳直接烤在地上,很容易就能看到那些热霾现象。

  “你是说……把远处的东西模糊化?”

  “没错。”

  林立新哈哈一笑,伸手在白板上写下了第一行字。

  【Levels Of Detail—— LOD】

  LOD技术并不是什么新鲜概念了,早在1976年,LOD就已经在计算机图形学领域有过一定的应用。

  只不过在电子游戏上使用,那还的确是头一回儿。

  它的思想非常简单,每个模型都有多种精度的版本,根据玩家的距离动态切换。

  离得越近,模型精度越高,细节越丰富,反之亦然。

  将那些本来在远距离就难以观察到的东西全部抹去,仅保留一个极粗的低模,这就足够了。

  “除此之外,我们还可以加入一个东西,跟它打配合。”

  林立新再度抬起手,写下了第二行。

  【Distance Fog(雾效)】

第544章 简单的优化,5倍的性能提升

  雾,现代电子游戏必备技术。

  只不过在如今这个90年代,大家还没有意识到雾效的重要性。

  原因无他,在8位时代,想要运行一个稍大点的地图,就需要可怜的内存不断进行数据交换。

  几KB的内存,完全不足以创造出庞大的世界。

  哪怕是到了16位时代,大世界也仍然还是一个伪命题。

  几MB的内存容量,虽然已经可以支撑那些瓦片式的大规模地图,但也就仅此而已了。

  但《战地风云》不一样。

  它是一个真正3D大战场。

  这意味着整个世界不可能像以前那样,仅仅保存一点儿瓦片数据。

  【x:0-y:1-tile:0】

  以往的时候,只需要这样三个参数,就能完整保存下一整格的信息。

  客户端在尝试渲染时,可以直接从内存里拉取对应的瓦片,拍在坐标所对应的位置。

  当然还要加上一点位移变换和视野剔除。

  这一招在2D的时代屡试不爽,尤其是在有了显卡这样一个天生擅长批量并行处理的硬件之后,瓦片的性能更是呈几何倍数上升。

  如果用现在这个规格的硬件去开发《超级马力欧》,瓦片的密度甚至能翻几个倍,同时还能确保帧数稳定。

  3D时代,地图的渲染逻辑完全改变了。

  这也是林立新很确信3DO注定失败的原因。

  3DO的赛璐璐叠画法看起来似乎很巧妙,似乎是个绕开三角形计算限制的巧思。

  但真正深入到几何空间之中就不难看出,这条路绝对是走不通的。

  或许在未来,等到AI技术高速发展,补帧、帧生成技术趋于完善之后,它还会重新被提起来。

  但至少在短期内,在未来几十年内,三角形都是3D计算的绝对主流。

  计算机理解3D空间,靠的是……顶点。

  除了x和y的坐标点外,又多了一层z轴。

  它们互相配合,就足以在计算机中构建一个真正包含深度的3D空间。

  那么问题来了,这么多的顶点,计算机怎么知道要如何把它们渲染出来?

首节 上一节 549/757下一节 尾节 目录