游戏开发炸墙有多难?
首先,技术上
在现实世界中,物体受到撞击时会碎成几小块。在游戏中,这种碾压效果是通过物理引擎中的碾压系统来实现的。
游戏的物理引擎会模拟一个物体(刚体)的撞击。当冲击发生时,物理引擎会计算冲击位置和冲量,并将信息发送给粉碎系统。粉碎系统将决定是否粉碎以及如何粉碎。如果有必要,刚体将被切割和分解成几个合适的碎片。切割后,物理引擎将继续控制碎片,并模拟碎片在现实世界中的运动。
在继续之前,先普及一点游戏开发常识。游戏中的所有物体都是由脸组成的。面孔越多,细节越真实,但对性能的要求也越高。所以游戏开发者需要不断平衡屏幕性能和性能消耗,用最少的面数达到最好的效果(塞尔达荒野传说在这方面非常牛逼)。
法线贴图是一种在凹点和凸点处模拟光照效果的技术,它可以在不添加多边形的情况下为模型添加细节。
怎么切
在切割碎片的过程中,需要计算碎片刚体的质量属性和形状切割。
利用刚体的质量特性,即质量、惯性矩和重心,尽可能真实地模拟碎片的运动。但形状切割要保证碎片的质量属性易于计算,形状和大小丰富,接近真实破碎效果。
除了切割刚体的形状,还需要切割用于渲染的形状,切割渲染形状的表面。可以给切割的刚体表面添加一些细节,同时带上纹理和uv坐标,生成切割面的材质。
何时切割
对于何时切割碎片,通常有两种方案。
一种是预切割,在制作资源的时候制作带有地图的碎片,在游戏运行的时候按照预设的切割来分割碎片。这种方法在运行中节省了大量的计算量,但是无论玩家怎么努力,分割的结果都是一样的,与真实情况相差甚远。
另一种是在游戏运行的时候做,实时生成符合当时条件的切割。这种方法可以根据实际情况生成不同的碎片,接近真实世界情况,但计算量也很大,容易造成游戏卡顿,对机器性能非常依赖。
如何生成不规则边缘?
粉碎系统只做切割和分解的工作,物理引擎本身不做粉碎边缘的精细事情。最初的粉碎是方形和六边形等。,还有一些细节慢慢补充。不规则边缘的视觉效果主要在Shader中完成,从渲染层面做出更好的不规则效果。
对于大量的实时碾压,需要结合特效来展现一些效果。比如大爆炸,基本就是粉碎系统切割+特效,同时要尽量减少切割,减少面数,否则机器还是会很卡。
育碧《彩虹六号:围攻》(2015首发)的毁灭系统是其一大特色。游戏中易碎材料(如木头和玻璃)的表面可以被破坏,包括墙壁、天花板和地板。除了炸药之外,这些材料还可以通过射击或近战攻击来销毁。如果墙被加固了,就需要特殊的炸药来打破它。要实现这样一个破坏性的系统,彩虹六号的策划者是如何摧毁程序员的?
请看彩虹六号物理程序员含泪声明:
在R6(彩虹六号),你可以在任何位置的许多墙上开孔,创造新的景象。甚至可以用枪挖个狗洞爬出来。这是这款游戏最大的创新。为了支持这一创新,开发团队经历了彻底的血泪史。
首先,我们说的是在任何位置破墙。要做到这一点,不可能事先把墙切成几块。所以所有的墙损都是根据破坏力实时计算的。R6的设计目标是能够在PS4垃圾上以PVP模式运行60帧。
其次,拆墙显然会影响很多游戏性的东西。射击,物理系统,角色移动,AI,NAVMESH都是根据破坏系统的结果来反应,这又是一个CPU黑洞。
最后,《R6》是一款竞技类网络FPS游戏。如何在各种网络条件下正确同步所有初始条件,保证所有玩家都能看到同样的破坏效果,又是一个天坑。
同时,因为反作弊的需求,你需要把破坏引擎放到服务器上再执行一次,导致R6非常非常烧服务器。R6各种bug跟这个有关系,但是相对于技术本身的复杂程度和育碧愿意在这个游戏上投入的人力来说,还是挺不错的。
育碧请道士点亮服务器,因为服务器经常卡住,这相当于哔哩哔哩请道士移动的做法。
第二,可玩性
在游戏中,如果想保持一种预期的体验氛围,原则上每一个互动内容都必须对它有意义。这里的意思是玩家可以从这样的互动中获得一些东西,包括不限于经验值、分数、可能的道具、额外的信息、战略玩法、加深对主题的印象等。,也就是可玩性。
为了实现这种互动,我们需要一个特定的场景放置级设计。如果玩家可以随意破坏关卡,或者设计了一个交互,玩家得不到任何有助于体验和氛围的额外内容,那么这个交互不仅会增加玩家的认知负荷,还会破坏原有的整体氛围,玩家很难从中获得满足感。
以育碧经典游戏《雷曼》(发行于1995)为例。这是一款解密入门类别的跑酷游戏。在当时的版本中,出现了利用气墙和二次跳跃快速通关的bug,这也正式为日后育碧的大量游戏埋下了伏笔。
在育碧后来的波斯王子系列(刺客信条)中,bug成了游戏中最大的乐趣。玩家经常会因为走错路而走进设计师的后花园,而剧情奇妙的触发方式更是割裂了与npc的对话,甚至主动使用空气墙快速解决一些悲伤的任务。
最后给大家一个多人坑游戏——bro force,像素风格的横版射击游戏。在游戏中,玩家是一个铁血硬汉。通过不断拯救贵哥,成为新贵哥(学习哲学),消灭boss关。
兄弟♂敢死队让毁灭场景成为效果的体现,给玩家带来快感,是游戏性,所以这个游戏本身的关卡设计就需要少关心被毁灭或者被绕过。但由于玩家可以破坏游戏中的任何一面墙和梯子,所以经常会出现道路被炸,只能自杀的尴尬场面。