转载于:http://www.cnblogs.com/dyllove98/archive/2012/03/10/2461884.html
【不定期更新】游戏开发中的一些良好习惯与技术技巧
平时programing时想到和积累的一些小技巧,在这里写成一篇日志,欢迎拍砖。
<技巧一>
使用二进制位移运算来进行乘数是2的幂的简单整数乘法(除法),因为所有的数据在计算机中都是以二进制储存,把一组位元向左或右移动就分别等价于乘法和除法运算.
<技巧二>
不要疯狂地写太多的class,也不要把任何东西都overload(重载),说到底,简单而且直观的代码是最好的程序,也最容易调试。
<技巧三>
尽量使用32位变量而不是用8位变量或16位变量,目前的主流系统是32位,这就意味着它们并不喜欢8位或者16位的数据字。实际上,由于高速缓存和其他相关内容存储器的寻址变得较不规律,较小的数据可能会使执行效率下降。
<技巧四>
经常注释你的代码。为了得到整洁,有良好的注释代码,一点点额外的打字绝对是值得的。
<技巧五>
以类似RISC(精简指令集计算机)的方式来编程,尽量简化你的代码。你的程序可以长些,但尽量使用简单指令,使程序相对编译器更加简单些。
<技巧六>
在开始你的游戏项目之前,应当进行一下组织工作。使用合理的文件名和目录名。提出一种一致的变量名的约定,尽量对图形和声音数据使用分开的目录,而不是将所有的东西都一股脑儿放到同一个目录中。
<技巧七>
设计高效率算法,没有任何一种汇编语言能使复杂度为O(n2)的算法运行得很快,更好的做法是使用清楚,高效的算法而不是蛮力型和穷举型的算法。
<技巧八>
不要在编程过程中优化代码,这通常只是浪费时间。建议你等到主要代码块或整个程序都完成后才开始着手进行繁重的优化工作,这样做最终会节省你的时间,因为你不必对一些含义模糊的代码进行不必要的优化。当游戏的coding基本完成的时候,才到了性能测试(profiling)和查找需要优化的问题的时候,另一方面,程序代码要注意错落有致,不要写得杂乱无章。
<技巧九>
不要为简单的对象定义太多的复杂的数据结构,链表结构很好用,但这并不意味着当你所需要的其实是大约有256个元素的固定数组时候,你也要使用链表。这时候,我们只需要为其静态的分配内存即可。视频游戏编程中90%的部分都是数据操作,所以数据尽可能简单和可见,这样才能够迅速地存取它,随意操作它,应当确保你的数据结构适合你所真正要解决的问题。
<技巧十>
使用内联函数,通过使用inline指示符来完全摆脱函数调用,你甚至能够改进全局变量的使用时机,inline指示符指示编译器用函数体代码去替换函数调用,这样做无疑会使编译后的程序变得更大,但却有效地提高了运行速度。
<技巧十一>
如果你知道自己酷酷的跑车将要行驶上一段坎坷的荆棘路,最好的做法是停下来,然后掉头绕路而行。有很多人沿着一条很差的编程路线走着,直到在糟糕的代码堆中葬送了自己。能意识到自己所犯的错误并重新编写500行的代码,比写一个总是令人不快的代码结构要好得多。因此,如果在coding中发现问题,就要重新评估并确保你节约的时间是值得的。
<技巧十二>
不要怕使用全局变量,许多视频游戏不让你对时间要求严格的函数使用参数,而是使用一些全局变量来专递参数,巧妙地避开很多未知的问题。
<技巧十三>
经常备份你的工作。在coding游戏代码时,需要相当繁琐地锁定代码库中的代码,重写一个排序算法还是比较容易的,但是要重写角色AI或者重写碰撞检测则是困难得多了。
<技巧十四>
多用template模板来减少重复的代码,这样可以节省不少的代码量。
【此文章不定期更新~~~】
分享到:
相关推荐
第13章介绍了Unity中的多线程技术与网络开发;第14章介绍了Unity 2D游戏开发工具;第15章介绍了Unity 3D提供的Profiler工具的使用方法,及断点调试的两种方式;第16章介绍了完整的大型3D游戏案例—指间足球。
第16章 游戏开发中的物理学 437 16.1 碰撞检测基本技术 437 16.1.1 aabb包围盒的基本原理 437 16.1.2 aabb包围盒的计算 438 16.1.3 aabb包围盒的碰撞检测 440 16.1.4 一个aabb包围盒的案例 442 ...
《Android3D游戏开发技术详解与典型案例》既介绍了Android 3D游戏开发中必知必会的基础知识,同时通过7个真实案例向读者介绍Android 3D游戏的完整开发步骤,希望通过本书能够使读者尽快掌握Android 3D游戏开发的...
《Android 3D游戏开发技术详解与典型案例》本书主要以Android平台下3D游戏的开发为主题,并结合真实的案例向读者详细介绍了OpenGL ES的基础知识及3D游戏程序开发的整个流程。 全书分为两篇共22章,第一篇以简单易懂...
《Android 3D游戏开发技术详解与典型案例(附盘)》,本书分为两篇共22章,第一篇以简单易懂的实例为依托,详细介绍了opengl es各方面的基础知识,第二篇则对7个真实案例的开发步骤进行了详细的介绍,逐步向读者讲解...
分别是开发环境、语言基础、程序算法、数组与指针、函数和过程、字符及字符串处理技术、日期...与报表技术、图表技术、网络开发技术、Web编程、安全技术、程序调试与错误处理、程序打包与安装、自定义组件和第三方控件...
Direct3D游戏开发技术详解 尚晶晶
《Visual C++游戏开发技术与实例》一书的所有源代码
资源分成了两部分, 因为上传大小有限制。 Android 3D游戏开发技术宝典(吴亚峰)一书的代码和3个ppt
Android_3D游戏开发技术详解与典型案例_12793147(marked).pdf
html5 canvas核心技术图形、动画与游戏开发完整源码
资源分成了两部分, 因为上传大小有限制。 Android 3D游戏开发技术宝典(吴亚峰)一书的代码和3个ppt
HTML5 Canvas核心技术 图形 动画与游戏开发
你将学习应该在游戏开发的哪些阶段中进行原型构建、测试、机制实现等活动,还会学习如何模拟游戏机制,以及如何将机制可视化地呈现出来,从而设计出更好的游戏。本书还提供了各种练习,使读者能够亲手实践所学的知识...
Android3D游戏开发技术详解源代码(各种游戏项目源码).rar ) 很强大的 全套的 光盘
分别是语言基础、数据类型、开发环境、MFC实用技术、控件技术、用户界面、通用对话框、图形图像与多媒体、Windows相关技术、内核技术、注册表和INI文件、文件与内存管理、数据库、打印技术、硬件程序开发、局域网...
Visual C++游戏开发经典案例详解.pdf
全书共分9篇32章,分别介绍了JSP基础、环境搭建和开发工具、Java语言基础、JSP语法、JSP内建对象、JavaBean技术、Servlet技术、JSP经典设计模式、数据库的安装与创建、数据库访问技术、SQL语句在JSP中的应用、高性能...
由浅入深、全面系统地介绍了利用python语言进行程序开发的知识和技巧,包括 python的安装和环境配置、python的基本语法、模块和函数、内置数据结构、字符串和文件的处理、正则表达式的使用、异常的捕获和处理、面向...
在VR技术开放日上,奥秘游戏CTO冀盼发表《基于HTC Vive的VR游戏开发入门》主题演讲。HTC Vive开发VR游戏,硬件需配备头显及双手柄,PC以i5 970为最低配置,设置Room Scale模式,内容分发平台有Steam、Vive及奥秘,...