说起游戏的优化,在游戏开发中经常分为这几步:
首先要确定游戏中经常会出现哪些问题 - Profile
然后确定在哪些方向进行性能优化 - Analyze
最后再尽可能将问题逐个解决 - Solve
游戏开发中一定是先做工具,进行Profile,再进行优化,所以,说优化就不得不再扯一下Profile。
常见的工具有一些是引擎和IDE自带的,比如Unity自带的Profiler,就包含了CPU,GPU,Memory等等各式各样的性能分析工具, 其他的比如GPA,Xcode Instrument和Visual Studio,Intel自带的内存管理工具在必要的时候也使需要去学习和使用的。
另外一些工具,就需要根据游戏的需求去编写了,比如一键关闭所有特效,一键更改分辨率等等,一键设置场上NPC数量,简单的游戏如啪啪三国是做成快捷键开启Profile功能的,更为复杂的游戏如神秘海域则是通过游戏内控制台来进行更为细致的Profie。
接着,我们再来说说游戏优化中主要的四个考虑方向:
1、CPU
引发的问题:
由于短时间内的计算量太大,导致画面流畅性降低,俗称跳帧
发热严重,耗电量高
常见的优化手段:
将计算分到多个逻辑帧中进行计算,避免短时间内的性能超过负荷,俗称“分帧”(time-slice)。
将可以缓存的数据尽可能的缓存起来,避免重复计算和重复分配内存,常见的示例为“内存池”。
使用合理的算法和数据结构,比如:冒泡排序和直接插入排序在整体数组比较有序的情况下效率大大好于快速排序。把快排替换成是优化程序排序效率的一个常见的思路。
2、GPU
引发的问题:
发热严重,耗电量高
FPS降低
常见的优化手段:
优化美术资源,比如合理规划图集,约定好模型的最大三角形面数,制定合理的粒子效果规范。这个可以说是游戏优化中最重要的一个,因此,技术美术在游戏开发中作用巨大。
简化或者优化着色器(shader)
使用Batching,尽量减少DrawCall
使用平台推荐的压缩格式,比如安卓平台的ETC1和IOS平台的PVRTC
3、IO和网络
引发的问题:
网络延迟甚至掉线
加载资源导致的跳帧
加载时间过长
常见的优化手段:
使用独立的线程进行加载,有些引擎如Unity中还能利用协程
减少网络包里面的冗余数据
合并小包,减少请求数据的次数
分帧对回包进行处理
限制一定时间内的发包频率
4、内存
引发的问题:
闪退和卡死,比如安卓的Low Memory Killer会在低内存情况下杀掉内存占用过大的程序。
常见的优化手段:
动态加载和卸载资源,比如在游戏内的时候,我们可以把游戏外的一些UI图集卸载掉。
降低资源质量或屏幕分辨率,这是有损优化,一般作为最后的手段。
其实这四个方面的优化总是相互制衡的,你把一个方面的优化做好了,另一个方面的问题又会出现了,比如,我们如果使用动态加载和卸载资源,这就虽然减少了内存占用量,会在IO上造成加载时间延长的问题。
所以,我们在做游戏优化的时候,不能太追求完美,刚刚好就是真的好(Good Enough Is Fine)。最终使得以上这四个方面能达到均衡即可,切忌在某一方面优化过头,又引发其他方面的问题,此消彼长的情况下,有时反而不如不做优化。
- 浏览: 95120 次
- 性别:
- 来自: 上海
相关推荐
《GSM原理及其网络优化》这本书的多个章节在压缩包中,覆盖了GSM网络的基础知识到高级优化技术。以下将详细阐述这些章节可能涉及的关键知识点: 1. **第一章:GSM网络概述** - GSM网络架构:包括BSS(基站子系统)...
#### 四、负载均衡方向与准入门限配置 接下来,我们需要指定负载均衡的方向以及准入门限: ```plaintext MOD NRCELLMLB: NrCellId=0,MlbDirection=DOWNLINK, MlbHoAdmissionThld=95; ``` 这里,`MlbDirection`被设置...
总结,基于NBIoT网络的计量设备数据上传负载均衡方法是网络游戏技术的重要研究方向,它不仅能提高数据传输效率,还能增强游戏的稳定性和玩家满意度。随着物联网技术的不断进步,我们可以期待更加智能、流畅的游戏...
随着技术的进步,锂离子电池均衡技术也将朝着更高的效率、更低的成本和更好的适应性方向发展。未来的研究重点可能会集中在以下几个方面: 1. **智能化均衡**:利用先进的算法和传感器技术实现更加精准的电池状态...
- **判决反馈均衡器**:结合了前馈和反馈两部分,不仅可以补偿当前信号,还能利用之前接收到的信号信息来进一步优化均衡效果。 - **单载波时域均衡算法**:针对单载波系统设计的时域均衡方法,能够在时域内直接对...
目前针对电动汽车充电路径优化的研究大致可以归纳为三个主要方向: 1. **电网优化调度**:从电力系统的角度出发,通过调度电动汽车的充电行为来优化电网运行效率。此类研究通常关注如何平衡电网负荷,但较少涉及...
随着技术的不断进步,四扬声器装置均衡技术作为一种有效的方法脱颖而出,它通过对四个扬声器的精心布置和精确均衡,旨在为听者提供更为丰富和逼真的听觉体验。这种技术尤其适用于双耳录音的回放,能够在增加声音方向...
《数字音频均衡器控制台VC源代码》是一个用于构建硬件数字均衡器控制界面的软件开发项目,主要基于Microsoft Visual C++(VC)编程环境。在本文中,我们将深入探讨这个项目涉及的关键技术、功能实现以及它在音频处理...
6. **系统架构**:系统架构决定了数据流的方向和处理方式,一个良好的架构设计能够更好地支持系统的扩展性和可维护性。 #### 二、系统架构与数据模型的重要性 1. **系统架构**:在业务需求和特点分析的基础上,...
与四层不同,七层负载均衡可以对应多个实服务组,每个组提供相同的服务,根据报文内容选择服务组和服务器。 **链路负载均衡** 链路负载均衡主要应用于企业网络和运营商出口,目的是优化链路选择,提高访问速度和...
在云游戏领域,GPU(图形处理器)虚拟资源的自适应调度是提高服务质量、优化用户体验的关键技术。本资料主要探讨了云游戏环境下,如何构建一个高效、动态的GPU虚拟资源调度宿主机系统,以及相应的调度策略。 一、...
税制改革、优化与税收征管均衡发展 在当今社会经济体系中,税制改革和税收征管一直是国家宏观调控的重要手段,对于促进经济结构优化、实现社会公平与持续增长发挥着至关重要的作用。尤其对于中小民营企业而言,税制...
在一个博弈中,如果每个参与者都选择了其最优策略(即无论其他玩家如何行动,该策略都是最佳选择),并且没有人能通过单方面改变策略来改善自己的收益,那么这个博弈就处于纳什均衡状态。 纳什均衡的关键在于它是...
负载均衡技术是现代IT系统中的核心组成部分,它旨在优化网络流量分布,提高系统的可用性和响应速度,同时确保服务的连续性和稳定性。以下是对标题和描述中提到的知识点的详细解释: 1. **负载均衡原理**:负载均衡...
通过对5个典型小区进行了PRB负载均衡的优化验证,取得了明显的成效。例如,优化后的F18小区的感知速率有所提升,而F21小区的感知速率则略有下降。不过,这种变化表明了PRB负载均衡策略能够在一定程度上改善网络的...
Dubbo提供的这四种负载均衡策略各有特点,可以根据具体的应用场景灵活选择。例如,在服务实例性能相似且调用请求相对均匀的情况下,可以选择随机均衡算法;而在需要考虑服务实例处理能力差异较大的场景下,则可以...
4. **4QAM信号**:4QAM是一种数字调制方式,它将四个不同的信息符号映射到四个不同的幅度和相位状态上。4QAM相比2QAM(BPSK)提供了更高的数据率,但同时也增加了对信道质量和均衡的要求。 5. **仿真**:在实际应用...