平时programing时想到和积累的一些小技巧,在这里写成一篇日志,欢迎拍砖。
使用二进制位移运算来进行乘数是2的幂的简单整数乘法(除法),因为所有的数据在计算机中都是以二进制储存,把一组位元向左或右移动就分别等价于乘法和除法运算.
不要疯狂地写太多的class,也不要把任何东西都overload(重载),说到底,简单而且直观的代码是最好的程序,也最容易调试。
尽量使用32位变量而不是用8位变量或16位变量,目前的主流系统是32位,这就意味着它们并不喜欢8位或者16位的数据字。实际上,由于高速缓存和其他相关内容存储器的寻址变得较不规律,较小的数据可能会使执行效率下降。
经常注释你的代码。为了得到整洁,有良好的注释代码,一点点额外的打字绝对是值得的。
以类似RISC(精简指令集计算机)的方式来编程,尽量简化你的代码。你的程序可以长些,但尽量使用简单指令,使程序相对编译器更加简单些。
在开始你的游戏项目之前,应当进行一下组织工作。使用合理的文件名和目录名。提出一种一致的变量名的约定,尽量对图形和声音数据使用分开的目录,而不是将所有的东西都一股脑儿放到同一个目录中。
设计高效率算法,没有任何一种汇编语言能使复杂度为O(n2)的算法运行得很快,更好的做法是使用清楚,高效的算法而不是蛮力型和穷举型的算法。
不要在编程过程中优化代码,这通常只是浪费时间。建议你等到主要代码块或整个程序都完成后才开始着手进行繁重的优化工作,这样做最终会节省你的时间,因为你不必对一些含义模糊的代码进行不必要的优化。当游戏的coding基本完成的时候,才到了性能测试(profiling)和查找需要优化的问题的时候,另一方面,程序代码要注意错落有致,不要写得杂乱无章。
不要为简单的对象定义太多的复杂的数据结构,链表结构很好用,但这并不意味着当你所需要的其实是大约有256个元素的固定数组时候,你也要使用链表。这时候,我们只需要为其静态的分配内存即可。视频游戏编程中90%的部分都是数据操作,所以数据尽可能简单和可见,这样才能够迅速地存取它,随意操作它,应当确保你的数据结构适合你所真正要解决的问题。
使用内联函数,通过使用inline指示符来完全摆脱函数调用,你甚至能够改进全局变量的使用时机,inline指示符指示编译器用函数体代码去替换函数调用,这样做无疑会使编译后的程序变得更大,但却有效地提高了运行速度。
如果你知道自己酷酷的跑车将要行驶上一段坎坷的荆棘路,最好的做法是停下来,然后掉头绕路而行。有很多人沿着一条很差的编程路线走着,直到在糟糕的代码堆中葬送了自己。能意识到自己所犯的错误并重新编写500行的代码,比写一个总是令人不快的代码结构要好得多。因此,如果在coding中发现问题,就要重新评估并确保你节约的时间是值得的。
不要怕使用全局变量,许多视频游戏不让你对时间要求严格的函数使用参数,而是使用一些全局变量来专递参数,巧妙地避开很多未知的问题。
经常备份你的工作。在coding游戏代码时,需要相当繁琐地锁定代码库中的代码,重写一个排序算法还是比较容易的,但是要重写角色AI或者重写碰撞检测则是困难得多了。
多用template模板来减少重复的代码,这样可以节省不少的代码量。
相关推荐
前端开发教程推荐,不定期更新
iOS开发工具小集合,不定期更新.zip
精品--【不定期更新】收集整理的一些网站中(如知乎、Quora、Reddit、Stack Exchange等)与
️ 前端开发工程师面试宝典,常见前端面试问题及答案!(不定期更新).zip
SpringMVC精品资源--常用javaweb技术,不定期更新,欢迎讨论。
编程资源(不定期更新)
例如,根据用户操作更新游戏状态、处理游戏事件等等。 ## 测试与调试 完成游戏逻辑代码后,需要进行测试与调试。可以利用工具进行单元测试,或者手动模拟游戏过程进行测试。如果发现问题,需要及时修改代码并进行...
微信小程序罗列,不定期更新!
mysql学习笔记,不定期更新
微信小程序相关资源整理,不定期更新
微星笔记本常见问题(不定期更新)
第1章 敏捷——高效软件开发之道 第2章 态度决定一切 1. 做事 2. 欲速则不达 3. 对事不对人 4. 排除万难,奋勇前进 第3章 学无止境 5. 跟踪变化 6. 对团队投资 7. 懂得丢弃 8. 打破砂锅问到底 9. 把握开发节奏 第...
计算单笔资金不定期回报率.xlsx源码EXCEL VBA宏编程xlsx实例代码下载计算单笔资金不定期回报率.xlsx源码EXCEL VBA宏编程xlsx实例代码下载计算单笔资金不定期回报率.xlsx源码EXCEL VBA宏编程xlsx实例代码下载计算单笔...
delphi编程手册网络版(会不定期更新内容) 该电子书由友益在线文档资料与授权软件开发 本电子书2300多篇实用编程文章,700多万字,编程时常见的问题里面一般都能解决。作为备查资料不可多得。 本电子书免费版,...
SSM(Spring + Spring MVC + MyBatis)框架作为Java开发中的黄金组合,为开发者提供了强大的技术支持和丰富的功能。本系列资料将带您从零基础开始,逐步掌握SSM的核心技术和最佳实践,助您在Java Web开发领域更上一...
PHP开发中的错误收集,不定期更新。 php开发的朋友需要用得到。
分享本人在学习、工作中,所使用的git环境配置。(不定期更新)
S60软件 S60手机软件 S60智能手机软件(不定期更新下载目录与下载地址表).docS60软件 S60手机软件 S60智能手机软件(不定期更新下载目录与下载地址表).doc
电信设备-文件更新时间信息发送方法及文件不定期更新下载的方法.zip