游戏开发

王者荣耀属于典型的Moba类游戏,和英雄联盟属于同一种游戏类型,那么王者荣耀这种游戏是如何制作的?又需要学习哪些技术点呢?今天我们一起来分析一下。

这里有个教学视频可以学习一下, 或者加入Unity交流小组进行交流

Moba是什么

王者荣耀属于Moba类型游戏,Moba英文全称(Multiplayer Online Battle Arena)

缩写为Moba, 中文翻译为多人在线战术竞技游戏, 又称动作即时战略游戏, 这种游戏最重要的是玩家的手感,为了获得更好的玩家手感, 一般Moba类的游戏同步方式和传统MMORPG的状态同步方式不一样,采用的是帧同步,王者荣耀就是采用帧同步,也有使用状态同步的Moba游戏。

帧同步是什么

游戏服务器每隔一段时间(逻辑帧)采集各个客户端的玩家操作,然后把采集到的玩家操作,发往每个客户端,客户端自己来计算游戏逻辑,根据同样的玩家输入+同样的代码逻辑,得到同样的运行结果,这样每个客户端就同步了。

服务器每隔一段时间,这个一段时间是多长合适呢?原则上来说时间越短越好,时间越短,玩家操作响应反馈就越及时,但是随之而来的网络带宽和计算成本也增加了,于是就有了一个原则,在不影响玩家手感的情况下,越少越好,根据研究,玩家的反应时间约为50~100毫秒,所以帧同步设计为10~20帧,不会影响玩家手感, 据小道消息,暴雪的《守望先锋》每秒20帧。帧同步主要的业务逻辑全部都放客户端计算,所以服务器基本没有什么运算量, 性能好。由于所有的计算都放客户端,帧同步也有容易作弊的缺点。

帧同步比状态同步获得更好的手感

在网速正常的情况下,其实状态同步也能获得很好的手感,同时状态同步又是放服务器计算的更安全,为何我们不用状态同步做Moba而是用帧同步呢?状态同步和帧同步最大的区别在于网络波动的时候,网络经常会有波动,状态同步,如果服务器由于网络波动没有及时的发送状态数据包到客户端,这样客户端就会卡住(虽然时间很短,但影响手感),而帧同步就不一样,如果由于网络波动,帧同步客户端没有及时的收到玩家的操作,客户端还可以基于上一帧来做预测,因为玩家1秒能有3个不同操作就很不错了(一秒你能点几次按钮,自己可以测试一下),所以当网络波动的时候,通常基于上一帧的预测是非常准确的,所以帧同步应对网络波动的时候获得更好的手感。同时配合UDP的传送,能让手感更好。

王者荣耀采用了哪些技术?

王者荣耀整个分为:程序开发,美术设计,游戏策划。程序开发分为客户端与服务端两个部分,客户端采用的是现在应用比较广泛的3D游戏引擎Unity来开发,服务端采用的是C++来开发。一般像腾讯这些大公司都会获得Unity引擎的源码授权,每个项目开始的时候,都会自己定制渲染管线来获得最佳的游戏画面效果与性能,同时也会有自己的项目引擎框架。C++做服务器,性能非常的好,同时技术也非常的成熟,《王者荣耀》项目组也是之前做的一个项目转变而来,技术也积累了很久,服务端也有自己的一套框架。游戏美术分为游戏原画,角色建模,场景建模,动作粒子特效,游戏UI几个部分组成,原画负责设计每个英雄的美术风格,外形, 平面地图等,角色建模根据原画,把每个角色模型都建好,模型建好后,动作美术调好动画特效,游戏场景也类似,原画设计后,场景建模人员建3D场景模型,打上光照,最后烘培场景出来给程序使用。王者荣耀的策划做的很好,各职业的平衡也设计的非常好,这也是它受广大玩家喜欢的原因之一。

好今天的分享就到这里,喜欢王者荣耀,对王者荣耀技术感兴趣的同学,你们准备好自己开始做了么?^_^

————————————————

版权声明:本文为CSDN博主「Clank的游戏栈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:制作《王者荣耀》需要学习哪些技术?_voidinit的专栏-CSDN博客

类似王者荣耀帧同步游戏的相关技术相关推荐

  1. 帧同步游戏 服务器相关实现

    每隔 LGOIC_FRAME_TIME 调用 on_logic_frame on_logic_frame里边主要是同步消息,做了以下几件事情 1:把过去的这一帧时间内收集的数据 插入到 match_f ...

  2. 从《王者荣耀》谈游戏的帧同步

    转载:http://www.gameres.com/774540.html 农药自从上线以来,依靠着强大的产品力以及腾讯的运营能力,在游戏市场上表现可谓是风生水起,根据第三方的调研数据显示,<王 ...

  3. 类似于计算机的游戏,与王者荣耀相似的游戏盘点 类似王者荣耀游戏推荐

    现在王者荣耀可以说是十分火爆,对于喜欢玩MOBA手游的玩家来说一定对其不陌生了.那么大家知道还有哪些和王者荣耀差不多的手游,同样能够让你体验到竞技乐趣吗?下面就跟小编一起去看看与王者荣耀相似的游戏盘点 ...

  4. Unity 帧同步游戏实现高光时刻

    一.前言: 高光时刻这个功能,对于常玩游戏的应该都不陌生,比如王者荣耀的高光分享功能.以前很多人为了分享自己的游戏高光,还需要全程录制,然后自己截取,非常的麻烦,现在王者荣耀已经可以云端生成视频了,大 ...

  5. 帧同步游戏开发基础指南

            最近一个月休了个假,体验了一下类似欧洲的田园生活.所以更新几乎荒废了,但是总结和积累是一直持续着的.根据前一阶段对于实时对战游戏的开发思考,写了这一篇入门级的文章,希望能记录下自己的想 ...

  6. (目录)[0]尝试用Unity3d制作一个王者荣耀(持续更新)-游戏规划

    太得闲了于是想写个农药,虽然可能会失败但是还是要试一试. 因为是自学的不是Unity专业的可能表达语言会有些不标准!望见谅! 结构: 以组件式(比如说摇杆控制和玩家部分的编写是分离的,可以自由拼装)作 ...

  7. 2244小游戏HTML5小游戏,2244小游戏:王者荣耀干扰正常游戏扣多少分 举报不成功是什么意思...

    王者荣耀干扰正常游戏扣多少分?干扰正常游戏故意演举报不成功是什么意思?玩家在游戏对战过程中,经常会遇到一些比坑的队友,玩家在举报的时候一般会选择其干扰正常游戏,怎么被举报了一般会扣多少分呢?接下来小编 ...

  8. 软件测试真假童子,19岁年薪千万,他打王者荣耀打成了“游戏圈的TFBOYS”

    原标题:19岁年薪千万,他打王者荣耀打成了"游戏圈的TFBOYS" 成功都自有其道 争议不止不休 7月2日晚6点15分,江海涛吃完饭回到家里. 他的家位于四川乐山售价最高的小区之一 ...

  9. 极光大数据显示王者荣耀成为国民游戏已成定局

    如果要选一款史上最火游戏,一定非腾讯旗下的<王者荣耀>莫属.依托微信及QQ两大社交平台与自身的卓越品质,<王者荣耀>从公测以来一路高歌猛进,长期霸占手游榜单渗透率.DAU等各项 ...

最新文章

  1. BZOJ 5064: B-number
  2. 【Python】又一个可视化神器Highcharts,Python版也有哦!
  3. haproxy的丰富特性简介
  4. 字段类型:mysql中int(3)与int(11)有什么区别吗?优化数据库字段占据磁盘的大小
  5. GitHub 超全机器学习工程师成长路线图,开源两日收获3700+Star!
  6. python之路-操作系统
  7. python中继承和组合的区别_Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类...
  8. JS计算GridView里的TextBox
  9. 谷歌地球 hosts文件_NO—谷歌地球===YESgt;gt;GoogleEarth
  10. java 200以内的素数_java200以内的素数每行每列7个代码怎么写?
  11. matlab如何实现波的叠加原理,什么是波的叠加原理?-王尚
  12. 很多次游戏的最后取胜实际上都有很强的偶然性
  13. java 密码 星号显示_Java多线程 例子 cmd窗口下 实现输入密码星号显示
  14. 从零开始做运营 进阶篇
  15. 马斯克辞任CEO,产品经理如何用项目协作软件武装自己?
  16. python爬取南京市房价_Python的scrapy之爬取链家网房价信息并保存到本地
  17. CNCC2019第三天 | 传统产业如何进行智能化升级?你踩雷了吗?
  18. 电子商务系统需求分析
  19. neo4j,MongoDB
  20. Wyn Enterprise 核心功能:行业领先的在线数据报表设计体验

热门文章

  1. 凸优化教程学习与理解(mark)
  2. Python爬虫解决验证码
  3. 国金股票自动交易接口怎么使用?
  4. linux关闭磁盘自检
  5. hdf heg 批量拼接_HEG安装教程(windows平台)
  6. iOS问题分析方法之【 打印视图布局、符号调试】
  7. 基于node.js + vant + vue-router + axios热点资讯H5移动端实现
  8. 用命令行查看mysql字符集_mysql查看字符集的方法和命令
  9. QQ 非绿钻如何上传本地歌曲 作为空间背景音乐
  10. matlab求勒让德多项式零点,有没有勒让德多项式导数 零点程序