【专利】图形配置智能动态调节系统

发表于2018-02-02
评论0 949浏览

本文首发于知乎专栏:MACK的游戏开发笔记,欢迎各位关注。


另外一个小专利。专利文档一样非常晦涩古怪,因此贴了一篇后续总结的文档。


虽然是智能动态调节系统简单一句话,但包含了CPU,GPU,内存,硬盘,流量,发热一系列的优化。并且持续开发了相当长的时间,优化和细节的打磨永无止境。人总是贪婪和矛盾的的,即希望画面好功能多又希望游戏能流畅运行在10年前的垃圾设备上。特别是当数据好的时候可能还会被忽视,当数据不好的时候人们就会质问为什么这么卡大家都玩不了?甚至在优化前有不少玩家反馈,为什么玩轩辕我的硬盘烧了?我的显卡烧了?这是什么垃圾游戏,我要赔钱。。。还有的玩家拿着10年前的笔记本电脑叫骂为什么我的电脑玩不了?其实显卡驱动在4年前,英特尔都停止更新了。。。


为此在轩辕做了近2年时间的优化工作,并将各种优化通过图形配置智能动态调节系统进行统一。他特色就是可以根据当前游戏的需求动态调节图形配置,以让成千上万形形色色的电脑都可以流畅运行起来。最终我们可以完美支持56856种以上的显卡和驱动的组合及各种操作系统。在不同的游戏环境不同的同屏人数做了的自适应。玩家不必去做任何选择,系统会确保玩家在任何时候都可以流畅运行游戏,达到最佳的画面和性能比。

在优化上端游和手游的差别并不大,Android的碎片化和PC也大同小异,这些技术也用在了后续手游项目的优化上,只是对短平快的手游难以用这么长的时间进行如此深度的优化,做了一些精简。


一、项目概述

图形配置智能动态调节系统是一个在游戏中进行智能分析并动态调节的核心系统,该系统于2010年3月开始开发,由轩辕传奇客户端团队历时2年于2012年3月开发完毕并应用在了已经上线的大型多人在线游戏轩辕传奇中,取得了良好的效果。


二、本项目总体规划

2010年3月-2010年5月

用户软硬件环境的收集和分析,完成用户硬件境智能动态调节图形配置。


2010年5月-2010年10月

优化Shader系统。针对不同平台实现多套Shader保证游戏兼容性。实现UbShader系统自动编译动态加载SHader。加入Shader排序。


2010年10月-2011年5月

在CPU方面进行优化和加入根据配置自动调节。在内存方面进行优化,满足最低启动500M以内峰值1G以内的要求。在硬盘容量方面优化,将安装包减少到2G以内。


2011年5月-2011年6月

完成游戏内图形配置智能动态调节系统。


2011年6月-2011年10月

在GPU方面进行大量优化和加入自动调节系统。


2011年10月-2012年2月

完成智能动态加载系统和智能动态调节LOD系统。


2012年2月-2012年3月

集成并完整的图形配置智能动态调剂系统,测试并持续优化和完善该系统。



三、取得的阶段性成果

2010年3月-2010年4月

用户软硬件环境的收集和分析,利用轩辕传奇和腾讯平台,收集和分析用户群的软硬件环境并针对每种不同的环境进行智能配置评分,完成完整的图形适配表。


2010年4月-2010年5月

根据图形配置表在在游戏启动时按用户环境智能的分配图形配置,完成用户硬件境智能动态调节图形配置。


2010年5月-2010年7月

保证图形系统能在所有软硬件环境下正常高效的运行并根据游戏启动时设置的图形配置切换不同的Shader和图形效果。极致优化目前图形系统的Shader并开发出多套Shader系统兼容不同的软硬件环境,保证在任何平台下图形系统都可以稳定高效的运行。


2010年7月-2010年9月

为了保证所有软硬件环境的兼容,图形系统的Shader已经达到上万个,人工维护基本是不可能的,并且上万种Shader的加载低配用户的内容也无法承受。首先重构Shader系统,采用国际上主流的UbShader方式,通过脚本配置按模版自动生成Shader,上万种Shader自动生成无需人工维护;在游戏内动态加载Shader,按需加载和切换,保证Shader系统在用户环境下内存开销在30M以内;


2010年9月-2010年10月

加入国际主流引擎采用的Shader排序功能,保证即使同时使用上千种Shader,也能智能排序降低Shader系统切换渲染状态的开销。


2010年10月-2010年12月

针对用户硬件环境下不同的CPU,加入多线程骨骼更新机制,在后台多线程更新骨骼系统,并可以根据用户的CPU核数主频自动优化充分使用CPU性能并减少多人同屏下的卡顿问题。


2010年12月-2011年1月

针对开发本系统特有的内存优化分析工具和STL内存分析工具,寻找出内存开销瓶颈。


2011年1月-2011年3月

内存优化。完成UI贴图智能加载系统,按需智能加载和释放贴图资源,减少用户内存占用量。Bin表二次压缩,将bin表中0字段进行压缩将通用字符串压缩放在bin表末尾,较少用户内存占用量。使用NiMap替换STLMap,后台动态加载场景和地形,后台动态加载NPC和角色,大幅优化逻辑方面内存使用开销等方式优化内存。最终保证轩辕在低配平台启动内存在300M以内,峰值内存在600M以内。


2011年3月-2011年5月

硬盘容量优化。针对地形系统,草,水的数据格式进行压缩,将顶点数据等不存在硬盘中而是在渲染时在Shader中计算解压,智能减少导空地形数据和。最终保证硬盘空间节省50%以上,最终保证安装包在2G以内。


2011年5月-2011年6月

开发游戏内图形配置智能动态调节系统,智能分析用户当前游戏内环境并结合用户软硬件环境对图形系统进行动态调节,始终保持用户游戏时的流畅体验。当用户处于大量玩家同屏PK等复杂游戏环境时,智能无缝降低图形配置,当用户处于简单游戏环境时自动提升图形配置。整个过程是平滑无缝的体验,在用户毫无知觉的情况下保证用户的最佳体验。


2011年6月-2011年8月

提高游戏内的图形渲染效果和渲染效率,加入空间环境光遮罩,加入动态软阴影切换,加入光照贴图等。并在编辑器中加入光照效果的开发流水线和预烘培技术,导出时根据复杂规则智能压缩合并光照贴图。在提示渲染效果的同时优化渲染效率。


2011年8月-2011年10月

在复杂游戏环境下减少DP数提升效率,减少不同环境下性能的差别。其中包括,加入合并UI的功能将大量UI单元在一个批次内渲染;动态合并角色,将角色材质,模型在动态后台合并,保证一个角色在一个DP内渲染。


2011年10月-2011年12月

完成场景的智能动态加载,在游戏内按照视野,远近重要程度,用户软硬件环境,游戏内环境等复杂规则智能加载当前所需范围内的地形,模型,角色等。大幅减少内存,CPU和GPU的开销并提升渲染效果。


2011年12月-2012年2月

完成智能动态材质LOD,粒子LOD,地形Lod,贴图动态Mipmap切换等。通过分析游戏内环境,智能生成并切换渲染对象的材质系统,粒子效果等,在不需要美术修改的情况下完成智能动态调节渲染效果和性能开销。


2012年2月-2012年3月

测试并完整验证图形配置智能动态调节系统,修改bug并优化和完善,达到产品级别并推广给玩家体验。


四、与同类产品(服务)的竞争优势

随着大型多人在线游戏的兴起,游戏行业面临着两方面的矛盾需求。一方面随着游戏的发展,更精美的画面,更多人同屏,成为了潮流和趋势,游戏对电脑性能有了越来越高的要求;另一方面随着用户的不断扩展,游戏既需要满足千差万别的软硬件环境也需要满足不可预期的游戏内环境,低配电脑也要流畅运行多人同屏也要流畅运行。这两方面的需求矛盾限制了游戏产业的发展,成为了一个世界性的难题。

对此目前国内外都没有好的解决方法,有些公司牺牲游戏画面和游戏性,通过降低游戏品质来满足最低配置的用户,从而获得较好的兼容性,例如征途,RO等游戏,通过采用2D的渲染方式来降低游戏对软硬件的要求;有些公司为了追求游戏的高画质和高品质而放弃大量的低配用户放弃多人在线的游戏方式,采用单机模式只有高标准的软硬件才能流畅体验低配电脑无法运行游戏,例如孤岛危机,战争机器,以及永恒之塔等等。

而图形配置智能动态调节系统针对不同的软硬件环境和游戏环境,在对用户透明的情况下智能自动的在性能,画面和游戏性方面进行动态调节,一举解决了这个行业难题。因而该系统也同行业中出于领先地位,并被多个游戏采用,推动了游戏产业的发展。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论