坦克大战ai引擎设计
2008-12-20 16:19
295 查看
坦克大战ai引擎设计
前言:人在山边约我和他一起写一个3d坦克大战游戏,并且约定我们写的免费游戏都开源。这几天他在写3d渲染库,我就研究了一下ai系统。因为是刚刚接触ai引擎,所以设计上肯定有缺陷。呵呵。
一、需求
为坦克大战敌军坦克设计ai,这是一个小游戏,所以不必设计复杂的ai,用状态机就足够了。
二、概要设计
一个分层的基于消息的状态机系统,敌军坦克假设能看到所有地图,并且不同的敌军拥有不同的智商。
三、状态图
状态机高层
状态机低层:
四、消息井
状态机高层状态是由程序主动指定而不是ai自动指定的。
底层状态消息由状态发送到MessagePump里,再由MessagePump调用消息的回调函数
五、实现方法
Message类的header
class cMessage
{
Public:
cMessage(int type = MESSAGE_DEFAULT)
{
m_typeID = type;
m_deliverd = false;
m_timer = 0.0f;
}
~cMessage(){}
int m_typeID;//消息类型
int m_fromID;//发送消息的对象的id
int m_toID;//发送消息对象到哪
float m_timer;//是否延时发送
bool m_delivered;//是否已经发送
}
template<typename
T>
class
cDataMessage : public cMessage
{
Public:
cDataMessage(int type, T data) :
Message(type){m_dataStorage = data;}
~cDataMessage(){}
T m_dataStorage;
}
MessagePump类,是一个单件
class
cMessagePump
{
公共接口:
1.
update(float dt)每帧循环调用,处理逻辑,检测队列中的每个消息,若消息要延时发放,则减少计时器,调用消息的回调函数,删除已发送消息
2.
为消息井插入一个消息类型
3.
若存在某消息类型,还未为他注册回调函数,则注册
4.
反注册某消息类型
5.
发送消息
}
未完待续…………
六、
前言:人在山边约我和他一起写一个3d坦克大战游戏,并且约定我们写的免费游戏都开源。这几天他在写3d渲染库,我就研究了一下ai系统。因为是刚刚接触ai引擎,所以设计上肯定有缺陷。呵呵。
一、需求
为坦克大战敌军坦克设计ai,这是一个小游戏,所以不必设计复杂的ai,用状态机就足够了。
二、概要设计
一个分层的基于消息的状态机系统,敌军坦克假设能看到所有地图,并且不同的敌军拥有不同的智商。
三、状态图
状态机高层
四、消息井
状态机高层状态是由程序主动指定而不是ai自动指定的。
底层状态消息由状态发送到MessagePump里,再由MessagePump调用消息的回调函数
五、实现方法
Message类的header
class cMessage
{
Public:
cMessage(int type = MESSAGE_DEFAULT)
{
m_typeID = type;
m_deliverd = false;
m_timer = 0.0f;
}
~cMessage(){}
int m_typeID;//消息类型
int m_fromID;//发送消息的对象的id
int m_toID;//发送消息对象到哪
float m_timer;//是否延时发送
bool m_delivered;//是否已经发送
}
template<typename
T>
class
cDataMessage : public cMessage
{
Public:
cDataMessage(int type, T data) :
Message(type){m_dataStorage = data;}
~cDataMessage(){}
T m_dataStorage;
}
MessagePump类,是一个单件
class
cMessagePump
{
公共接口:
1.
update(float dt)每帧循环调用,处理逻辑,检测队列中的每个消息,若消息要延时发放,则减少计时器,调用消息的回调函数,删除已发送消息
2.
为消息井插入一个消息类型
3.
若存在某消息类型,还未为他注册回调函数,则注册
4.
反注册某消息类型
5.
发送消息
}
未完待续…………
六、
相关文章推荐
- 游戏AI引擎设计——设想
- 提炼游戏引擎系列:初步设计引擎
- 微内核流程引擎(IVR导航)的设计与实现(二)——功能描述
- 转帖:反病毒引擎设计
- 我的模板分析引擎类PHP的.net开发方法--标签设计篇
- 揭秘jbpm流程引擎内核设计思想及构架
- MMORPG大型游戏设计与开发(服务器 AI 逻辑设定和状态结点)
- 五子棋AI设计
- Mesos容器引擎的架构设计和实现解析
- 反病毒引擎设计之实时监控篇
- 计算概论大作业——黑白棋AI设计(持续更新中……)
- AI已经成为NVIDIA的主要增长引擎
- V8 Javascript 引擎设计理念(转载)
- 关于引擎的设计
- 基于opengl的地图渲染引擎设计与实现
- 高性能MMORPG通用服务端引擎设计之->基本概念篇
- cocos2d-x引擎的游戏框架设计
- 基于cocos2d-x引擎的游戏框架设计
- 反病毒引擎设计全解(一)