10大优享服务
62项会员特权

游戏程序开发复杂度控制的实际意义

发布时间:2021-12-01 12:38:20     阅读次数:13945次     评论数:0次
    游戏程序开发复杂度控制的好具有很重要的实际意义。一方面,游戏程序开发复杂度控制有实际的价值意义,另一方面有开发效率和运行效率的意义。写程序的时候,质量和效率最好的情况就是始终对于整个系统,在代码级别保持一个非常清晰的状态,你心里知道要写成什么样,写的过程,整体的代码也清晰合理,与你心里的样子相印证,然后可以心如止水的一直非常快的写,整个过程非常的享受。
游戏程序开发复杂度控制的实际意义
    游戏程序开发的实际价值

    先从游戏程序开发实用的角度来看:关乎运行效率和开发效率(当然其他的扩展性等等也会包括,但是实际在项目里的感受是这两个尤其的明显)。

    其实7年前我也是毫无疑问的这么认为的,但是实践起来并不是一码事情,大约几年前,才真正的形成开发的原则。

    游戏程序开发的开发效率

    这个最深刻的认识原则当初开发地形系统,包括从编辑器的底层部分(UI部分是另外一个同事做的)以及runtime部分,从材质到高度图,系统庞大而且复杂。

    游戏程序开发的开发过程中,也不可避免的遭遇到需求变动(包括材质系统的能力,地图大小这种非常颠覆性的)。

    时间紧任务重,一直想尽量快点把东西做好,开发过程中,代码整理和系统整体控制没有做太多,然后其他组可以同步进行,然后再进行代码整理。

    但是对于一个庞大的系统,这种策略就不好。

    写程序的时候,质量和效率最好的情况就是始终对于整个系统,在代码级别保持一个非常清晰的状态,你心里知道要写成什么样,写的过程,整体的代码也清晰合理,与你心里的样子相印证,然后可以心如止水的一直非常快的写,整个过程非常的享受。

    而如果实现过程中,缺乏对于系统良好的认识和整理,希望“随便搞搞,搞出来再整理“,这种在小型情况下是ok的,但是大型系统下,即便思维保持清晰,但是庞大的系统缺乏整理,而造成非常的复杂,很多东西由于前后设计的不一致,导致是处于一个不合理的复杂情况–需要你去死记。


    这样造成的结果就是,即便你对于整体系统的设计非常的清晰,但是在编程过程中,由于系统的一定的混乱,让你没法整个过程非常清晰的,心如止水的进行,整个的过程,磕磕绊绊,让人疲惫不堪。

    所以在后半段,就停下来改变了策略,先做充分的整理,把不需要的部分去除,然后把代码整理到完全准备好来做新代码的实现,才去做新的实现,这样反而是最快的,写起来也愉快迅捷。

    游戏程序开发的运行效率

    处理效率,常规的基本做法是profile热点,以及根据游戏的情况进行feature的关闭。

    但是这个能做的事情是非常有限的,如果想做进一步提升性能,接近性能的极限,必须要做的就是:

    – 对于每一个模块有充分的理解

    – 可以做到快速的反复尝试迭代

    处理性能热点,在优化早期是一个非常高效的做法,准确来讲,热点处理是”在有水分的情况下,高效提升性能“的方法。

    但是在追求极限性能方面,热点优化还是不够,某一个模块的性能消耗是不是超过了它应该有的,以及一个排名10名开外的模块其实是不需要高频运行的等等,这些都是热点处理不能解决的。

    在对于程序有充分了解,就可以进行更彻底的调整,把大量的运行做并行,低频执行或者直接优化掉。

    实践中看下来,这样的处理会把程序的性能带到一个新的台阶。

    这个道理可以说是知易行难,难就难在,对一个超大系统(比如对于《天涯明月刀》来说,就是整个客户端,覆盖几十万行的代码),如何做到充分理解,如何做到容易的彻底的修改优化。

    所以关键点又回到复杂度,只有程序的复杂度得到最好的控制,才能较好的做这个工作。

    这个后来在实践中,优化过程中,大约一半时间是在做代码的调整和重构,代码合理就会让优化更加的可行和高效。写程序的时候,质量和效率最好的情况就是始终对于整个系统,在代码级别保持一个非常清晰的状态,你心里知道要写成什么样,写的过程,整体的代码也清晰合理,与你心里的样子相印证,然后可以心如止水的一直非常快的写,整个过程非常的享受。一品威客网有专业的游戏开发人才,欢迎来下单。
本文地址:
来源:一品威客,转载须经版权人书面授权并注明来源

留言(0

↓展开留言

该攻略尚无留言记录