游戏程序员,但并不是做主机游戏开发的,只能以非常初级的知识来简单回答下作为抛砖引玉,具体细节和深度的技术还要等大牛来。
1. 比较容易观察到的是 游戏里用了LOD [1] (Level of Detail)和Mipmap [2] 。一个用于3D模型,一个用于贴图。两者的原理比较相似,这里以LOD举例。
(这里应该有一张同物体的不同精细度模型的对比图)
首先制作组会制作出高精度(多边形数量较多)到低精度(多边形数量较少)几个级别的模型。当想要渲染的物体距离摄像机(即玩家视角)很近时,会使用高精度的模型。当物体离摄像机特别特别远的时候,则用低精度的模型,大致看起来像那么回事即可。贴图所用到的Mipmap基本同理
(这里应该有一张,随着林克的飞行,面前的地形等发生肉眼可见变化的GIF=> 可以先看下面的视频 )
2. 另外就是一些 细节隐藏 。
比如 怪物、草、粒子系统、光照 等等。这些在近处看才能分辨出来的细节,离远之后细节的显示与否从视觉上来说影响不大,所以开发时候会设置一定距离以外就隐藏 [3] 。
其实游戏里也设置了 物品有效距离 。比如林克打怪掉了把剑,但是如果这时候玩家没捡,被前面的呀哈哈吸引,然后又看到更远处有另一只呀哈哈……等走出去很远时突然想起返回去捡剑时,就会发现剑已经消失了。这个体验我感觉不少人都应该遇到过吧。
(虽然与题目无关吧,游戏里经常出现的优化手法还有:物体如果在摄像机映射范围内则显示,出了摄像机范围就被隐藏等等。这个在游戏里火把附近转动摄像机时有时就会注意到。大师之剑那里好像也容易看到来着,有点记不清了)
速通视频里,玩家从初始高地直接飞向城堡时候的 画面停止 ,就是因为来不及加载这些高精度模型和贴图以及各种细节,而刻意被引擎强制执行的吧。
(这里应该有一张,因为加载而卡住的GIF)
Update: 没法传图就去油管上录了段最新的any%速通视频 [4] 的片段。可以看到,
其实如果仔细观察的话,林克最初飞到平原的时候就有不少变化的地形,或是突然蹦出个石头啊、旗杆啊、树啊之类的。进入加农城堡前的城镇下面也是多了残桓等等很多细节。
3. 这次荒野之息的地图是由以 宏大地图而闻名的【异度之刃】开发商Monolith 帮忙制作的,相关介绍可以参考下面的答案。(虽然没有太多技术细节,但是里面有技术资料的索引)
我忘了在哪看过的话了,大概是说异度之刃的制作人高桥当初,为了让玩家真实感受到自己是在 巨神 和 机神 2个神的身体上活动,便没有采用其他游戏的那种「近处用模型、远处用贴图」的手法,而是执念于无论距离远近,都使用真实的地形的略极端的手段。
(这里应该有一张【异度之刃】可以体现巨神的庞大的图)
这虽然因为占用了大部分机能,在一定程度上导致了当年【异度之刃1】在wii上的很多画面效果都较差(比如很多人诟病的人物建模),但是当玩家发现自己走到巨神上半身时还能看到巨神脚的殖民地9时,那种震撼不是简单的画面优美就能比较的了。
其实在【荒野之息】发售时市面上已经有很多开放世界游戏,分区加载等开放世界相关技术 [5] 也比较成熟了。而就如题目描述所说的," 身处地图中任意位置都能清晰看到Boss的城堡"这点上,我相信Monolith他们是把开发【异度之刃】积累的3D大地图制作经验,活用在【荒野之息】上面了 。
这里建议喜欢荒野之息大地图的玩家,一定要去试试异度之刃系列~
扩展阅读 :之前看到过一篇特别干货的荒野之息所用引擎的技术分析。虽然和本题无关,但里面的每个技术点都有GIF演示,作为非开发者也能大致看懂那些技术的效果。如果感兴趣可以看看
(这篇大多是几年前自己玩荒野之息时注意到的地方,可能不够严谨,有错的地方请见谅)
参考
- ^https://en.wikipedia.org/wiki/Level_of_detail
- ^https://en.wikipedia.org/wiki/Mipmap
- ^ 虽然与题目无关吧,游戏里经常出现的优化手法还有,物体如果在摄像机映射范围内则显示,出了摄像机范围就被隐藏等等
- ^https://www.youtube.com/watch?v=xuZtjTmM6F0
- ^ 知乎上已经有大牛回答过了,虽然是几年前的回答了吧 https://www.zhihu.com/question/26538198