为什么现在游戏蛮牛 unityunity

同样是用 C# 做游戏,为什么 XNA 非常失败,Unity 却成功了? - 知乎153被浏览<strong class="NumberBoard-itemValue" title="4分享邀请回答2710 条评论分享收藏感谢收起Unity秘籍:来,一起让臃肿的游戏瘦个身
为什么我的游戏占用了那么多的存储空间?
为什么我的手机发热跟个火山一样?
为什么我的游戏加载那么慢?
为什么我的游戏画面已经调到了最低特效,它还是这么卡?
我该怎样缩小我的游戏所需要的存储空间?
我们来设想一个这样的情形:
你刚刚发布了一款新游戏,恰好,你最大的竞争对手打算跟你扳扳手腕(最麻烦的地方就是他对你有着非常大的不满)。
你的游戏大小50MB,而他的仅仅需要20MB。
一周之后,你发现他的游戏凭着十来万的下载量在应用市场上混的是风生水起,再看看你的只有少的可怜的几百下载量(即使你认为你的游戏有着更好的游戏体验与游戏玩法)。
记住我的这句话:
手游市场是一个疯狂的、竞争十分激烈的地方。如果你不控制游戏的大小,你很可能被立即打的体无完肤。没有哪个用户喜欢等待,也不喜欢浪费太多的流量(对于这种情况,我更希望将RIP添加进你的游戏当中)。等等,你还没有必要因此而垂头丧气。RIP并不总是意味着REST IN PEACE,有时它也代表着RETURN IF POSSIBLE。
所以,让我们来制定一个翻盘计划。
我同意你的观点,但是我怎么才能缩减游戏的大小呢?
有很多东西值得我们去关注,但是首先让我们打开Editor Log(编辑记录), 看一看到底是什么占了大量的空间。
如果你不知道怎么打开EditorLog,请参阅如下网页:
http://docs.unity3d.com/Manual/LogFiles.html#sthash.XUDBcSzL.dpuf
在Unity官方用户手册中,有如下的一段话:
“日志提供哪些资源占用空间,并且按比例将资源一一列出。一般来说,像纹理、音乐、视频这样的文件需要占用大量的存储空间,而对于脚本、关卡、着色器(shader)这样的东西来说,所需的空间非常少。”
由下图我们可以很容易地理解上面的话:
该数据是从我们一款已开发完成的2D游戏当中真实采集而来。正如上图所示,Textures/Graphics(纹理图像)占用了游戏当中最多的空间。
因此,GraphicsCompression(图像压缩)应当成为缩减大小的重中之重。
OK,这确实很明显,但是我应该对它做些什么呢?
很幸运的是,现在有一个名叫Texture Compression(纹理压缩)的概念
那么TextureCompression到底是什么意思呢?
维基百科中对其有着如下定义:
●“Texture Compression是一种特殊的图像压缩算法,这种算法是专门为在3D计算机图像渲染系统当中进行纹理地图的存储而设计的。与传统图像压缩算法所不同的是,texture Compression算法最适应随机存取。”
这些都是什么鬼?别担心,我以前也跟你一样的感受:)
一些易于理解的定义:
● 常用的如PNG与JPG之类的图像压缩格式(这也是我们在游戏当中经常使用的格式)不可以直接被GPU所解码。因此在把他们拷贝至GPU内存之前,首先需要解压。而解压这些纹理需要时间,加载时间也随之变长了。
● 有一个更好的选择是选用Hardware Accelerated Formats(硬件加速格式)。这种格式确实有损耗,但其优势在于这种格式是专门为GPU所设计的。
● 这样一来便意味着不需要在拷贝之前进行解压,玩家的加载时间也因此降低,说不定性能还会进一步得到提升,而这些都要归功于Hardware Optimizations(硬件优化)。
● 当前有很多种压缩格式,如ETC1, ASTC, DXT1, DXT5, PVRTC, ATC等等。这种将普通压缩格式转变为硬件加速格式的过程,我们称之为Texture compression(纹理压缩)。现在是不是很容易就明白了?:D
● 我找到了一个有助于你理解纹理压缩与其细节重要性的网页(在下面贴出来了),有兴趣再去看一看吧:
http://renderingpipeline.com/2012/07/texture-compression/
基本上硬件加速格式有如下好处:
提升性能,延长电池寿命,减少设备发热量,减少带宽需求,更少的能量消耗。
毫无疑问的是这对你我来说都很重要。同时也希望你的对手已经对这轮反攻做好了准备,嘿嘿:)
啊,原来纹理压缩就是答案啊,那我该用哪种压缩方式呢?
● 呃,这要取决于你比较关注哪一类设备。并不是所有的设备都支持所有的硬件压缩格式。
● 让我们先看一看下表,了解一下不同设备所支持的压缩格式。
有两种类型的硬件加速格式,分别是standard与proprietary。
Standard格式如下:
Proprietary格式如下:
让我们先举个例子,这样就可以更容易理解压缩以及它是如何实际运行的。就拿我经常用的UI来看吧。
我的UI就和下图类似:
我会只关注背景图像。在选择背景图像上,我会把图像弄成下面这个样子(在inspector中打开)。
这是默认的尺寸(未压缩,设置为真彩):
我们可以看见这个图片的大小是8M。
Inspector中显示的这个图片的设置是这样的:
现在将TextureType设置成Advanced,GenerateMip Maps取消勾选,勾选上Override for Android(这一操作会允许自定义压缩),再把Format选择成RGBA Compressed DXT5。
再回头看一看刚才的图片变成什么样了:
图像的大小从8M变成了2M。
这是不是看起来挺厉害的?下面再试一试ETC Compression。
将格式选择为RGBCompressed ETC 4 bits:
图片又变成了1M,够酷的吧!
如果你对减少文件大小很感兴趣,可以看一看这个:
●http://docs.unity3d.com/Manual/ReducingFilesize.html
图像存储大小的计算规则是宽*长*像素深度(bpp),像素深度指的是每个像素所占的字节。
这样一来你就可以用这种方法来对你的目标设备进行压缩格式的选取了。
单设备支持怎么能行?我想让所有的设备都支持我的游戏!!
● 很好,我们没理由放弃哪怕只有1%的市场份额!
● 幸运的是,我们不必太过于担心iOS系统的设备,因为PVRTC这种纹理压缩格式可以在所有装有iOS系统的设备上使用,比如iPhone,iPod Touch,还有iPad。
● 因此,对于iOS来说只需要压缩成PVRTC格式就行了。
那么对于安卓设备怎么办呢?
不同的安卓设备,它们的GPU都不一样。
在Unity用户手册当中有着这样的描述:
● “虽然安卓不支持DXT/PVRTC/ATC纹理,如果特定的设备不支持这些方法的话,Unity会将这些纹理在运行时解压至RGB(A)格式。这样一来会影响GPU的渲染速度。”
举个例子来说明一下,如果压缩成了DXT5格式,然后在一个不支持的设备上运行,那么纹理就不会解压成RGBA 32位,并且这些文件(已解压的)会和没解压的一起存储在内存当中。
在这种情况下,不仅浪费了解压纹理的时间,还由于多存储了一个已解压的文件而浪费了空间。这毫无疑问会在渲染性能上起到一个非常消极的作用。
因此该问题的解决方法就是使用ETC1格式(这是一种标准格式)来替代它们,所有的GPU都支持这种格式。这难道不是件非常容易的事情?
但是有一点需要注意一下。这并不是每个地方都没问题,就比如ETC1不支持alpha通道。很多游戏的纹理与2D sprite都是用alpha的,现在该怎么做呢?
● Unity同行给了我们两种方案:
就我个人而言,我更倾向于第二种方法,但是一切还是要以实际情况进行考虑。
“是的,你现在可以开始行动了!非常明确的是,现在的游戏画面有着足够的能量来镇住你的这款游戏。图形的优化是必须的,除此之外,别无出路。”
“关于画质与游戏大小的权衡也差不多就这样了,这还是主要取决于你如何机智地进行图像优化。”
“只有知识才会带来才智,我希望我在本文当中为大家起到了抛砖引玉的作用。话也说的差不多了,不要忘了给你的对手送上一捧洁白的花朵哦:)”
“如果你对本话题有着更好的见解想与我们分享,或者是有什么疑问,都可以在下面留言,我会在看见的第一时间回复。可不要忘了继续关注,后面还有更多的干货在路上:D”
有很不错的游戏开发点子?那你还在等什么呢!联系我们,我们是印度最好的Unity 3D游戏开发公司之一,如果你的点子不错,那么将会很快被实现。
【版权声明】
原文作者未做权利声明,视为共享知识产权进入公共领域,自动获得授权。
腾讯游戏开发者平台
长按,识别二维码,加关注
经验分享丨项目实践
项目孵化丨渠道发行
做有梦想的游戏人
-GAME AND DREAM-
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
专业游戏开发社区
服务广大游戏开发者,为开发者们解决游戏开发中的难题
今日搜狐热点从目前是技术来看 VR 游戏开发,是应该用 Unity 还是 UE4 好? - 知乎<strong class="NumberBoard-itemValue" title="被浏览<strong class="NumberBoard-itemValue" title="3,531分享邀请回答49483 条评论分享收藏感谢收起93 条评论分享收藏感谢收起我用unity做了游戏,怎么发布,该在哪里发布?_百度知道
我用unity做了游戏,怎么发布,该在哪里发布?
您的回答被采纳后将获得:
系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)
我有更好的答案
可以在steam上发布
File - 选择一个平台- Switch Platform - Build Setting (设置完之后) - Build Android 的话,需要配置SDK目录
我是问,如何发布在应用商场供人下载盈利
比如:你做的游戏,要放在腾讯的平台(应用宝),你要接应用宝的接口,上传,然后审核成功后,就可以了。 具体接口在哪,请自行百度。
为您推荐:
其他类似问题
您可能关注的内容
unity的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。请完成以下验证码
您当前的位置: &
目前VR游戏开发,使用Unity还是Unreal4?
查看: 2250|
|原作者: obuil
52VR做了一张表,首先大致说说各自优缺点:
轻量级,安装、调试和打包方便VR项目设置十分简单文档多,插件多,资源多,学习成本低脚本开发,开发难度低有很强大的Asset Store有VR Demo作为参考
内建工具不够完善渲染差,光照系统糟糕,
2A游戏入门水平对外设支持水平差:对于控制器支持较差,一些如手柄震动、VR控制器空间定位的功能引擎未集成,需要第三方插件或额外代码没有材质编辑器,需要第三方插件没有内建的Level
Stream支持Prefab继承水平低
Unreal优点
画面效果3A游戏水准光照和物理渲染足以秒杀Unity蓝图系统,方便了程序和策划强大的材质编辑器内置编辑器众多,体系完整性好对VR手柄、VR控制器支持良好提供游戏模版,用来做原型配合Blueprint甚至比Unity更快
Unreal缺点
支持语言是C++,难度稍大开发PS4游戏需要重新编译引擎,编译时间长,部署时间长编译重建shader耗时也长学习成本高,各子模块功能强大但操作复杂部分功能没有文档,已有功能的文档完善度不如Unity开发成本高,项目启动到发布不同部分需要多人配合,安排人手多UI设计器比较难用VR下的一些demo同样缺乏文档和例子
上述所有优缺点都不是绝对的,这个还得看使用者的水平,但工具好坏,大致有个公认的说法。我们来从几个角度来简单说一下,我们应该采用哪个引擎来做虚拟现实开发呢?1.如果主打移动平台:针对你的项目来选择,如果你主打移动平台,人口,预算不多,对画面也没有什么高要求,Unity足以,如果你对品质,功能有更多需求,那么UE4是目前你提及到两个里面最合适的。2.从使用人数和已有内容方面看:1)国内Unity用的人确实比UE用的人多,这是趋势所至,UE能做出更精致的游戏(渲染、光照方面的佼佼者),Unity则相对次一些不过更易于开发,就在开发效率这方面Unity比UE强,但是效果要差一些,不过就像我刚才说的如果你的美术够NB,其实都能做出非常屌的效果。上限上限。。
2).对于VR的支持度Unity和UE都非常积极,这是必然的。但是目前VR内容还是很空缺,没有成功的案列,所以这点还有待观察,这里跟你说的在中国招聘的人多人少没一点关系,基本都是空话,没人有真东西,都在探索阶段,就连高端设备都是外国的。硬要说有点什么,那就是Unity在移动端VR的产物,就是用一些游戏视角做VR渲染,然后一系列的加工,做成APP放到手机上,把你手机放在装在带有两个凸透镜的盒子里体验效果。我买过这种设备(魔镜),这个可以算VR吧,我不知道。确实沉浸模式下有些立体效果,但那种感觉跟虚拟头盔有很大差距。3.从开发的项目规模上来考虑:& & & 1)当你的团队和项目很小时,用unity。unity有很多现成的东西可以用,你基本可以靠marketplace买来的东西搭建原型,甚至某些最终业务的核心组件也可以用买来的东西。比如你可以把整个material换成alloy、用ngui替代UI系统、如果你要做个赛车游戏,你能找到从模型、音效、材质、到控制系统一切。& & & 2)项目大到一定规模时,我们发现定制化的需求会太多。unity基本对于我们来说只是一个编辑器,我们几乎要把里面所有模块全部找插件或者自己写插件。所以如果当你需要一个稳定的工具集,不想自己维护一堆插件(因为unity在基础功能方面确实做的一般)。而且有一堆人能够扛住每个模块的制作压力时-对于人员的素质要求更高。那么unreal是更好的选择。4.而如果你对这两个引擎都没有经验?& & &如果两个引擎都没经验那不妨用Unreal做个Demo出来试试,这几年的VR内容都处于摸索期,还没有太好的作品出现——也就是别太去想盈利的事情,做出个漂亮的DEMO,比如基于房地产/医疗/教育/游戏等概念,相信你的作品会让人眼前一亮的。(部分观点整理自zhihu)
52VR.COM微信扫一扫
专注于VR的学习、开发和人才交流
&津ICP备号&网安备57}

我要回帖

更多关于 unity游戏开发教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信