易地掌控And6jiroid设备及应用程序的奥秘

来源:互联网 发布:网页游戏源码架设教程 编辑:程序博客网 时间:2024/04/30 01:13

请看上图,谷歌这样描述:“让Android能够在各类工作场所中应用。”特征的话:手机上会有两个版本的应用,一个是用户私人,另外用于工作,将数据实现分离。这应该是企业级市场的又一发力点。

结合相关信息,估计Android M和Work版本会结合,但应用是分离的。

  • Google Cloud Messaging 3.0

一个谷歌推送信息平台的新版本,至于干嘛的还真不知道……

  • Voice Access

谷歌想要让用户通过语音。

似乎目标受众对准的是驾驶车辆的司机,对于开发者而言,意味着的是一大堆的代码袭来,放心,谷歌都为你准备好了。

  • Real-time satellite imaging of Earth

谷歌去年斥资5亿美元收购了卫星图像服务公司Skybox。Skybox计划在2018年发送24课图像卫星到太空,不过该计划是在被谷歌收购之前指定的,如今肯定会有所更改,或许是加快进程。

有这样一个环节:"The Earth in real time",这样描述:通过Skybox了解我们正建立的商业以及获得新的数据集的预览。

  • Multi-screen Chromecast games = Chromecast 2?

(编者注:关于Chromecast,你可以先看下我此前的这篇文章,《谷歌新产品Chromecast:一夜之间价格从35美元飙至100美元》)

在会议环节Designing games for Google Cast中将探讨手机和电视等多屏上的体验,并适应如今现有的游戏模式,带来全新的多屏互动形式。另一个环节会讨论Android和iOS手机设备作为一个游戏控制器实现一个新的互动模式,利用的还是Chromecast或其他的Cast设备。在谷歌自己的Cast上实现游戏的概念很新, Gigaom此前对谷歌高管的采访中倒是提及了一点,称会加强小屏幕的体验,以及Chromecast 2也在计划中。

一切的信息显示Chromecast 2真的要来了!(编者注:国内因为那啥该服务用不了哈)

  • ATAP is still crazy and making a wearable

ATAP与Google X部门齐名。

谷歌模块智能手机和3D感应平板电脑背后的开发团队ATAP将可能会推一款新的可穿戴设备。会议描述中有这样的一段话,“我们的目标是:打破电子可穿戴设备小尺寸显示屏与丰富设备与用户之间交流方式之间的矛盾。”另外,该团队也会带来Project Tango进展,不管是手机还是平板都会加装一个3D传感器(类似Kinect设备那样)。与此同时,模块化手机的系统Project Ara也将是一个值得关注的地方。最后,该部门此前甚至还提议要推广它的全新电子纹身技术,用电子纹身实现更便捷的手机解锁。

不管能不能上市,相信ATAP会有一大波新奇有趣的东西展示。

  • Polymer 1.0

谷歌的UI工具包,让设计出的网页看起来就像是一个手机应用。

目前Polymer最新版本为0.8,但会议有一个环节叫做"Hands-on with Polymer 1.0",可以确定1.0会在这次大会上发布。

此外,还有一个环节:“Polymer and modern web APIs: In production at Google scale”,“让我们一起来看看Google的设计团队在google.com上发布的用Polymer和最新APIs平台开发出的东西吧:网页动画、用户下线时呈现的效果、推送信息和独特的设计等。”

除了上面这些大的改变,还有很多与测试Android应用相关的讨论,或许谷歌会释放一些新的工具。另外,谷歌也在发力虚拟现实设备,试图让Android成为一个虚拟现实游戏平台,已经有款Google Cardboard设备。此外还有一些材料设计的讨论,都将会在这次大会上一一呈现。

提到MMOARPG游戏,大家首先想到的就是体量大。以《苍穹变》为例,仅客户端的代码厚度就多达40万行以上,开发团队也从最早的十几人逐渐提高到了50人。MMOARPG游戏有一个特点——实时性比较突出,比如我正在做一个任务,说不定突然就会有几个玩家身着不同的装备,骑着不同的坐骑,拿着不同的武器出现,这瞬间对你的电脑性能要求非常高,不管是CPU、GPU,甚至包括网络带宽都会产生瓶颈,如果处理不好就会造成卡顿或崩溃。

因此,我们选择用Unity作为开发引擎,优点包括以下几个方面。

Unity是使用高级语言编写的项目,包括Unity在内的所有引擎都是用C++开发的。

出于兼容性和运行效率方面的考虑,很多引擎要求客户端也用C++来开发,这对前端程序员的要求非常高。因为相对于C#语言来说,C++是一种比较难掌握的语言。C++的程序员如果写出不符合要求的代码,崩溃之后不好查问题,有Dump文件都没法定位。而C#则无需开发者管理内存对象,统一由Unity进行回收。一般来说,如果单个文件的大小超过4000行,会被认为代码可读性变差。但Unity可以很方便地通过组件式方法把一些常用的功能分开,整个精灵类只要管理好这些组件进行协调合作就可以了。

作为一款较为成熟的游戏开发引擎,Unity几乎包含了传统开发3D ARPG游戏常用元素最好的解决方案,不管是从地形上,还是动画和UI上都能找到你所需要的模块。

Unity的跨界合作思想推动了插件市场,这在很大程度上缩短了游戏开发的时间,因为它使一些基础的工作变得模块化,一些成熟稳定的插件还可以有效降低成本。NGUI插件就是个例子,如果让我们自己的团队去开发UI引擎的话,造成的时间浪费是不可想象的。

当然,这样一款结构庞大的引擎,也存在一些缺点,其中最大的一个问题就是内存不易管控。上文说到C++是自己管理内存的,只要管理得好就不会出问题。而C#则是由Unity来管理内存对象的,如果写代码时不注意,某一个对象在它没有用的时候仍被引用,那么Unity在回收内存对象时不会对其进行回收。我们是从2.5版本时开始使用Unity的,那个时候以及之前的版本还不够稳定,出现问题也不好解决。Unity会经常崩溃,但崩溃原因却无从查起,影响了开发进度。

另一个问题在于,刚才提到了组件结构,如果只是几个组件还比较好管理。组件多了之后,每个组件都有访问当前对象的权限,这时如果同时调用组件肯定会产生冲突,一定要基于一个很好的架构支持,才能有效避免组件之间的冲突。

最后,我们知道Unity能输出Web版应用,这是Unity非常强大的功能,但再怎样,Unity也避免不了插件的问题。除此之外,Web版还存在缓存、更新等问题,几乎任何一个Unity开发的Web版游戏都要求用户下载微端,大家在决定开发Web应用或游戏时,需要考虑到这一点。

MMOARPG游戏的团队管理

开发这样一款游戏,团队协作无疑是非常重要的,这一过程也免不了会遇到一些问题,在此我给出几点建议。

要切记在合作中会相互产生影响,比如某个程序员不小心将自己编写的错误代码提交到其他版本服务器上,这很可能造成别人更新后进不去游戏,进行中的工作也就被打断。这需要建立一套严格的自检制度,在提交代码和资源时,一定要进行严格的自检查,确保没有问题后再上传。我的建议是,要做好版本回退的工作,一旦版本出现问题,可以退回到上一个版本,保证其他人员可以正常工作。

团队要重视错误日志。首先你要对Unity输出错误日志进行拦截并显示出来,在内网开发时,如果出现问题,QA很快会告诉你,除非你的日志输出不够明确。在开发《苍穹变》时,QA帮我们的程序员找出了很多代码上的错误。但一旦版本发布到外网,出现问题时,玩家是不会帮你提交Bug的,这势必会造成玩家的流失。所以我们要建立一套日志上传系统,万一出现错误信息,可以将它上传到服务器上,让程序员来修正。

分工明确,责任到人。某些工作可以几个人同时完成,这时要指定好责任人,一旦出现问题,QA可以第一时间找到责任人,让他来修正,避免出现扯皮的情况。

重视培训。一个团队能否坚持培训,并把培训做好是团队是否成熟的标志。培训表面上看跟开发游戏没有太大关系,而且耗时耗力。但实际上,它却可以让新入职的员工避免前人犯过的错误,也可以让培训者对自己教授的内容有更深刻的体会和认识。这总体而言是有助于加快项目开发进度的。

最后是重视代码的可读性,我提醒程序员,写代码时要牢记,你的代码不是给自己看的,而是给整个团队看的。如果你写得乱,过段时间自己都看不明白,更何况其他人。万一别人接手你做的模块,看懂这样的代码比重写时间都长,这是对资源很大的浪费,开发者需要引起重视。


图1  天神互动内网发布流程图

除了上面几点需要注意外,建立一套快速开发的流程也十分重要,我认为一套扁平式的开发流程可以很有效地控制沟通节点。如图1所示,这是我们内网的发布流程图,任何一个团队成员,不管是程序员还是策划,都有把自己的工作内容提交、发布、出版的权限,经过严格的自检查,就能把自己完成的功能发布成一个内网版本。比如一位美术做了一个特效,检查无误后,可以将这个特效替换内网版本本地资源文件,进游戏后就可以确认资源是否正确,如果没有问题即可正式提交。如果他不确定是否有问题,则可以请QA来协助测试,QA会对整个内网版本进行掌控,并将出现的问题反馈给相应的工作人员。

Unity是一个集成的大开发环境,这个环境与我上面这一思路是有冲突的,我不认为大集成开发环境适合团队协同合作。我们的特效、角色、场景等编辑器都是单独拆分的,包括客户端、版本发布模块等访问一个公共资源目录,美术、程序、策划输出资源到这个公共目录,版本发布模块从这个目录取资源然后再发布。在《苍穹变》,Unity项目的客户端分为逻辑开发组和引擎支持组,成长线、业务逻辑由逻辑开发组负责,优化、工具编写、维护网页版插件、Launch等以及外围功能开发工作则由引擎组来负责。其实他们的工作都是属于客户端,但在职能上差别却很大。像《苍穹变》这样的游戏有170多个窗口,每个窗口都需要逻辑代码支撑,本身工作量就非常繁重。如果这几个程序员在书写业务逻辑时,还要制定发布流程及其他一些工作,可能根本顾不过来。所以我们专门设立一个引擎组来进行库底层架构支持,还有一些性能优化模式,以及技术创新加入到游戏中来,这些做法都是为了能更好地分工。

作为一款微端游,肯定面临一些网页上的问题,我相信这些问题其他使用Unity3D开发的应用也会遇到。

关于插件的下载和更新。2013年,Unity插件与国内服务商开始合作,现在下载插件基本上不是问题,但每次更新插件,因为服务器不在国内,会经常出错,导致很多玩家流失。为了解决这一问题,我们在网页里加入了一个计时器,在进入游戏超时后会由代码来刷新网页,很大程度上解决了更新的问题。后来我们干脆使用了自己的插件,从而在根本上解决了以上问题。

关于优化。我认为游戏开发者对于性能优化这块不能忽略,不管未来硬件有多大提升,性能优化的话题永远都不会过时。如何做好性能优化?一句话:够用就行。如果512的贴图能用就不要用1024的,使用变量的时候Byte能用就不要用Short。比如大家都比较困惑的贴图问题,到底是大图好还是小图好?根据我们的经验,在正常视角下,一味追求大图不但不能提升画面效果(显卡会将其自动缩小),反而会降低GPU运算能力和画面品质。在微端游的开发上,有些功能或资源,如果觉得有没有都行,那最好是砍掉。这方面还要做好资源的复用,比如你做了一匹狼,把这个狼放大就是大狼,缩小就是小狼,换白色贴就是白狼,换黑色贴就是黑狼,这样可以有效地节约资源。此外,贴图要做成2的幂次方,尽量使用压缩的贴图格式。还有就是Update函数每一帧都去调用,GameObject.Find是一个公认的比较费的方法,就不要在这个函数里使用,建议把一些真正需要缓存的数据提前缓存起来。还有一些关于场景的优化方案,作为3D游戏,由于远小近大的特性,一定要启用LOD和MipMap。如果是全3D的应用,建议启用遮挡剔除,这对于减少渲染压力还是很有效果的。从渲染和引擎的工作原理来说,尽量对场景物件通过Shader进行从近到远排序,我不太建议使用双面材质,尽管它看起来省面,却会影响光照,如果使用不当,比如一个球形的双面材质,里面可能永远看不见,但显卡依然要对内侧进行渲染处理。

http://imgur.com/tdLF6vw
http://imgur.com/zK8qhtU
http://imgur.com/9dTn3wL
http://imgur.com/5086nB9
http://imgur.com/yiU01Pi
http://imgur.com/0Oo6DzH
http://imgur.com/1HfzOh7
http://imgur.com/u1pPrEQ
http://imgur.com/2ZnGCaW
http://imgur.com/M7aVa2k
http://imgur.com/8s7s1Ok
http://imgur.com/UhrisWW
http://imgur.com/ntqTPb5
http://imgur.com/OULlSoT
http://imgur.com/0vIwof8
http://imgur.com/xc9GdRX
http://imgur.com/lvbjWXh
http://imgur.com/sBlGa3J
http://imgur.com/Z7vtYJx
http://imgur.com/eV60mcX
http://imgur.com/YtOe0Ce
http://imgur.com/Jex7kOM
http://imgur.com/JieLXHo
http://imgur.com/q176V61
http://imgur.com/AaQJm8O
http://imgur.com/9bISlsY
http://imgur.com/H36Kw3r
http://imgur.com/vDSKVhc
http://imgur.com/ty2Bdb2
http://imgur.com/jD2Yp22
http://imgur.com/HitgKm8
http://imgur.com/UnTmGTe
http://imgur.com/Wg6awJs
http://imgur.com/WIkUzF4
http://imgur.com/oUvsq9U
http://imgur.com/Hmgj1kr
http://imgur.com/haAjd0F
http://imgur.com/x4Gi5mv
http://imgur.com/2RL3khF
http://imgur.com/HAjpxTm
http://imgur.com/xcNo2WG
http://imgur.com/Ggr8ASD
http://imgur.com/UrRZbAN
http://imgur.com/eRi5ZRm
http://imgur.com/lSw5vpJ
http://imgur.com/STwZN5Q
http://imgur.com/46iaslC
http://imgur.com/2OJWDsi
http://imgur.com/vhhCRKF
http://imgur.com/ru7CRuG
http://imgur.com/ePX9iZx
http://imgur.com/Kmffhoz
http://imgur.com/24J5VVT
http://imgur.com/s9Tq6SD
http://imgur.com/3bo7v12
http://imgur.com/9WC81Zp
http://imgur.com/BAMJo0M
http://imgur.com/Lm8PtM9
http://imgur.com/9t18lrw
http://imgur.com/ZSgDwqK
http://imgur.com/tg02XEd
http://imgur.com/4pt5hRq
http://imgur.com/YtbCHAf
http://imgur.com/CV3BfUb
http://imgur.com/N9ddD0f
http://imgur.com/G6yH3NE
http://imgur.com/o0ZFXqG
http://imgur.com/r07vDv5
http://imgur.com/ypux4pl
http://imgur.com/WnyH8Rp
http://imgur.com/YaA4g1m
http://imgur.com/NOYe5wD
http://imgur.com/ROjZ0b8
http://imgur.com/wt6bj6e
http://imgur.com/cMd8RgJ
http://imgur.com/ZzIdrM6
http://imgur.com/muEAlxI
http://imgur.com/2mrgAyQ
http://imgur.com/wrO4q05
http://imgur.com/oMPXzyU
http://imgur.com/5RCEdcp
http://imgur.com/45n4dlJ
http://imgur.com/QfRZjYo
http://imgur.com/tw5ba7z
http://imgur.com/7P7IX7S
http://imgur.com/aZFHWa0
http://imgur.com/imPyCXI
http://imgur.com/7p6uDb0
http://imgur.com/WuzPNja
http://imgur.com/T1SMaoU
http://imgur.com/5xfJ5my
http://imgur.com/4siyWT8
http://imgur.com/8DVjlQ2
http://imgur.com/HUeBXiO
http://imgur.com/UvPTQfj
http://imgur.com/lt8RewD
http://imgur.com/zZBr2L8
http://imgur.com/5rIH25w
http://imgur.com/sIifPmm
http://imgur.com/Nb0TZx5
http://imgur.com/805T6MA
http://imgur.com/Q1wWe83
http://imgur.com/qzFF41o
http://imgur.com/H49hSHt
http://imgur.com/Zcl3O9Z
http://imgur.com/xht6tjg
http://imgur.com/Esnk4dA
http://imgur.com/Ns6Rwan
http://imgur.com/ZmpDac6
http://imgur.com/fRvLce9
http://imgur.com/nnoRT5q
http://imgur.com/fxrSiI0
http://imgur.com/SRFnC73
http://imgur.com/LaazeEq
http://imgur.com/UAXaaak
http://imgur.com/ILCO1nJ
http://imgur.com/u5orf8C
http://imgur.com/jRCQjGm
http://imgur.com/rrGR1lD
http://imgur.com/tGnprFz
http://imgur.com/uVmBBd8
http://imgur.com/NzBri4P
http://imgur.com/lep9EiN
http://imgur.com/TS1nODy
http://imgur.com/C5vv9V9
http://imgur.com/qhPl37P
http://imgur.com/f3eI3Ij
http://imgur.com/iCxz1dD
http://imgur.com/Lq2qu1C
http://imgur.com/TA4AD9K
http://imgur.com/lTIbEWv
http://imgur.com/P9p9Y7Y
http://imgur.com/5KV2dsP
http://imgur.com/elKDs0E
http://imgur.com/gO4J2oU
http://imgur.com/ho3yQqw
http://imgur.com/86B2gtc
http://imgur.com/OwqqnOm
http://imgur.com/ebkDkDk
http://imgur.com/Gla6nYY
http://imgur.com/hBH4mbZ
http://imgur.com/4F65ugU
http://imgur.com/NDE064F
http://imgur.com/YC9xyB6
http://imgur.com/qOuAFaL
http://imgur.com/Y6SvIBn
http://imgur.com/4HZKe8z
http://imgur.com/QGxovd1
http://imgur.com/SQjUF6S
http://imgur.com/B8QW7eI
http://imgur.com/0ouu3wP
http://imgur.com/wVFDd0g
http://imgur.com/iJ7hq53
http://imgur.com/Vx2Cr5a
http://imgur.com/p9KxzvC
http://imgur.com/3fodfVw
http://imgur.com/2rGXoHs
http://imgur.com/VpeZGvH
http://imgur.com/p48fsh3
http://imgur.com/VzRNUEl
http://imgur.com/228eNTA
http://imgur.com/bA5sz45
http://imgur.com/mXAaxoB
http://imgur.com/dY5ZXpE
http://imgur.com/h8VHxjJ
http://imgur.com/rREY2pz
http://imgur.com/GEO7HTZ
http://imgur.com/iND8H5B
http://imgur.com/cbldHaV
http://imgur.com/GMNYBUH
http://imgur.com/b5YxePU
http://imgur.com/iKxrQmU
http://imgur.com/v8hRCPW
http://imgur.com/DdPuVr6
http://imgur.com/OTI6kwG
http://imgur.com/PfRjQqQ
http://imgur.com/kzDl71s
http://imgur.com/QuzfYK6
http://imgur.com/hLWRXSY
http://imgur.com/7CTsZLm
http://imgur.com/ziI2qQV
http://imgur.com/MdMaXZF
http://imgur.com/OgVTIvu
http://imgur.com/KB2eDF3
http://imgur.com/Uj3AAsr
http://imgur.com/m7yKwp1
http://imgur.com/Qn1tzRL
http://imgur.com/zcZs72o
http://imgur.com/YzAaE0g
http://imgur.com/AUrJR0F
http://imgur.com/SesVTav
http://imgur.com/zlZ6o5l
http://imgur.com/lciWO2t
http://imgur.com/m4UAavO
http://imgur.com/ZREPlJg
http://imgur.com/9bwQSOM
http://imgur.com/et3Fi5B
http://imgur.com/awBmr2C
http://imgur.com/H5RHng6
http://imgur.com/cf24LY2
http://imgur.com/sQqoHSj
http://imgur.com/r5dFI2B
http://imgur.com/gys7ZCO
http://imgur.com/N8WCHu5
http://imgur.com/iumdOch
http://imgur.com/7DLX1LC
http://imgur.com/qDum6AE
http://imgur.com/VcAC5w3
http://imgur.com/Lsc0iOd
http://imgur.com/7nC4tCM
http://imgur.com/gAvTj2b
http://imgur.com/qMvS0Jy
http://imgur.com/56fVHJj
http://imgur.com/yLpXgJG
http://imgur.com/eMUVR6X
http://imgur.com/ekZKhq2
http://imgur.com/KWuxpk0
http://imgur.com/K0kL3hK
http://imgur.com/kGxFHi0
http://imgur.com/hgBTL9l
http://imgur.com/1GLUj49
http://imgur.com/0XpZA7U
http://imgur.com/A42Geaj
http://imgur.com/0OVwLOK
http://imgur.com/lKTX7zv
http://imgur.com/ztwgFtX
http://imgur.com/0UrkI1X
http://imgur.com/hDBDsjS
http://imgur.com/tX8HgBj
http://imgur.com/LPY6Yrt
http://imgur.com/L9RMG87
http://imgur.com/qfOXV9q
http://imgur.com/dA7qvaC
http://imgur.com/zkG134v
http://imgur.com/DN0YC4J
http://imgur.com/LLvhYEC
http://imgur.com/RotjC33
http://imgur.com/sMZrYy4
http://imgur.com/34Trheo
http://imgur.com/4z4tIno
http://imgur.com/tsDRaYE
http://imgur.com/qOum2yo
http://imgur.com/lHOtm79
http://imgur.com/20oLG44
http://imgur.com/mdvnljt
http://imgur.com/bJzGT2b
http://imgur.com/QYOtABy
http://imgur.com/SnChiXq
http://imgur.com/aTUMcNz
http://imgur.com/9ZflwtJ
http://imgur.com/io2Pz6i
http://imgur.com/Xwgw8nh
http://imgur.com/K2GbHBx
http://imgur.com/Pvxsi2N
http://imgur.com/yX2kkMP
http://imgur.com/slfnTJN
http://imgur.com/rEFPFRQ
http://imgur.com/4mEQHrH
http://imgur.com/1LgITf0
http://imgur.com/Il4MOc3
http://imgur.com/F2Y3ge4
http://imgur.com/nEnAQva
http://imgur.com/wIyjsmH
http://imgur.com/dYxjyUD
http://imgur.com/kTO9xkr
http://imgur.com/4RWx2Nq
http://imgur.com/LZx3Rpv
http://imgur.com/RHBuDbq
http://imgur.com/TnZWaD0
http://imgur.com/eEOKrvg
http://imgur.com/8VOQanp
http://imgur.com/mP5oE3T
http://imgur.com/7k3Iple
http://imgur.com/RiZFRr4
http://imgur.com/ydm0mcq
http://imgur.com/h831MkE
http://imgur.com/yW5DDK0
http://imgur.com/GpauJiF
http://imgur.com/wxGq7pV
http://imgur.com/PIjh9ET
http://imgur.com/yPnxEdy
http://imgur.com/zuusyz8
http://imgur.com/o0MRpr7
http://imgur.com/d3Mz5gk
http://imgur.com/Ii0EUm9
http://imgur.com/62WPwQA
http://imgur.com/AkCBipM
http://imgur.com/V4BzDtc
http://imgur.com/osTqSPe
http://imgur.com/ydapS0y
http://imgur.com/OBNBNhX
http://imgur.com/jVwb4h1
http://imgur.com/hFU7pMU
http://imgur.com/RIvbL0X
http://imgur.com/bHKcOZM
http://imgur.com/veCPUQY
http://imgur.com/jYz5Pav
http://imgur.com/jMDRdLV
http://imgur.com/IxLHVHS
http://imgur.com/FtaKmiw
http://imgur.com/15bHvbh
http://imgur.com/LelvM7h
http://imgur.com/HaPkf53
http://imgur.com/MFYmwIn
http://imgur.com/CwAuC8u
http://imgur.com/Z2435US
http://imgur.com/6qu8Vx1
http://imgur.com/pWS07XF
http://imgur.com/HWOyMVr
http://imgur.com/ykE2MUA
http://imgur.com/owFtW2m
http://imgur.com/HMyslXh

关于特效,只使用一个粒子的特效可以用模型片来替代,这样做可以很大程度上节约内存。我们默认放一个粒子到场景中,默认最大粒子数是100个,这个粒子需要多少片就设定成多少,多了也是浪费。在动画方面,用Unity进行动画编辑实际上很占内存,所以还是建议通过脚本来实现。 

关于编写代码。首先要避免直接持有对象的引用。此外,if语句对于else语句的处理要格外重视,大多数的Bug都是因为else没有处理好导致的。函数名及变量名尽可能使用一套便于查询和理解的命名法来命名,函数不要中间Return,最后单个类不要太大,这会影响代码的可读性。

要运用换装系统,如果玩家已经有了一款装备,该装备还有外显,玩家会很乐意为此付费,毕竟他可以拿来炫耀。而且换装也是一种能实现游戏资源复用的有效方法,既丰富了场景也节约资源。换装分为蒙皮换装和非蒙皮换装,蒙皮换装是根据骨骼信息,从角色身上找到相应的骨骼,然后把蒙皮绑在骨骼上,再把既有的蒙皮删掉。非蒙皮换装是指对于武器等一些挂件,把新的资源模型挂载到要绑定的骨骼上。《苍穹变》是一款强调动态加载的游戏,不是一次性将游戏场景全部加载出来,而是动态性地加载。换装系统与动态加载技术不谋而合,可以说是双赢的举措。此外为了换装,我们把蒙皮换了好几个组件,会增加一些Draw Call,如果换装完成后把这些模型进行合并,可以有效降低Draw Call。

关于场景资源管理,如上文所说,场景要分批次加载,因为现在的玩家耐心越来越差。要做好这一点就需要分清主次,做好分级处理。比如地形是首先要加载的,其次还有天空盒,最后再加载一些零碎的小物件。

物理效果可以提升用户体验,增加游戏打击感,但由于网络带宽及服务器同步的限制,只能在不影响到同步的情况下使用,比如角色死亡,头发、衣袖的摆动效果等。但物理引擎比较耗费资源,建议酌情使用。


0 0
原创粉丝点击