双缓冲(double buffer)是在渲染中用到的基本技术,目的是为了提高绘图速度,防止屏幕的闪动,原理可以简述如下,生成两块内存,一块作为后缓冲(background buffer),一块为前缓冲(foreground buffer),前缓冲内存的是实际显示在屏幕上的内容,后缓冲可以称为工作缓冲[……]
共享数据 — “黄金屋”还是“垃圾堆”
AI结构中,有一种情况非常容易出现,就是程序员会非常希望有一块区域,大家可以读取,存储一些信息,并且这块区域是全局共享的。不管是写作看似丑陋的全局变量,还是有一定组织的Blackboard结构,或者作为参数一路传到底,这种结构可以被统称为共享数据(Share Data)。作用就是在不同的模块间传递变[……]
Behavior系统的思考和实现(3)
上一篇文章里说的一种基于命令的结构,这种结构的缺点主要是,没法设计行为结构,GD也没法参与其中,而且不是一种层次逻辑结构,下面这种结构在游戏界也是一种主流。
基于静态树结构的行为系统(Based on Static Tree’s Behavior System)
这种结构就是传说中的Beha[……]
Behavior系统的思考和实现(2)
上次说了AI行为的一些想法,在很多的游戏AI引擎中,都或多或少存在这样的概念,这篇文章想继续上面的话题,说说实现。在现在的项目里,我做过一些探索,并且用两种方式实现过AI行为系统,效果都还可以。
在实现前,一般有几个必须要考虑的问题,当然,这些不仅适用于游戏AI开发,也适用于其他类型的软件开发[……]
Behavior系统的思考和实现(1)
路的起点
其实,刚进游戏这个行业,也没有想过要做哪块,毕竟对游戏开发并不熟悉,一开始比较向往做3D,因为游戏给人的第一感觉就是画面,而且不少讲游戏开发的书也是以3D为主。但对一个newbie来说,3D的上手难度会比较大,需要一定时间的学习和积累,我不是计算机系毕业,在大学最多做过的程序是网络,对图形,DX基上[……]
阅读代码的一些心得(3)
【游戏篇】
0. 我的游戏引擎核阅读心得:找到Update,就找到了一切!
1. 找到游戏主循环:游戏主循环是游戏的核心所在,所以找到主循环至关重要,有几个办法,如果代码是可运行的(一些时候,代码连编都编不过),那比较简单的就是加断点(其实很多时候,都可以用加断点的方式来辅助阅读),这样[……]
阅读代码的一些心得(2)
【通用篇】
0. 我的一句话心得:“看代码有时候和阅读外文文章一样,先泛读,了解文章大意,再精读,了解单词语法。”
1. 了解代码的命名规则:代码一般都有自己的命名规范,比如cl打头表示类,E打头表示枚举,函数名前会带返回值类型等等,掌握这些命名规则,可以很方便的知道这个变量或函数的信息[……]