《天龙八部3D》在公测之初的24小时便获得了1257万的流水,首日导入大概110万的用户,在内地以及台湾、香港的iOS付费及免费榜均取得过top1的成绩,在iPhone畅销榜的最高排名是TOP3。正式上线之后的首月流水是2.3亿,从“凌波微步”、“武林大会”到最近的“丐世英雄”,《天龙八部3D》推出的资料片流水均高于公测时,这个事例可以体现MMOARPG的生命力还是比较顽强的。

在技术层面上,结合服务器端和客户端的整体考量,《天龙八部3D》主要运用了以下几种技术方案:

完整的动态负载均衡方案。单服务器支持一万人同时在线,在人数上涨时可以调动整个服务器的负载均衡,让一万人都能流畅、稳定地运行。服务器内部通讯机制。充分利用硬件资源。比如在一台物理机上开两个服务器,当一个人多而另一个人少的时候,服务器会自动通过动态负载均衡调用更多的硬件支持人多的服务器。异常处理机制。带有垃圾回收功能的对象池。

在服务器上,我们有较高的稳定性和容错性,可以稳定运行三周以上。这对其他类型的游戏可能并不是一件特别重要的事情,但对于MMORPG来说,却极为重要。因为MMORPG是具备成长性和完整性的游戏,而MMORPG用户对在线时间的要求要高于普通游戏,我们必须依靠于稳定运行机制来让用户在线时长得到保证。

而在客户端,则有稳定的帧率和顺畅的操作感,里面带有高效的动态资源管理策略,可以保证客户端的内存方面不会出现特别大的问题,导致客户端闪退等。此外,还有成熟的性能优化解决方案,其实在去年刚起步时我们还是一头雾水,但经过一年多的努力和学习,我们基本上已经学会了一套在客户端上性能优化的完整解决方案。

从端游到手游,如何打造惊艳的移动端画面表现?

手游和端游不同,做移动端游戏,面数是一个很大的问题,手游上面数较少,而《天龙八部3D》则将游戏资源与美术相结合,从定制化的场景到人物材质都是一种3D的表现,这样可以保证美术资源在面数较少的情况下,也能达到漂亮、惊艳的效。

《天龙八部3D》项目是从2013年11月开始立项,作为毫无手游开发经验的前端游研发团队,整个开发流程可以说是摸着石头过河,不过幸好我们整个团队已在一起工作六年,非常默契,能够较快地将想法实现。

项目最初一个月,我们都在探索着尝试各种美术风格定位,后来开始着手研究Unity引擎开发,在2013年12月底,我们使用Unity做了一个Demo,基本上代表了之后的美术方向和整个玩法的基本雏形。

经过从α、β到Golden版本的优化演进,《天龙八部3D》从初具雏形到公测、正式上线,在此过程中真正运用了哪些Unity技术?

大量的Unity自带技术,比如导航的组件等;遮挡删除;lightMapping,用以解决光照问题;将NGUI与Unity相结合可以很方便地构建出一个强大的UI系统;Unity自带的粒子系统;Editor功能,可以很方便地开发各种小工具,大幅提高工作效率,比如UI辅助、图片处理、编译、国际化、阻挡生成等;AssetBundle,一种非常有效的资源管理方式,既可以打包、控制内存使用,还可实现资源的动态更新;Unity自带的性能分析工具Profiler,能解决所有性能问题。

下面再给大家介绍一下《天龙八部3D》中使用的一些实用方案。

缓存池机制

《天龙八部3D》游戏最初的定位是能够在512MB的内存上都能良好稳定地运行,于是,我们便使用了一种叫做缓存池的机制,这是一种内存换时间帧率机制,《天龙八部3D》的NPC、玩家、特效、声音等均有使用,它能够提供较好的流畅度体验,但需要一部分小额内存。

资源释放机制

在游戏运行过程中需要找到一个合理的释放点,如果跑在1G以上的机器上,可能相对容易,但要兼容低端机型,合理的释放点则非常重要。

《天龙八部3D》中常用的释放点有两个,分别为转场景时释放一些非全局资源、每次打开界面一秒后进行一次主动调用GC的操作。这是我们权衡了很久的做法,但实际效果还很不错。当时我们为了兼容低端机型运用了缓存池的功能,在512MB设备上运行会变卡,而且还无法控制,最终我们在打开操作界面时执行缓存池,尽管实际出现卡顿但玩家却不会有感觉,这属于是一种比较取巧的方式。

值得开发者们注意的是,在将所有东西打包成AssetBundle时,需划分出依赖关系,单个界面的AssetBundle最好不要超过1M,单个模型骨骼数不超过32个,角色和NPC控制在2000面以下。

最后,再来说一下《天龙八部3D》游戏中使用到的优化方案。

客户端大小优化

《天龙八部3D》在刚立项时,市面流行的客户端大小都在100M以下,当时我们做了很多策略,包括分包下载、动态资源更新、压缩贴图、尽量重用资源等,最后,在上线时客户端大小为150M。

内存优化

代码中申请内存一般是New来操作,用完内存还要进行一次标记释放,比如置空或发送Destroy消息。如果让GC帮助释放内存的话,会出现卡顿,这个时候就需要选择合适的时间点来控制GC。

尽可能多地重用资源

一般贴图占用内存大,如果尽可能地重用会很节省内存。程序代码中的内存池、对象池如果用完,在必要的时候可以主动调用GC释放。而做好AssetBundle资源关系的动态加载、卸载等也能省下很多内存。

按照C++的思想来管理内存,比如使用内存池、对象池、手动卸载、主动GC等,能够在内存和帧率之间做好平衡。另外,规划好美术资源的重复利用也相当重要,它能够减少包的大小,比如NPC变色多场景可共用,制备、水等很多场景的美术资源制作也可重复利用。

更多unity2018的功能介绍请到paws3d学习中心查找。

《天龙八部3D》Unity技术方案揭秘 1相关推荐

  1. 《天龙八部3D》Unity技术方案揭秘

    <天龙八部3D>在公测之初的24小时便获得了1257万的流水,首日导入大概110万的用户,在内地以及台湾.香港的iOS付费及免费榜均取得过top1的成绩,在iPhone畅销榜的最高排名是T ...

  2. 低成本金属3D打印技术方案

    又一款金属3D打印机,来自瑞典,成本据说比desktop metal.markforged还要低,目前在寻求投资.他们已经和深圳的易生有了市场上的合作.这个技术将是全新的.不过,其发明人目前表示不能透 ...

  3. 《天龙八部3D》中Unity使用介绍

    摘要:很多端游进入手游市场都在榜单上大获成功,但如果仅仅照搬端游的玩法可能会遇到很多风险.<天龙八部3D>制作人佟庆和主程王华分享了在使用Unity引擎制作<天龙八部3D>游戏 ...

  4. 北京冬奥黑科技; 揭秘虎年春晚硬核科技;全球首款AR隐形眼镜问世;索尼3D显示技术路径曝光...

    点击文章内容即可跳转至相应原文阅读 >> 祝大家开工大吉,虎年顺利! 北京冬奥从开幕式就黑科技曝了! 这一次的北京冬奥会,从开幕式就直接火了!首先是从冰立方中破冰而出并随着音乐冉冉升起的奥 ...

  5. 阿里技术分享:深度揭秘阿里数据库技术方案的10年变迁史

    本文原题"阿里数据库十年变迁,那些你不知道的二三事",来自阿里巴巴官方技术公号的分享. 1.引言 第十个双11即将来临之际,阿里技术推出<十年牧码记>系列,邀请参与历年 ...

  6. 3D室内导航系统技术方案

    今天和大家分享一下3D室内导航系统针对医院的解决方案,近期也在整理微信端的室内定位导航的资料,后续后空也会分享给大家,如果有兴趣的朋友可以加我QQ1563056788交流 一.系统简介 医院便民服务互 ...

  7. Unity联网多人游戏技术方案调研

    关于联网方案 Listen Server (Host) 和 Relay转发服务器游戏包同时包含客户端和服务端逻辑,联网时一个客户端开主,称为Host,其他客户端连入.局域网和互联网都支持.互联网需要有 ...

  8. 3D相机技术调研(飞行时间TOF+双目+结构光)

    1. 深度估计3D相机方案 目前市面上常有的 3D 相机方案主要有3种: 飞行时间(Time of flight,TOF),代表公司微软Kinect2,PMD,SoftKinect, 联想 Phab, ...

  9. 超干货3D视觉技术分享+人才内推!独角兽奥比中光与你相约VALSE 2021

    10月8日至10日,一年一度的VALSE大会(视觉与学习青年学者研讨会)将在杭州国际博览中心举办.行业领先的3D视觉感知领域整体技术方案提供商奥比中光金牌赞助本届VALSE大会,并以"感知· ...

最新文章

  1. 吴恩达神经网络和深度学习——第二周笔记
  2. 2010年的退休畅想
  3. Python 之 random模块
  4. 会议更流畅,表情更生动!视频生成编码 VS 国际最新 VVC 标准
  5. 【51NOD】1486 大大走格子
  6. ssh(Spring+Spring mvc+hibernate)简单增删改查案例
  7. leetcode Distinct Subsequences
  8. 清北学堂2018年1月省选强化班模拟考试1
  9. DBS:CUPhone
  10. 微信应用开发简单示例,学生自助报道系统
  11. centos是什么操作系统
  12. 解决:远程服务器(阿里云 VHost)和本地文件传输 windows
  13. A股:我要加区块链,监管:你可消停会
  14. java 后台将英文名 转换成中文名
  15. android+判断wifi+5g,Android判断wifi是5G还是2.4G
  16. 两百万美元“NFT”消失的惨案
  17. JavaScript 杨辉三角 杨辉三角 II
  18. 硬件设计——BUCK电路仿真设计
  19. 牛客网——华为题库(91~100)
  20. 2020-05-06

热门文章

  1. 山东大学项目实训——地图圈系统——微信小程序(16)
  2. Android SoftAp SoftAp打开/关闭代码流程(基于android 7.0)
  3. 【HDFS】Observer Namenode开启in-progress tail之后导致误删除in-progress状态的editlog问题
  4. 代码随想录训练营day57
  5. 创建自绘进度条,并在进度条上显示当前进度的百分比
  6. 亿信华辰讲述如何做好客商主数据管理
  7. 什么是序列,Python序列详解(包括序列类型和常用操作)
  8. 解决某些ERP软件无法用VNN的IP地址进行连接的问题
  9. windows xp安装驱动时提示驱动未通过微软数字签名
  10. 全国大学生测试大赛众包测试盘点