开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

新闻资讯

关注:214

当前位置:游戏蛮牛 技术专区 新闻资讯

查看: 2325|回复: 8

[业内新闻] 《天龙八部3D》中Unity使用介绍

[复制链接]  [移动端链接]
抢楼 抢楼 本帖为抢楼帖,欢迎抢楼! 
8常驻蛮牛
7224/10000
排名
103
昨日变化

137

主题

246

帖子

7224

积分

Rank: 8Rank: 8

UID
56689
好友
8
蛮牛币
2686
威望
100
注册时间
2014-11-20
在线时间
533 小时
最后登录
2017-3-4

最佳新人

发表于 2015-5-4 11:36:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

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

在过去一年里,很多端游进入手游市场在榜单上大获成功,但考虑到性能及用户属性等,如果仅仅照搬端游的玩法,在开发过程中可能会遇到很多风险。《天龙八部3D》是搜狐畅游自主研发的一款游戏,它是3D的MMO系统,在去年10月进行公测及上线之后,得到了很多玩家的认可,取得了不错的成绩。所以,今天我想来分享一下在使用Unity引擎制作《天龙八部3D》游戏的过程中遇到的一些经验和教训。
《天龙八部3D》技术方案揭秘首先,我先简单介绍一下《天龙八部3D》项目的基本情况。《天龙八部3D》在公测之初的24小时便获得了1257万的流水,首日导入大概110万的用户,在内地以及台湾、香港的iOS付费及免费榜均取得过TOP1的成绩,在iPhone畅销榜的最高排名是TOP3。正式上线之后的首月流水是2.3亿,从“凌波微步”、“武林大会”到最近的“丐世英雄”,《天龙八部3D》推出的资料片流水均高于公测时,这个事例可以体现MMOARPG的生命力还是比较顽强的。
在技术层面上,结合服务器端和客户端的整体考量,《天龙八部3D》主要运用了以下几种技术方案:
  • 完整的动态负载均衡方案。单服务器支持一万人同时在线,在人数上涨时可以调动整个服务器的负载均衡,让一万人都能流畅、稳定地运行。
  • 服务器内部通讯机制。
  • 充分利用硬件资源。比如在一台物理机上开两个服务器,当一个人多而另一个人少的时候,服务器会自动通过动态负载均衡调用更多的硬件支持人多的服务器。
  • 异常处理机制。
  • 带有垃圾回收功能的对象池。
在服务器上,我们有较高的稳定性和容错性,可以稳定运行三周以上。这对其他类型的游戏可能并不是一件特别重要的事情,但对于MMORPG来说,却极为重要。因为MMORPG是具备成长性和完整性的游戏,而MMORPG用户对在线时间的要求要高于普通游戏,我们必须依靠于稳定运行机制来让用户在线时长得到保证。
而在客户端,则有稳定的帧率和顺畅的操作感,里面带有高效的动态资源管理策略,可以保证客户端的内存方面不会出现特别大的问题,导致客户端闪退等。此外,还有成熟的性能优化解决方案,其实在去年刚起步时我们还是一头雾水,但经过一年多的努力和学习,我们基本上已经学会了一套在客户端上性能优化的完整解决方案。
从端游到手游,如何打造惊艳的移动端画面表现?手游和端游不同,做移动端游戏,面数是一个很大的问题,手游上面数较少,而《天龙八部3D》则将游戏资源与美术相结合,从定制化的场景到人物材质都是一种3D的表现,这样可以保证美术资源在面数较少的情况下,也能达到漂亮、惊艳的效果,如图1所示。

图1  《天龙八部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变色多场景可共用,制备、水等很多场景的美术资源制作也可重复利用。

本文为CSDN原创文章,原文链接:http://www.csdn.net/article/2015-04-30/2824601-unity-tl3d

佟庆 《天龙八部3D》制作人;王华 《天龙八部3D》主程
本文将刊登在《程序员》5月A刊上,订阅详情可点击:http://dingyue.programmer.com.cn/



怎样在unity中加河;unity中加河

本帖被以下淘专辑推荐:


回复

使用道具 举报

排名
1606
昨日变化
1

3

主题

135

帖子

1049

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
48551
好友
1
蛮牛币
2104
威望
0
注册时间
2014-10-12
在线时间
250 小时
最后登录
2017-4-22
发表于 2015-5-6 09:43:12 | 显示全部楼层
mark

回复

使用道具 举报

7日久生情
2343/5000
排名
374
昨日变化
1

2

主题

255

帖子

2343

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
38772
好友
8
蛮牛币
2025
威望
0
注册时间
2014-8-8
在线时间
800 小时
最后登录
2017-6-27
QQ
发表于 2015-5-8 10:38:36 | 显示全部楼层
mark                                                                                

回复

使用道具 举报

2初来乍到
133/150
排名
23337
昨日变化
32

0

主题

34

帖子

133

积分

Rank: 2Rank: 2

UID
70990
好友
0
蛮牛币
5
威望
0
注册时间
2015-1-25
在线时间
89 小时
最后登录
2017-5-15
发表于 2015-5-13 22:35:20 | 显示全部楼层
kd复一中,同,,仍圆顶国,, ,,

回复

使用道具 举报

排名
35485
昨日变化
62

0

主题

3

帖子

9

积分

Rank: 1

UID
116908
好友
0
蛮牛币
8
威望
0
注册时间
2015-8-6
在线时间
2 小时
最后登录
2015-8-7
发表于 2015-8-7 17:07:08 | 显示全部楼层
馒头馒头馒头哈哈哈!

回复

使用道具 举报

6蛮牛粉丝
1071/1500
排名
1278
昨日变化

0

主题

17

帖子

1071

积分

Rank: 6Rank: 6Rank: 6

UID
1174
好友
0
蛮牛币
2093
威望
0
注册时间
2013-7-24
在线时间
353 小时
最后登录
2017-5-5
发表于 2015-9-1 15:39:00 | 显示全部楼层
mark一下~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

回复

使用道具 举报

6蛮牛粉丝
1071/1500
排名
1278
昨日变化

0

主题

17

帖子

1071

积分

Rank: 6Rank: 6Rank: 6

UID
1174
好友
0
蛮牛币
2093
威望
0
注册时间
2013-7-24
在线时间
353 小时
最后登录
2017-5-5
发表于 2015-9-1 15:39:50 | 显示全部楼层
我去。。。。已经被禁言了。。。什么都没有了。。。

回复

使用道具 举报

0

主题

2

帖子

2

积分

Rank: 1

UID
124800
好友
0
蛮牛币
12
威望
0
注册时间
2015-10-8
在线时间
0 小时
最后登录
2015-10-8
发表于 2015-10-8 11:20:40 | 显示全部楼层
顶一个 顶一个顶一个{:99:}{:99:}{:99:}{:99:}

回复

使用道具 举报

排名
20122
昨日变化
23

0

主题

38

帖子

66

积分

Rank: 2Rank: 2

UID
165592
好友
0
蛮牛币
6
威望
0
注册时间
2016-10-9
在线时间
14 小时
最后登录
2017-6-26
发表于 2017-1-3 20:40:20 | 显示全部楼层
好东西,谢谢分享

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表