【游戏设计模式】Profiling
性能分析(Profiling)是是以收集程序运行时信息为手段研究程序行为的分析方法,是一种动态程序分析的方法。对排查内存泄漏、栈溢出、代码效率、内存占用很有帮助,在整个开发中都非常重要。
【游戏设计模式】可见性剔除
当游戏场景中存在几十上百个复杂物体时,对这些物体进行逻辑更新以及渲染是很大的工作,一个自然而然能够想到的优化就是根据可见性进行剔除。这些剔除操作对效率的优化是最明显的,是应该首先考虑的优化。
【游戏设计模式】子系统
游戏开发的复杂性体现在模块的多样性和相互之间的协作上,比如动画、渲染、物理、特效、逻辑等等。一个游戏角色可能同时包含这些模块(组件),如果在角色的update中处理所有的内容,会让维护和调试非常困难。子系统的设计方法用来解决这个问题,将同一模块的类和操作封装为一个子系统,以独立的生命周期运行,这样能降低上层模块和底层模块的耦合度。合理构建子系统能让代码逻辑清晰、易于调试以及优化。
【游戏设计模式】“种群”和资源管理
资源管理包含一系列算法的弹性控制内存、CPU、GPU资源的算法。把计算机的硬件资源视作大自然,一个进程视作一个种群,内存中的对象实例视作种群中的个体,每个个体会占用相应的自然资源,随着种群规模增长,占用的自然资源同步增加,当自然资源超过极限时,就会压缩种群数量,最终达到动态平衡。操纵大自然的上帝之手,追求的是以最少的资源维持最低的种群繁衍速度,并保证种群存活率,以达到物种多样性。程序对应的是上帝之手,追求的是最低开销下的最高性能。
【游戏设计模式】最少内存原则
游戏开发还要遵循最少内存原则,这是由游戏设备和游戏的特点造成的。不同于其他程序,游戏的实时性很强,1秒内会执行很多内容,创建、销毁对象非常频繁,即便是很小的对象,创建和销毁几百上千次就会是非常大的消耗了。同时大量GC会造成游戏间歇性暂停。合理管理内存对游戏来说是至关重要的,在设备性能一定的情况下,直接决定了游戏内容数量的上限。