资深制作人详解Unity网游开发相关问题(2)
原型碎片和整合测试环境 上面提到Unity里能驱动一切的MonoBehavior类为原型开发提供了很大的方便,但作为网游项目,任何功能和资源都需要在游戏实际联网运行环境下进行测试。如何在Unity网游项目中平衡原型开发和实际联网测试呢?项目早期基础功能的原型,包括动画系统、图像渲染、角色换装等等,都是可以直接建立单机原型的。用脚本实现基本功能后再加上编辑器脚本和GUI脚本来为测试加上配套工具,然后再交给资源生产部门来添加游戏中的资源。 地下城、任务和战斗系统因为涉及到很多和服务器端的通讯部分,如果需要测试就必须使用一个支持最简单的客户端<->服务端架构的单元测试档案配置。这里所说的档案,就是定义了你全部测试内容数据(或者去哪里找这些数据)的ScriptableObject。包括你用来测试的帐号、角色信息、测试场景、任务或技能配置等等。以主城和地下城为游戏内容载体的《蒸汽之城》里,我们也制作大量测试用的地下城或主城场景作为任务和新功能生产的测试环境。测试环境由美术或策划来制作,然后交给程序部门来测试代码,最后再交给QA测试刚完成的功能。 Unity的强大原型制作能力主要还是应该体现在项目初期。一旦客户端服务端架构形成,可以在稳定的服务器环境上运行游戏以后,开发团队就应该把更多的精力集中在如何能够在实际服务器上快速添加新内容并进行测试。《蒸汽之城》有过三组测试服务器,分别用来进行代码、资源和网页接口的测试;此外对于需要频繁更新调整数据的任务策划和关卡设计人员,他们会使用在个人电脑上架设的服务器,来避免数据更新对其他人测试带来的干扰。 动态下载和读取 对于网页游戏来说,如果不能做到快速启动和最小化下载等待时间,相对于端游的优势就不存在了。《蒸汽之城》里所有美术资源都被拆分成了非常小的零件,这样用户只要下载一次,就可以在运行游戏时根据需要来动态组合,大量减少了资源的重复下载率。而地下城制作的时候会使用工具进行Serilization,游戏时每个地下城只需要下载一份XML表单,然后就会自动从用户已经下载的“资源零件”中寻找需要的部分并进行动态拼装。体验过《蒸汽之城》的用户可以发现任何地下城的读取都不会超过数秒。 接下来说说Unity页游的一大招牌Asset Bundle的使用。Asset Bundle是可以被用户stream下载的资源包,其中可以包含任何Unity Project中的文件。要做到动态下载,游戏中的绝大部分资源就都必须打包成Asset Bundle才能使用。在《蒸汽之城》的开发过程中,我们为大部分资源生产者制作了Unity编辑器内的打包工具,只要选择相应的菜单命令就能自动完成打包和上传到测试服务器上。在以后的项目中我们希望能采用Resource.Load()和Asset Bundle结合的方式,客户端可以分别读取原始的资源文件来使调试更方便,而测试通过后又可以切换成使用Asset Bundle来保证游戏的动态下载正常运行。Asset Bundle还有很多创意用法,大家可以看看官网上Unite2012的相关讲座。 技术导向的团队建设 前面提到了Unity在项目规模和复杂程度从单机到网游的巨大增加,可以说如果对于国内大部分团队,使用Unity制作网游都有着一定的风险和挑战。简单的说,Unity对于单机游戏来说,确实有很多“免费附加值”可以用来快速搭建项目和完善产品功能,但在网游或较大型项目层面,如果没有对于项目质量的较高要求,没有一个好的团队技术氛围和建设思路,选择Unity得到的免费回报和付出的技术建设成本实际是得不偿失的。 假如看官读到这里还对于使用Unity坚定不移,可以看看下面对于如何建设Unity适用型技术团队的一些建议。 但作为网游项目,任何功能和资源都需要在游戏实际联网运行环境下进行测试。如何在Unity网游项目中平衡原型开发和实际联网测试呢?项目早期基础功能的原型,包括动画系统、图像渲染、角色换装等等,都是可以直接建立单机原型的。用脚本实现基本功能后再加上编辑器脚本和GUI脚本来为测试加上配套工具,然后再交给资源生产部门来添加游戏中的资源。 首先,团队项目负责人和技术骨干关注Unity官方发布的信息和社区技术热点讨论是必须的。比如说从Unity4开始就可以在手游上使用动态字体和动态阴影了,而这些消息的发布是在去年夏天的Unite前后,一直关注Unity新技术的团队就可以为项目提前做好特性计划。而且Unite上大量非常有价值的官方和开发者讲座,也能弥补很多官方教程和手册中没有涉及的空白区域,恰好是国内网游团队急需的(比如Asset Bundle使用讲座,Network基础讲座等等)。另外一个非常重要的知识库是Unity的官方论坛(http://forum.unity3d.com )和问答社区(http://answers.unity3d.com ),这两个社区站由官方技术人员和活跃的 Unity用户共同提供内容和维护。配合Google搜索,你几乎可以在这些社区网站上找到任何技术难题的答案,而且还会有各种实际案例的解决过程(因为提问的人很可能和你有着同样的问题)。当然使用这些官方社区必须要有较好的英语阅读能力,这本身就对技术团队的素质有了一定的要求。国内的Unity社区和资讯网站也在越做越好,其中像Unity圣典(http://game.ceeger.com/forum/ )和Unity教程手册系列(http://www.unitymanual.com/ )都是不错的资源入口,建议英文不够熟练的朋友以这些中文网站为索引,慢慢将获取知识的渠道扩展到国外网站。 第二,Unity项目要形成有规律的从原型代码到结构化的重构的循环过程。Unity做原型快,又有很多现成的解决方案,在开发周期紧张的情况下,开发者很容易会不断添加快速完成的功能,最后让项目的结构臃肿不堪,内容扩展到一定程度就会遭遇新功能添加的瓶颈。也就是说,如果没有周期化的重构,项目功能扩展到一定程度后,再添加新功能或调整原有功能,其成本都会成倍上升。而太过频繁的重构又会影响项目进度,如何把握这个度,就要根据团队人员的结构来精心安排了。 第三,Unity大型项目非常适合从早期就规划好完整的工具链,根据不同开发者的技能和使用习惯定制不同的工具。对于个人开发者来说,Unity里有大量的中间件可以满足不同技术水平用户的需要。在网游团队中也可以用相同的思路来提高效率,应该尽量避免只有程序员使用Unity,美术和资源生产都只局限在其他外部工具里的生产环境。另外工具链的功能扩展和完善是一个长期动态的过程,根据项目在不同阶段的状态,对于工具需求的变化是非常正常的。建议团队从一开始就安排足够的人手开发工具,并且将工具维护和需求收集作为日常工作流程的一部分看待。 后4.0时代特性展望 Unity适用型技术团队的一些建议。 但作为网游项目,任何功能和资源都需要在游戏实际联网运行环境下进行测试。如何在Unity网游项目中平衡原型开发和实际联网测试呢?项目早期基础功能的原型,包括动画系统、图像渲染、角色换装等等,都是可以直接建立单机原型的。用脚本实现基本功能后再加上编辑器脚本和GUI脚本来为测试加上配套工具,然后再交给资源生产部门来添加游戏中的资源。 前面说了些经验和建议,最后这里再说说Unity4.0后梦加的开发者还在翘首以待的功能。希望提供给其他开发者作为技术评估的参考,也希望Unity中国的大大们能够看到并帮助改进吧。 第一,Unity4开始全面进入了使用Retargetable(可重定向)动画技术和图形动画状态机的Mecanim的时代。Retargetable动画是游戏业的巨大福音,制作一套动画就可以适用于不同的骨骼和蒙皮模型,对于项目生产来说吸引力非常惊人。不过目前为止这个特性还不能用于页游的动态载入,因为负责动画Clip引用的Animator里不支持任何动态读取,可以说是阻碍页游项目全面升级Mecanim动画系统的最大障碍了。《蒸汽之城》在Unity3.X时代就开发了自定义的脚本FSM(有限状态机)来作为动画控制系统,尽管在Unity4里我们已经能够使用Mecanim的Avatar来运行本地原型里的动画重定向,但因为不能动态读取加载,一直还没有在游戏中正式更换动画系统,非常的遗憾。 第二,Unity4里说好的新GUI系统无限期跳票。GUI的开发对于任何项目来说都意味着很大的挑战和工作量,《蒸汽之城》的GUI使用的是Unity自带的GUI系统加上一套自己开发的设计工具来制作。在GUI的设计和图像生产方面已经做到了高效率,但是调整GUI功能时代码的修改量还是太大了。尽管很多人在官方新GUI系统跳票之后已经转投了第三方中间件的解决方案,但作为有自己工具开发组,对项目扩展性要求很高的网游团队,始终还是希望能够拿到官方的解决方案来定制,而不是依赖于某个随时可能停止维护的第三方插件。由于Unity4.0目前GUI系统的悬而未决,我们在配套GUI系统的优化方面也被迫遭遇了停滞。很希望这个系统能够最终尘埃落定! 第三,Timeline功能神龙见首不见尾,而且更糟糕的是Unity似乎已经不再维护以前的Animation View了。Unity4里增加了完整的新动画系统Mecanim,但对于一些简单的UI或特效动画,很多时候开发者还是希望能够在Unity里快速调整和制作。Animation View在Unity4里效率下降,子物体动画曲线的显示也有些奇怪。而集更多功能于一身的Timeline在Unite2012上亮相之后却迟迟不见更新的消息。Mecanim是一个专门处理骨骼动画、动作捕捉、动画分层和融合的专业系统,但除此之外一个有时间线和关键帧的编辑器还是对任何游戏项目都非常有用的,个人认为Unity团队不应忽略这方面的需求。 脚本来为测试加上配套工具,然后再交给资源生产部门来添加游戏中的资源。 结语 制作网游或有联网功能的手游本身就是艰巨的工程,Unity让表面的一切看起来更美好和更容易,但不可否认广泛获得成功的Unity项目还是以相对简单的手机游戏为主。在网游制作方面开发者能参考的知识和信息还是太少了。梦加团队从零开始一点点的把Unity网游制作各个谜题拼起来,到了今天终于有了即将上线的高素质的页游《蒸汽之城》。希望我们这里总结的经验能够帮助国内业界的朋友们,我们的解决方案也有很多不足的地方,希望国内开发者们能够多多分享,促进Unity和网游开发技术的交流!《蒸汽之城》的中文本地化版本也在进展中,预计暑期就会跟大家见面!
|
作者:秩名 2013-03-08
- ·AR的高端玩法:Magic Leap新专利可治疗色盲 2017-01-22
- ·纪念碑谷开启黑科技 上线AR功能可浏览奇幻建筑 2016-12-13
- ·Rift、 Vive和PS VR对比:哪个更划算 2016-10-24
- ·索尼证实计划推出高端PlayStation 4 将支持4K 2016-06-12
- ·华硕新品发布会召开 VR的较量展前就已开启 2016-05-31