游戏性能优化(2)-budget

系列文章:
游戏性能优化(1)-why & benchmark
游戏性能优化(2)-budget

性能预算(performance budget)是指根据游戏类型、上市时间为游戏定位目标机型和设置性能目标。在开发早期,制定美术效果目标、美术制作规格、技术选型,同时,在整个项目生命期中,对性能进行管理控制,反复优化来实现目标。

制定美术效果和性能目标

在制定美术效果和性能目标要考虑的因素很多,主要分为:

  1. 游戏类型
    不同类型的游戏对性能的要求是不一样的,对性能要求最高的游戏类型是FPS游戏,FPS游戏需要稳定60FPS才能达到手感要求。其他竞技类游戏比如MOBA要求更低一些,但是也要足够的流畅,至少要稳定30FPS以上。MMO游戏要求相对更低一些,但是一般也要达到30FPS左右。一些休闲游戏、卡牌游戏对FPS的要求也不高。
  2. 上市时间
    在端游时代,一款产品研发周期很长,动辄4、5年。那么在制定美术效果和性能目标的时候,要着眼于上线时间点时的市场。美术效果一般也会定位超越市面上所有可见游戏(可能次世代这个词就是这么来的)。
    对于手游的研发,研发周期较短,制定美术效果和性能目标时,相当于端游要更加保守一些。
  3. 游戏定位
    对于主打画面的游戏,比如很多次世代MMO游戏,会在美术效果上倾向更多的资源,可以在性能上有所妥协。
    对于主打玩法的游戏,没有必要在美术效果上太过激进,优先保证游戏的流畅性,来提升玩法体验是更加理智的选择。

在理解了要考虑的因素之后,我们可以通过参考市面上的游戏、做性能试验分析以及根据经验来确定最后的方案。

性能预算与研发周期

我们把整个项目的研发分为几个阶段来讨论性能预算:

  1. 研发早期
    这个阶段还在确定项目的研发方向和计划,这个时候要和策划、美术一起确定玩法和美术需求,在项目早期就达到一定的共识和性能权衡。在给予美术和策划足够的空间的同时,也要确认性能不会有过高的风险。同时,要根据需求对技术方案进行调研,确认核心的技术选型,并且制定美术制作标准。
    部分美术制作标准涉及到大量资源的制作(比如模型的面数规格),一定要在早期确定一个没有风险的标准,否则回炉成本是几乎无法承受的(模型全是钱啊)。
  2. 项目中期
    项目中期是项目最长的研发期,关于性能有三件事情要做:(1)对能够提升性能的技术点进行长期的跟进调研(2)持续跟进美术资源控制(3)持续跟进代码性能控制。不过大部分情况下,这个时候大家的关注点还是要把美术效果和玩法做好,所以一般性能问题一直处在下滑状态,并且低于上线标准。
  3. 项目后期
    在项目的后期,项目临近上线。由于持续的美术资源堆积、持续的玩法堆积,性能问题一般还是没有达到上线标准。这个时候能做的事情是:(1)权衡性能和美术效果,舍弃部分美术效果(2)效果分级,对美术效果进行合理的分级。最高档能在最高档机型上正常游戏、中档能在主流机型上正常游戏、低档保障最低的目标机型能正常游戏。(4)为了达到最后的性能目标,开启各种黑科技trick。
    经过各种努力,性能开始慢慢朝着及格线迈进。
技术选型和制作标准

性能预算对制作标准的影响(随着硬件发展变化,并不准确):

  1. 角色面数
    这个根据角色的显示大小和显示数量来制定,一般端游可以到1W+;手游控制在2000面左右。
  2. 同屏最高面数
    端游50W左右;手游5W左右,10W之内
  3. DrawCall
    端游一般1000+;手游200左右
  4. Layout规划
    在Layout规划的时候尽量使用最少的面数和Drawcall来表现美术效果。远景尽量采用天空、地表系统、和森林系统(森林系统可以优化成面片显示)表现。采用建筑群显示比较难以优化(也可以采用建筑群合并的方式优化)。
  5. 场景大小规划
    大世界要比小场景对性能的压力更大
  6. 视角视距
    开阔的视角视距需要渲染更多的模型,对性能压力大,可以考虑讨巧的45度视角(比如镇魔曲)
  7. 物理系统
    避免全部物件带有物理表现(很多游戏的做法是,只有主角有比较复杂的物理效果表现)
  8. 光照系统
    减少实时光的使用,尽量使用烘焙
  9. Batch
    在模型制作时,要考虑如何规划Batch,使用同样材质球和贴图的模型可以进行Batch。要权衡Batch和模型复用问题。
  10. 材质
    考虑选择pbr、cartoon等不同的方案,尽量减少材质对贴图的使用。
  11. 后处理
    手机分辨率特别高,要减少后处理的使用,考虑合并后处理。
  12. UI
    在规划UI布局时,要考虑降低UI的overdarw。
  13. 脚本语言的选择
    效率:lua>python

以上部分只包含项目早期要关注的内容,个人认为目前列举的还不够准确,后面我会持续更新以上内容。以上给出的部分数据都可商榷,灵活性比较大。

常见的分析工具
  1. GPA
    端游GPU分析
  2. VTune
    端游CPU分析
  3. XCode
    iphone性能分析,能分析CPU、GPU性能
  4. Adreno Profiler
    Android GPU分析
  5. Snapdragon Profiler
    Android GPU分析
  6. Unity Profiler
    Unity程序全方面分析
引用
  • 《Video Game Optimization》
  • 《Optimized C++》
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容