网易互娱引擎部技术专家:元宇宙、云游戏,离不开服务器动画性能优化
网易互娱引擎部技术专家:元宇宙、云游戏,离不开服务器动画性能优化
竞核
· 刚刚
探索新技术,服务新明天。
网易互娱引擎部技术专家:元宇宙、云游戏,离不开服务器动画性能优化
文|竞核
当前游戏行业还有很多技术难题尚未攻克。很多国产游戏在引擎渲染、服务器性能等方面还留有不小的提升空间,玩家和行业心心念念的国产3A大作,至今也未能成批诞生。此外,竞技类产品仍面临外挂等问题。
中国游戏行业快速发展的近30年间,我们的成功硕果也是琳琅满目。或许有时候问题并不在于起点、发展轨迹的不同,可能更多还是我们探索与发现的不够。
在2022N.GAME网易游戏开发者峰会技术驱动分论坛上,网易互娱引擎部技术专家许飞表示,UE的Dedicated Server(DS)可以执行完整的动画更新,让服务器获得角色的姿态信息。据此可以实现较准确的受击判定和较好的联机公平性。然而动画系统的较大开销也对优化提出了挑战。
本次峰会,他从服务器性能优化的意义和现状、业界常见优化的方法、复杂的动画状态机优化做法、服务器动画的发展和未来等四个角度,讲述了如何构建公平的联机环境,提升服务器动画性能。
以下是网易互娱引擎部技术专家许飞演讲全文,略经编辑:
01、服务器动画技术,防外挂的利器
大家好,我是来自网易互娱技术中心的许飞。
今天我的分享内容主要有四个部分:服务器性能优化的意义和现状;我们将会探讨一下看看业界常见优化的方法;我们会着重来讲一下我们在复杂的动画状态机优化方面的一些做法;展望一下服务器动画一些发展和未来。
首先进入第一部分。很多有经验的开发者可能会有疑问,服务器需要跑动画吗?这是一个好问题,因为现在大多数游戏其实服务器是没有跑动画的。
在传统观点中,动画和渲染特效一样。它是属于表现层次,只要客户端看就可以了。
有限的几种需要动画参与的逻辑,比如打击部位的判定,服务器不跑但客户端还是有动画。我们让客户端来进行判断,然后把结果发送给服务端,也能实现一样的效果。这也是我们以前常见游戏的做法。
需要提出的是,这一方法需要建立在网络必须是可信任的前提下,但实际的网络环境并非如此。
根据Peter Steiner在1993年发布于纽约客上的一副图画,它被认为揭示了互联网环境的复杂性。互联网环境是缤纷多彩的,这给网络游戏的发展提供了肥沃的土壤。与此同时,互联网的复杂性也给游戏开发者造成了很大的挑战。
例如在游戏外挂方面。在竞技类游戏中,如果玩家一旦使用外挂,就会对游戏的公平性造成毁灭性打击。那么有没有一种办法能够有效地防止或者说反外挂呢?答案是有的。一个有效的方法叫做服务器权威。
简单介绍下其中思路。外挂是通过劫持游戏客户端来实现一些非法操作,相对于玩家客户端来讲,我们的服务器是在经过严密保护的机房里,一般的外挂开发者很难劫持我们的服务器。
如果我们把关键的逻辑都放在服务器上面,客户端仅仅作为一个指令的输入者,我们就可以防止大部分外挂的操作。
那为什么现在大多数游戏没有选择这种做法?这就需要考虑到很多现实问题,例如在游戏各种不同系统开销层面,包括数据量的大小、更新频率的高低等。
我们可以看到,很早期的服务器其实只会保存等级之类的信息。发展了一段时间之后,服务器就可以保存装备、技能等信息。而在动画方面,它需要的数据量和更新频率都很庞大,这对算力的要求十分高。
简单来说,如果我们简单的把动画从客户端挪到服务器,在没有优化的情况下会导致服务器直接跑不起来。基于这样尴尬的现实,很多游戏都没有在服务器开启动画。
那随着技术的发展,是否存在让服务器搭载动画变成可能呢?我们稍微梳理下过往的产品历史。
我们收集了一段时间来服务器每条线程的成本,其中2007年、2016年和2020年的比较典型,同时这三年也诞生出三款典型的射击游戏。
从2007年到2016年,我们服务器单线程的成本大概降到了原来的1/3,2016年到2020年的成本更是降到了原来的1/2。2007年《穿越火线》发布,它的服务器几乎没有跑任何动画相关的东西,2016年的《守望先锋》跑了一部分。
而2020年发布的《瓦罗兰特》,它的服务器是完全跑动画的。什么意思呢?它会完全计算角色在服务器上的状态。此前,该款游戏的的主程在分享中也明确说到,他们这样做就是为了反外挂。
因为服务器只有有了非常全面的动画信息,我们在判定受击的时候,才不至于被客户端的外挂所欺骗。
我们也相信,随着技术发展,服务器动画的逻辑执行程度会越来越高。
02、基于事件更新姿态,开销下降75%
既然要在服务器跑动画,就需要优化它的动画开销。
而动画系统开销组成部分包括:条件更新、状态更新和姿态更新。
对于一个动画系统来讲,它其实可以理解成这个系统接收外界的输入,然后更新内部状态,最后计算出模型的姿态。
首先是输入部分,一般为角色速度或者角色状态,当前是释放技能还是做其它也好。动画状态,比如说角色的速度变化,可能从一个静止状态变成一个跑动状态,或者说从跑到跳的状态变化,最后再由这些状态计算出角色姿态。姿态就是美术K帧计算出角色最终的样子。
根据数据量和更新频率两方面来计算,这三部分中开销最大的是姿态部分。因为每个人骨骼都有朝向、旋转和位置等众多属性,并且它几乎是每帧都要变化。
目前,业界常见的优化方式也正是针对这一块进行的。其中最简单最直接了当的即LOD,它主要是减少了动画的数据量。例如对服务器判断受击没有任何作用的这些骨骼,我们把它去掉,一般可以减少20%-30%的开销。
除了减少数据量之外,我们还可以减少数据的更新频率。基于事件的姿态更新就是在减少姿态计算频率,例如《瓦罗兰特》就采用了这一技术。
简单来说,只有当角色被击中的瞬间,才会计算模型姿态,这种优化就极大的减少了姿态更新的频率。它可以把姿态更新的开销从84%直接降到9%。
做到这一步,你就可以在服务器上来跑动画了。可能会有一定的开销,但是不至于说完全跑不起来。这就是业界我们常见的一些优化方式
03、UE蓝图+人工标注,取巧优化性能
当姿态更新的开销降下来后,亟需解决的则是动画状态的更新。
如果一个角色有很多复杂的动画逻辑,那么导致状态机情况也会非常的复杂。这样的开销甚至会超过11%。接下来,我们将着重来讲述如何来优化复杂的状态机。
我们先看一下状态机是什么样子。以UE为例,首先它里面有走跑跳等一些状态。
例如从跳起来到落地的状态过程,它大概可分成三部分:第一部分Find_Transitions,角色从当前状态来找一个可能的跳转条件;第二部分,如果这个条件为真,有一个跳转可能发生,那么就执行这个跳转;第三部分,两种状态之间可能会有的一些过渡。
我们再看看如何优化。首先是状态过渡的优化。以上述Locomotion为例,至少有两种过渡模式。
一种是角色上一个状态权重逐渐降低,下一个状态权重逐渐升高,那这样权重会出现一个交叉。我们称之为Cross Fade。在此过渡过程中,它的两个状态权重都不为0,所以必须更新这两种状态。另外,如果两个状态中间又嵌套了别的状态机,也一定都要更新。
第二种方式,有的引擎称它为Immediate模式,或者叫做Inertialization模式。
简单解释下,假如角色还在空中跳,下一刻要落地,该怎么办。我把空中跳的这个状态拍个快照,直接不再更新它,接下来下一个状态的权重逐渐从0升到1。通过这种方式,我们只需要更新下一个状态。
基于这些优化之后,状态更新的开销大概能降低10%左右。那在寻找一个可能跳转的条件情况下,我们又该怎样优化?
还是以从空中到落地这段时间为例,如何决定接下来下一步需要着陆。这个条件有两种写法:
一种是直接接受了一个Bool值;第二种通过大于小于表达式判断角色速度是否发生变化,再来来决定是不是跳转。
根据UE官方的提示,这两种方法的效率大概会相差10倍。原因在于,前者直接使用Bool值来判断,会编译成本地代码。后者编译的是虚拟机代码,经过蓝图虚拟机来执行才能判断其中的结果。
需要提出的是,相比之下,Python、lua这样的非本地代码,性能本来就低。而过多地使用非本地化语言写条件,也会给状态机的更新造成很大的性能开销。当然,我们也可以通过人工的方式,将这部分判断转换成本地化代码,从而获得一定的性能提升。
而在UE中,开发者可以使用Nativization等工具,自动化地将蓝图代码转换成本地化代码。对于动画状态机而言,这其实会带来10%左右的性能提升。
那还有没有更有效的优化方法呢?这就要在状态跳转环节下功夫了。
通过进一步分析,我们发现跳转条件其实也分为两类。一类是它依赖玩家的输入;另一种条件则是依赖动画播放进度。我们可以优化前者的更新频率,因为玩家输入频率不高,可以直接省掉更新。具体地,可以通过在UE蓝图中进行人工标注标明可优化的跳转信息。
在蓝图编译的时候,利用这些标注能够更容易把优化代码给插进去,这样最后生成的代码就是优化后的代码。经过测试,大概会有70%的优化。
总言之,虽然现在真正应用服务器动画的游戏并不多,但按照当前的发展趋势,这会是一个比较有前景的领域。它可以提供更公平的联机环境、实现更细致的交互。现在行业所提出的云游戏、元宇宙等,很难想象会没有动画。这也是服务器性能优化当下及未来的阵地。
769篇资讯
1.8万关注
竞核
中国首家游戏电竞媒体厂牌(合作交流可联系:18305980182)
最近资讯
- 网易互娱引擎部技术专家:元宇宙、云游戏,离不开服务器动画性能优化
- 首批45个游戏版号,厂商先海外再国内,策略不变
本文观点仅代表作者本人,钛媒体平台仅对用户提供信息及决策参考,本文不构成投资建议。
想和千万钛媒体用户分享你的新奇观点和发现,点击这里投稿 。创业或融资寻求报道,点击这里。
敬原创,有钛度,得赞赏
-
钛粉12812 赞赏了
破发又大涨 海创药业“明天”的故事不好讲
上周 -
端生 赞赏了
孟晚舟归国首次亮相,华为年度净利润超1100亿元 ...
2022-03-29 17:26 -
钛粉04723 赞赏了
京喜基本退出社区团购
2022-03-28 12:53 -
钛粉34992 赞赏了
我和我的植物人女儿|钛媒体影像《在线》
2022-03-25 14:59 -
钛粉32623 赞赏了
“看风使舵”的摩根大通,为什么不值得信任?
2022-03-23 13:18 -
钛粉64062 赞赏了
酒店机器人离“万能”员工,还差多少笔融资?
2022-03-19 10:27 -
钛粉41134 赞赏了
俄乌战火中的中国留学生:我决定留下帮助普通人
2022-03-18 11:45 -
钛粉52609 赞赏了
半导体高管不断跳槽,背后透露什么信号?
2022-03-05 16:01 -
钛粉08632 赞赏了
叮咚买菜上海地区实现盈利,未来扭亏有望了吗?
2022-02-28 13:11 -
炜琳 赞赏了
刀口夺金的私募业:猎人、赌徒和骗子
2022-02-25 00:22 -
钛粉90022 赞赏了
年薪4亿的中国最贵科技CEO是谁?我们对高管薪资做...
2022-02-17 20:27 -
钛粉30326 赞赏了
亮风台联合创始人唐荣兴:元宇宙是个慢风口,AR领域...
2022-01-20 14:20 -
钛ae5u... 赞赏了
钛媒体科股早知道:发展最快的子行业,订单火爆,未来...
2022-01-17 04:39 -
满级钛宝1... 赞赏了
十亿消费者,谁是下沉市场的孤勇者
2022-01-15 11:42 -
马洋928 赞赏了
AI年度总结与展望:超大规模预训练模型爆发,自动驾...
2022-01-10 18:12 -
钛小超16... 赞赏了
奈飞无奈:《华灯初上》难成《鱿鱼游戏》
2022-01-10 15:18 -
钛粉25713 赞赏了
新能源汽车还有多少空间?
2021-12-29 22:06 -
钛粉91858 赞赏了
出海东南亚,阿里没得选
2021-12-27 15:07 -
钛粉91647 赞赏了
出海东南亚,阿里没得选
2021-12-27 15:05 -
钛粉91231 赞赏了
BAT为何分化在2018?
2021-12-27 14:50 -
钛粉63223 赞赏了
薇娅“落幕”,直播带货会“变味儿”吗?|钛度热评
2021-12-24 21:27 -
赚赚 赞赏了
“抢红利”的《误杀2》,急于收割的万达和“陈思诚宇...
2021-12-22 17:07 -
赚赚 赞赏了
12月22日A股分析:创业板指涨0.55%,医药股...
2021-12-22 17:02 -
钛粉95326 赞赏了
美国又来捣乱了!中资收购韩国半导体巨头计划“流产”
2021-12-16 23:07 -
钛粉40847 赞赏了
美国又来捣乱了!中资收购韩国半导体巨头计划“流产”
2021-12-16 14:38 -
马洋928 赞赏了
快手史上最重要一战开场
2021-12-09 10:22 -
马洋928 赞赏了
快手史上最重要一战开场
2021-12-09 10:21 -
小小日月 赞赏了
投资人自白:被坑了1亿后,我再也不给影视项目投钱了
2021-12-09 10:13 -
发家致富1... 赞赏了
Zillow大牛市炒房巨亏,别把人祸甩锅人工智能
2021-12-09 08:46 -
小小日月 赞赏了
理想主义者自救指南
2021-12-08 17:41 -
小小日月 赞赏了
爱奇艺,病在九千人
2021-12-08 17:33 -
钛粉40736 赞赏了
家装互联网,困于“局域网”?
2021-12-04 18:24 -
小团子_T... 赞赏了
我是博物馆文创IP授权专员,文史与创意桥梁的搭建者...
2021-11-30 06:34 -
钛粉57559 赞赏了
战斗浪潮和时代心事
2021-11-25 14:54 -
钛粉27830 赞赏了
网红书店近黄昏
2021-11-21 11:12 -
钛粉46586 赞赏了
元宇宙还没影,音乐巨头们为何纷纷下注?
2021-11-20 14:13 -
钛粉94275 赞赏了
煤炭暴涨下的山西煤老板:日进千万,已经富得没感觉了
2021-11-20 10:32 -
关东流匪 赞赏了
AlphaFold2爆火背后,人类为什么要死磕蛋白...
2021-11-19 11:55 -
钛粉33536 赞赏了
飞书切瓜
2021-11-18 20:59 -
钛粉64093 赞赏了
风光不再,背背佳1.77亿“卖身”,买家看中了什么...
2021-11-15 01:23 -
钛粉64502 赞赏了
风光不再,背背佳1.77亿“卖身”,买家看中了什么...
2021-11-15 01:03 -
钛粉64056 赞赏了
风光不再,背背佳1.77亿“卖身”,买家看中了什么...
2021-11-13 21:52 -
hVz19... 赞赏了
双十一被卖爆的国产网红化妆品“薇诺娜”,能否撑起9...
2021-11-12 13:15 -
钛粉77478 赞赏了
Shopify悄然登上北美电商第二把交椅,独立站是...
2021-11-12 12:59 -
赵何娟 赞赏了
基金投顾强监管来了:“大V”引流开户被叫停,各大平...
2021-11-08 20:39 -
钛粉90442 赞赏了
海底捞关店300家“求生”,餐饮业凛冬将至?
2021-11-08 15:40 -
钛粉65149 赞赏了
概念车百分百量产,丰田bZ4X凭什么?
2021-11-04 10:51 -
钛粉49197 赞赏了
剧本杀里的欲望缩影:交友、脱单与释放天性
2021-10-30 16:34 -
hNzMk... 赞赏了
海天味业官宣涨价,调味品行业迎来拐点
2021-10-21 17:15 -
钛粉70544 赞赏了
蔚小理,上飞书|钛媒体深度
2021-10-16 14:18 - 查看精彩文章,打开钛媒体客户端
挺钛度,加点码!
- ¥ 5
- ¥ 10
- ¥ 20
- ¥ 50
- ¥ 100
支付方式
支付
支付金额:¥6
赞赏金额:¥ 6
赞赏时间:2020.02.11 17:32
账户【未登录】提示!
个人中心将无法记录并同步您的赞赏记录,
是否进行登录
分享文章
Oh! no
您是否确认要删除该条评论吗?
猜你感兴趣
分享文章