游戏开发 游戏引擎中的通用编程技术

游戏开发 游戏引擎中的通用编程技术

ID:22820185

大小:28.54 KB

页数:9页

时间:2018-10-31

游戏开发 游戏引擎中的通用编程技术_第1页
游戏开发 游戏引擎中的通用编程技术_第2页
游戏开发 游戏引擎中的通用编程技术_第3页
游戏开发 游戏引擎中的通用编程技术_第4页
游戏开发 游戏引擎中的通用编程技术_第5页
资源描述:

《游戏开发 游戏引擎中的通用编程技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方游戏开发:游戏引擎中的通用编程技术你是否正在考虑构建一个游戏引擎呢?你对如何构建一个游戏引擎是否已经有了一个明确的计划呢?你是否已经对如何组织游戏引擎各个模块之间的关系有了一个通盘的考虑?如果没有,那么本文将对你建立一个良好的游戏架构提出一些有益的方案,如果你已经对上面的问题有了一个明确的答案,那么本文不是你需要阅读的内容。本文的目的是给那些没有任何建立完整游戏引擎经验的人提供一些入门性的知识,使他们初步了解一下如何来

2、构建一个游戏引擎,构建游戏引擎应该注意哪些方面的问题,并提供了一些成熟的设计模版并指出这些设计模版使用的范围,我希望这些内容对那些中级编程人员也有一个良好的参考作用。这里必须再次提醒你,本文介绍的是一些通用的游戏编程技巧,虽然是通用但是可能并不是非常全面,可能存在这样或那样的缺陷,因此如果你希望它发挥最大的效用必须恰当的使用它,而不是不分场合的滥用。切记切记,一个初学者最容易犯的错误就是任意使用一些设计模版而不顾它的使用范围。在开始构建一个游戏引擎时你需要先考虑哪些方面的问题呢?这是你必须认真考虑的问题,我的答案是首先必须考虑

3、代码的可读性,尤其是在多人进行开发时更必须高度重视,如果你写的代码其他人需要花费非常大的精力进行阅读,那么根本谈不上提高工作效率,下面是提高代码可读性的一些良好建议:1、建立一份简单明了的命名规则。一份良好的命名规则可以大幅提高代码的可读性,规则必须简单明了,通常只需要两三分钟的阅读应该可以让其他人掌握,例如在代码中直接使用匈牙利命名法这种大家熟知的规则,使用字母I作为接口类的首字母,使用C开头作为实现类的首字母,使用g_开头的变量名作为全局变量,s_开头作为静态变量名,m_开头作为内部变量名,使用_开头作为类内部使用的函数名

4、等等,通过名字就可以使你大概了解对象的使用范围和基本功能。2、不要讨厌写注释。一个编程者易犯的错误就是不写注释,认为它会增加自己的工作量,但是他没有考虑到相应的工作量已经转移到代码阅读者的身上,可能看代码的人会花费比写注释----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方时间两倍或者三倍的时间来阅读代码,这是一种非常不负责任的行为,通过一段简短的注释可以使阅读

5、者迅速的了解代码的功能,从而把时间更多的用到功能的扩展上。下面是一些良好的建议:尽量对每一个变量标明它的功能。对每一个函数声明的地方标明它的功能,对于复杂的函数还应当写清参数和返回值的作用,注意是在声明函数的头文件中。在关键的代码处写清它的作用,尤其是在进行复杂的运算时更应如此。在每一个类声明的地方简要的介绍它的功能。3、减少类的继承层次。通常对于游戏编程来说每一个类的继承层次最好不要超过4层,因为过多的继承不仅会减少代码的可读性,同时使类表指针变长,代码体积增大,减低类的执行效率。还要注意要减少多重继承,因为不小心它会形成编

6、程者非常讨厌的“钻石”形状。同时还要注意如果能使用类的组合的话那么就尽量减少使用类的继承,当然这是设计技巧的问题。4、减少每行代码的长度。尽量不要在一行代码中完成一个复杂的运算,这样做会增加阅读难度,同时不符合现代CPU的执行,由于CPU现在都使用了超长流水线的设计,它非常适合执行那些每行代码非常短而行数非常多的代码,例如对一个复杂的数学运算,写成一行不如每一步骤写一行。以上建议是我的一些粗略看法,如果你还有什么好的看法可以给我指出来,同时上面的建议并不是绝对的,例如类的继承并不是绝对不能超过4层,如果你需要的话可以使用更多的

7、继承,前提是这样带来的好处大于代码执行效率的损失。接着看看要考虑什么,在GameProgrammingGems3的《一个基于对象组合的游戏架构》一文指出了几个值得考虑的问题,首先是平台相关性与独立性和游戏相关性与独立性的问题,也就是说应当作到引擎的架构与平台和游戏都无关。为什么要做到与平台无关性呢?这是因为你必须在开始架构引擎考虑它的可移植性,如果在开始你没有注意到这个问题,那么一旦在游戏完成后需要移植到其他的游戏平台上,你会发现麻烦大了,你需要修改的地方实在是太多了,所有与平台相关的API调用都需要修改,所有使用了平台特定功

8、能的模块也需要修改,这是一个非常耗费精力的事情,可能需要花费和开发一个游戏一样的时间,而如果你在开始的时候就考虑到这个问题,----------专业最好文档,专业为你服务,急你所急,供你所需-------------文档下载最佳的地方----------专业最好文档,专业为你

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。