找回密码
 注册帐号

扫一扫,访问微社区

暂存 【译】优化你的手机游戏(没有延迟的,才是健康的)

50
回复
9655
查看
[ 复制链接 ]
排名
1
昨日变化

1592

主题

3671

帖子

1万

积分

Rank: 16

UID
2
好友
123
蛮牛币
3372
威望
121
注册时间
2013-5-19
在线时间
2328 小时
最后登录
2019-9-12

原创先锋

2014-6-5 13:18:24 显示全部楼层 阅读模式

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

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

x
本帖最后由 admin 于 2013-6-5 13:24 编辑

原标题:优化你的手机游戏(没有延迟的,才是健康的)- 一篇给游戏美术设计师读的文章

[译者的话(新浪微博@滚石,欢迎大家一起讨论)]

由于公司目前没有专业的技术美术(Technical Artist),在最近的项目开发中碰了不少壁。于是我就特地做了一些关于美术方面优化的研究,听了一些讲座,阅读了一些文章,你即将阅读的这篇就是其中之一,我觉得不错,并在阅读中获得了共鸣,所以也就决定将这片文章翻译为中文。一来希望在公司中,对于我们的美术设计师作为一个参考,另外分享出来也希望,如果能有那么一点点帮助到跟我们遇到同样困扰的团队或者美术或者任何同仁们,我将万分荣幸。


由于我是一个程序猿,所以翻译中难免有些话或者美术专业术语译的比较二的地方,还请谅解。

原文地址:Optimising Your Mobile Game (Less Lag, More Awesome)


------------------------------------------------------------------

你是否曾经开发了一个手机游戏,在你把它递交给reviewer时,本来满心希望它像百米冲刺一样高速运行,结果却步履蹒跚,甚至最后慢得跟爬行一样。这很烂,不是么?我们意识到这本来是可以避免的,但很多小的错误和疏忽不断堆积,最终造成了程序的瘫痪:它太慢了!介于我们一直这么粗心犯错,我们一定是忘了给自己的”角色属性表“加上预知未来的能力了 如果一直这样,那我们开发的游戏——AlieNation,将变得根本不能玩。幸运的是,我们停止了错误,并开始搜集大家的想法,对游戏进行优化(优化成为了我们开发中的新王牌武器!)


1.jpg


为什么我们从2D转向3D

考虑到从测试玩家和本地媒体获得的认可,我们决定创建一个3D摧毁型游戏(destruction game),以填补市场上的空白。很惊讶大多数的摧毁型游戏都是2D的,但3D才是摧毁型游戏应该的样子,因为3D版本的感觉是如此的棒。当然,你需要做更多的工作来优化你的美术流水线(art pipeline)。

高效和优化让我在一些甚至不知晓的领域中感觉到从容温暖,所以在这里有一些事情要和你们分享,我铭记它们于脑中,并且一直提醒我的团队遵循它们,以保证我们的3D游能够持续运行流畅。


何时选择3D(何时保留2D

作为一个3D游戏美术,我得到的第一个关键教训就是,让所有的东西尽可能的保持低模——不要使用额外的不必要的顶点,如果你确实要让你的模型拥有精度,把它放置在贴图中。比如说,我们的建筑物都是用简单的方块创建而成,然后贴上带有质感的细节纹理。

当我们要为Vogel教授(它只在我们游戏的GUI和HUD中出现)建模时,首先尝试的是3D模型,但是最终,我们还是把它分解为像Flash中那样的多层2D平面。它运行非常流畅,看上去也更棒,事实最终的结果比用3D模型赞非常多!使用带有动画的2D平面,可以很容易的创造细节,使得Vogel教授看起来非常酷,并吻合整个游戏的艺术风格。

现在每次我看到它时(下图的左下角就是Vogel教授),还会忍不住幸福热泪 ;-(

2.jpg


不要在贴图(纹理)优化上偷懒!


贴图大小是最容易被大多数美术设计师忽视优化的,要知道,贴图会占用非常非常多的空间!


通过跟几个设计师聊天,我发现他们中很多人都习惯于创建他们觉得舒适的尺寸,比如512×512,这符合常理,没什么错误,但唯一的问题就是,设计师不会在导出贴图之前,将它们降低到一个更加合理的尺寸。

一个更小更高效的贴图文件,在放置到游戏中后,可以和一个超大的贴图文件看起来效果一样好!但是如果设计师所有的工作都是在错误的贴图尺寸中进行的,很不幸,所有设计师花费了大量时间绘制的漂亮美术细节,在游戏中被降低尺寸后,会被无情的抹杀


为了完全避免这个问题,我建议设计师应该在降低尺寸后对贴图做一些额外处理,亦或者是在创建时直接使用和在游戏中一样的分辨率。因为这样的话,设计师才能够精确掌控贴图中的每一个像素点。


文件格式,贴图重用和Shaders


PNG相比于其它很多格式没那么“邪恶”。相比于JPEG的有损压缩,它的压缩是无损的;它虽然对于Alpha透明的处理不像TGA那么出色,但是它既压缩文件同时又能保证足够好的Alpha映射,确实比其它的格式胜出一筹。

3.jpg



很多团队的教训是类似的:

不合理的贴图尺寸 + 不合理的文件格式 = 占用了太多的纹理空间 = 更慢的游戏 = 找到纹理并降低尺寸 = 丢失细节 = 浪费时间 = 非常沮丧的美术设计师 = 非常愤怒的美术总监

另外一个关于贴图非常有用的建议是——尽可能的重用它们。很显然,这个不光对贴图,对其它任何游戏资源都应该如此。在我们创建Alienation的过程中,我们没有创建新的贴图用于几乎很难被看到的武器和金属物体上,而重用了建筑物的贴图用在这些非常小而琐碎的物体上。只需要一点UV技巧,你永远不会发觉它们的贴图其实是被重用的。

非常重要的一点,你要选择合适的Shader程序。当然,法线高光Shader(Bumped Specular Shader)用到物体上时,看起来太他妈的赞了,但是应该使用特定的手机定制shader,让游戏更高效。在Unity中,这比较容易做到,因为Unity内置了一整套专门针对手机的shader。


什么时候采用Alpha贴图,什么时候使用Mesh(网格模型)

Alpha贴图的卓越优点是它可以让一个物体的部分透明,非常容易,并且也相对的比较经济(cheaply)[作者注:这里说“经济”是相对的,是从处理消耗(processing cost)的角度说的。每一个像素,多边形,shader,light,粒子和骨骼,都会消耗你的游戏的处理性能。]

然而,在有些情况下,mesh比alpha贴图要更高效。举例说,当我们为汽车创建一个轮子时,为了表现轮子中间的缺口,建立轮子的网格模型要比使用贴图+透明的方式,来得高效的多。

我意识到,在这里我有点自相矛盾了,因为之前我说过,要把更多的细节放在贴图中,而不是网格模型上。记住一点,没有绝对的优化技术,如果你拥有这样的能力可以在特定时候选择使用最合理的优化技术,就造就了你不仅仅是一个游戏美术设计师,而且是一个伟大的牛逼的设计师


粒子系统,draw calls,还有物理

对于任何游戏,视觉上的反馈(visual feedback)对于吸引玩家是异常重要的。如果对于玩家的操作缺少反馈,游戏会变得非常无聊,令人昏睡。

说到反馈:粒子效果是一个非常好的给玩家传递信息的方式。可能是一个子弹打到墙上产生的火花粒子效果,又或者是子弹射击一个纳粹分子的血溅粒子效果。

但是对于粒子,有些事情很容易犯错。第一点是对于粒子的贴图大小,对于贴图大小问题,本文的前半部分已经提到,如果你跳过了那部分,强烈建议你回到前面去看一看,我保证那部分内容能让你马上在贴图优化上变成一个更性感的人(而不是一个胡乱贴图的人):D

对于粒子系统的第二点是,很多人没有意识到,增加粒子个数,根本不会增加粒子效果的牛逼度——只会让游戏变得更慢。一个人可以用两种方式创建粒子效果:第一种是用尽可能少的发射数量,来达到一个最好的效果;另一种人就是搞2000个粒子,然后…慢慢跑吧…

你很少在现实游戏中见到过一个发射器包含2000个粒子效果,唯一的原因就是draw calls。

draw call是针对场景中每一个不同的物体而创建的(多一个draw call就会多增加一点游戏的处理时间)。对于粒子系统而言,在draw call上,很容易超载。

我喜欢制作一些粒子效果,但是每当我看到一些初级的设计师,看到一个漂亮而高效的粒子效果问:“只有10个粒子?太少了,这个如果用2000个粒子会更好”,我就巨他妈的沮丧,甚至肉体难受


4.jpg


对于上图,厄….这…..你为什么要这么搞,非常差劲的初级美术。


物理

没有什么比准确的射击到一个建筑物,并看到它优雅壮丽的倒下更酷了。

为什么会这样?所有的这一切都是因为甜美而性感的物理系统。

当说到物理系统时,程序猿可是这方面的专家。所以接下来的一段话,可能是一种程序猿专用的非常难以解析的语言,所以如果您是一位美术,在这里就忍忍吧

在每一帧,物理系统都会更新很多次,物理会更新受其影响物体的位置,速度和其他一切跟运动相关的属性。每一帧物理的更新次数会直接影响到游戏的运行速度。所以加快游戏运行的一个方式就是减少每一帧物理系统被更新的次数。

这当然是一种可以尝试的方式,但是带来的坏处是会影响你的物理系统的准确性,所以平衡好每帧的更新次数,以获得最佳并最高效的物理效果是非常重要的。

一个例子,当我们减少了每帧物理更新的次数时,我们游戏中的一个球体可能穿过了一道墙,这…我觉得球穿墙可是不真实的,你呢?

所以要调节到一个最优的物理更新帧率是不容易的,这可花了我们公司的程序猿们好一段时间。


光照和天空盒

两件事情我会快速过下——光照和天空盒。

关于天空盒,很称奇的一点是其实你根本不需要使用它们作为天空!(我对吗?!?!)

一个非常棒的方式是在天空中包含背景艺术(background art),这使得能很经济简单的加入非常多的背景艺术和气氛到游戏中。

光照有点神秘,所以我直接了当,对于手机,最好使用平行光(directional light),或者如果你够幸运,加几盏点光(point light)也可以。在Alienation游戏中,在对light做了日以继日的研究后(我撒谎了,其实我就是google了一下unity light;-)),我发现聚光灯(spotlight)在手机游戏上是最消耗性能的光源,慎用。


结束这一切

本文中提到的所有建议,独立采纳其中的一条并不会让你的游戏马上得到改观。

但是如果你综合采纳所有的这些优化,你的游戏品质一定会马上得到质的提高,到时候,嗯哼,等着幸福的哭吧~


------------------------------------------------------------------

[译者的话]

个人觉得,这些建议非常好,并在游戏开发中时刻提醒自己遵循它们。但是因为大家开发的游戏都是各式各样的,使用的引擎也完全不同。不要把某种优化建议当成教条,应该选择最适合你们团队的。尽量多使用游戏引擎的profiling,以及时观察分析游戏中影响游戏系能的因素,而不要教条式的麻木follow各种优化建议。

原文链接:优化你的手机游戏(没有延迟的,才是健康的)- 一篇给游戏美术设计师读的文章





unity汽车;unity 3d中的血条;unity games 3d;unity帧率低;unity 场景跳转问题;unity纹理贴图;unity uv动画;unity 天空盒制作;unity创建一个物体;unity 天空盒 移动;unity 每帧时间;unity物体尺寸;unity shader 透明;unity粒子效果;unity 物体速度;unity 简单游戏;unity开发 语言;unity手机用什么分辨率;unity游戏热更新;unity 已停止工作;unity高光shader;unity 运;unity 汽车移动;unity 3d血条;3d unity games;unity 3d games;unity帧率变低;unity跳转场景;unity场景跳转;unity贴图纹理;unity适用的纹理图;uv动画 unity;unity如何制作天空盒;unity 创建 物体;unity怎么加天空盒;unity天空盒;unity 帧时间;unity 物体的尺寸;unity 半透明 shader;unity shader 半透明;unity透明shader;unity 无粒子效果;unity 云 粒子效果;unity 物体移动速度;unity最简单的游戏;unity开发用什么语言;unity 用什么语言开发;unity什么语言开发;unity 语言开发;unity 手机分辨率;unity游戏更新;unity停止工作;unity 高亮shader;unity运行shader;unity uv贴图;unity透明贴图;unity模型优化;unity怎么优化模型;unity的优点;unity 8 优点;unity透明物体;unity 物体透明;unity方块移动;unity两个方块;unity能做手机游戏;unity 骨骼动画 获得 mesh;unity 游戏结束;unity 多场景编辑;unity 多场景 选择;unity www 本地文件;unity draw calls 5.0;unity 5 draw calls;unity停止;unity更新版本;unity热更新版本;unity版本更新;unity加天空;unity怎么加天空;unity 天空;unity 动画停止;unity 光照贴图;unity draw call 是什么;unity 编辑动画;unity有几种光源;unity 光源;unity 点光源;unity移动 光源;unity加光源;unity使用3d模型格式;unity tga png;unity大量子弹;unity 光照shader;unity 创建场景;unity场景贴图;unity 3d 蛮牛;unity导出资源;unity 如何导出动画;unity 3d导出模型;unity 5 的动画编辑器
参与人数 6鲜花 +11 收起 理由
haiwennn + 1 赞一个!
aliceinshanghai + 1
buleAries + 5 神马都是浮云
蜀山小二 + 1 赞一个!
munan008 + 2 很给力!
zl1030 + 1 赞一个!

查看全部评分总评分 : 鲜花 +11

回复

使用道具 举报

7日久生情
1709/5000
排名
922
昨日变化

13

主题

310

帖子

1709

积分

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

UID
97
好友
4
蛮牛币
3958
威望
30
注册时间
2013-5-30
在线时间
265 小时
最后登录
2019-6-12
2014-6-5 16:27:50 显示全部楼层
强烈支持技术优化帖子。。。。
回复 支持 反对

使用道具 举报

2初来乍到
108/150
排名
16956
昨日变化

1

主题

40

帖子

108

积分

Rank: 2Rank: 2

UID
15
好友
1
蛮牛币
191
威望
30
注册时间
2013-5-28
在线时间
27 小时
最后登录
2019-5-28
2014-6-20 13:02:18 显示全部楼层
游戏的优化很重要,学习。
回复 支持 反对

使用道具 举报

排名
34888
昨日变化

5

主题

65

帖子

87

积分

Rank: 2Rank: 2

UID
540
好友
3
蛮牛币
17
威望
30
注册时间
2013-7-1
在线时间
17 小时
最后登录
2019-1-16
2014-7-3 13:07:25 显示全部楼层
好文要顶,感谢分享
回复 支持 反对

使用道具 举报

排名
1750
昨日变化

35

主题

328

帖子

1546

积分

Rank: 9Rank: 9Rank: 9

UID
54
好友
23
蛮牛币
3307
威望
30
注册时间
2013-5-29
在线时间
375 小时
最后登录
2018-5-7
QQ
2014-7-10 09:12:37 显示全部楼层
好帖子!学习了,谢谢楼主:funk:
回复 支持 反对

使用道具 举报

排名
34888
昨日变化

0

主题

3

帖子

29

积分

Rank: 1

UID
831
好友
0
蛮牛币
26
威望
0
注册时间
2013-7-12
在线时间
1 小时
最后登录
2013-7-15
2014-7-12 20:52:09 显示全部楼层
支持一个,也转给我们组的美术看
回复 支持 反对

使用道具 举报

4四处流浪
309/500
排名
7479
昨日变化

0

主题

49

帖子

309

积分

Rank: 4

UID
484
好友
3
蛮牛币
244
威望
0
注册时间
2013-6-26
在线时间
90 小时
最后登录
2019-9-12
2014-7-15 11:49:19 显示全部楼层
游戏的优化很重要
回复 支持 反对

使用道具 举报

排名
64937
昨日变化

0

主题

5

帖子

5

积分

Rank: 1

UID
956
好友
0
蛮牛币
0
威望
0
注册时间
2013-7-17
在线时间
0 小时
最后登录
2013-7-17
2014-7-17 20:30:12 显示全部楼层
png 很邪恶
回复 支持 反对

使用道具 举报

6蛮牛粉丝
1358/1500
排名
1950
昨日变化

11

主题

285

帖子

1358

积分

Rank: 6Rank: 6Rank: 6

UID
1303
好友
2
蛮牛币
1412
威望
0
注册时间
2013-8-1
在线时间
358 小时
最后登录
2019-8-29
2014-8-5 16:10:16 显示全部楼层
优化帖子什么的最好了。同时,优化什么的都太烦了。
回复 支持 反对

使用道具 举报

排名
1
昨日变化

1592

主题

3671

帖子

1万

积分

Rank: 16

UID
2
好友
123
蛮牛币
3372
威望
121
注册时间
2013-5-19
在线时间
2328 小时
最后登录
2019-9-12

原创先锋

楼主 2014-8-5 16:23:40 显示全部楼层
lzc_sys 发表于 2013-8-5 16:10
优化帖子什么的最好了。同时,优化什么的都太烦了。

   哈哈   说的对~~~
回复 支持 反对

使用道具 举报

排名
64937
昨日变化

0

主题

5

帖子

12

积分

Rank: 1

UID
1164
好友
0
蛮牛币
7
威望
0
注册时间
2013-7-24
在线时间
1 小时
最后登录
2013-8-9
2014-8-7 14:44:11 显示全部楼层
谢谢~~~~~~~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

排名
4939
昨日变化

13

主题

112

帖子

522

积分

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

UID
4811
好友
3
蛮牛币
2141
威望
0
注册时间
2013-9-30
在线时间
57 小时
最后登录
2019-7-18
2014-10-1 09:47:14 显示全部楼层
非常好,以前自己开发从来没考虑过图片尺寸的问题。。。看来以后要注意啦,thank u!
回复 支持 反对

使用道具 举报

7日久生情
4791/5000
排名
171
昨日变化

12

主题

932

帖子

4791

积分

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

UID
1525
好友
46
蛮牛币
13033
威望
30
注册时间
2013-8-5
在线时间
1571 小时
最后登录
2017-3-2

活力之星游戏蛮牛QQ群会员

2014-10-3 13:15:13 显示全部楼层
回复

使用道具 举报

排名
3220
昨日变化

21

主题

138

帖子

1047

积分

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

UID
313
好友
10
蛮牛币
5010
威望
0
注册时间
2013-6-13
在线时间
233 小时
最后登录
2016-6-23

游戏蛮牛QQ群会员活力之星

2014-10-4 09:13:21 显示全部楼层
{:104:}{:104:}
回复

使用道具 举报

排名
454
昨日变化

26

主题

579

帖子

3300

积分

Rank: 9Rank: 9Rank: 9

UID
1247
好友
11
蛮牛币
6500
威望
10
注册时间
2013-7-31
在线时间
685 小时
最后登录
2019-7-22

专栏作家游戏蛮牛QQ群会员认证开发者

QQ
2014-10-6 23:22:38 显示全部楼层
回复

使用道具 举报

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

本版积分规则