游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3527|回复: 7

一个AI设计的思考过程

[复制链接]

38

主题

96

帖子

148

积分

注册会员

Rank: 2

积分
148
发表于 2004-5-25 15:56:00 | 显示全部楼层 |阅读模式
                                一个AI设计的思考过程

记得小时候用LOGO语言做过一些让小海龟在屏幕上画图的程序,当时觉得那很简单,也很自然,就几条简单的指令就可以让它画出不可思议的复杂图形来。当时我是不知道在这语言的背后是一个多么复杂的系统,只是用这简单的控制语句就可以画出图形来。
上面说明了一个问题要想很好的操作一个对象就的制定一个很好的通用语言。程序中的程序,也就是说最好应该有个虚拟机来运行智能控制语言。在AI控制层上我们不能去直接写底层代码,那会使问题变得复杂万分,涉及太多的细节,而无法写出漂亮的AI表现。

目标1:建立一个脚本程序用来间接控制对象。

关于AI底层功能的需求,大概分为:环境知识,组队效果,攻击能力,生存本能。
环境知识,是一个AI体应该懂得根据周围的环境获得有用的信息来影响思考。
组队效果,是要在大局上的AI处理,AI体能够根据其他的活动单位影响思考。
攻击能力,是AI体能根据自身的各种能力,攻击,移动,能够做的动作和行为来影响思考。
生存本能,如何达成目标,自己如何失败,必须有目标,才能有意义。

        关键问题:我打算从一些关键字来说明我的看法。
        环境信息;
        目标;
        行为;
        任务;
       
        思考核心在于目标,有了目标,就会根据环境信息下达任务驱动行为。
       
// 环境类,包含所有AI需要的信息,可能跟灵活的方法是根本不定义,
// 直接从游戏中取出,放在这里只是说明有这样一个虚构的事物,说明包括一
// 个环境。
class CEnvironment
{
public:
    int m_iSomething;
    any m_aSomething;
    ref m_rSomething;
};

// 游戏中的将要由AI控制的对象
class IObject
{
};
// 游戏中有行为的对象
class IActionObject : public IObject
{
};
// 游戏中要求AI控制的对象
class ITaskRunnerObject : public IActionObject
{
    virtual OnReciveAITask( void* pTask )=0;
};

// AI对象,我命名为AIWorker,因为AI我的感觉就像是管理行为的工作者。
interface IAIWorker : public IUnknown
{
    virtual HRESULT QueryInterface( IID iid, LPVOID* lpWorker );
}

// AI实际对象,在游戏中有很多个AI对象,他们按照DoScript里的脚本完成
//思考,并下发任务。
class CAIWorker
{
public:

    void IntentThinking()
    {
        //分析环境
        //分析目标
        //分析任务

        // 整个这部分准备提出AI语言,DoScript();
    }

    void ProcessTask()
    {
        m_pIntro->OnReciveAITalk(m_TaskList.pop());
    }

protected:

    LeadupList m_GoalList;
    LeadupList m_TaskList;
    CEnvironment env;
    ITaskRunnerObject *m_pItro;

};

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2004-5-25 21:02:00 | 显示全部楼层

Re:一个AI设计的思考过程

不懂。

3

主题

186

帖子

190

积分

注册会员

Rank: 2

积分
190
发表于 2004-5-29 09:45:00 | 显示全部楼层

Re:一个AI设计的思考过程

楼主的想法似乎很有意思,可否再细谈一下!?

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2004-6-1 18:33:00 | 显示全部楼层

Re:一个AI设计的思考过程

是不是就是一个FSM?

25

主题

87

帖子

87

积分

注册会员

Rank: 2

积分
87
发表于 2004-6-1 19:24:00 | 显示全部楼层

Re:一个AI设计的思考过程

   就是一个封装类,提供一些外部接口对吗?

18

主题

135

帖子

143

积分

注册会员

Rank: 2

积分
143
发表于 2004-6-2 11:15:00 | 显示全部楼层

Re:一个AI设计的思考过程

狂学习

0

主题

11

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2004-6-8 14:47:00 | 显示全部楼层

Re:一个AI设计的思考过程

学习

0

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2004-6-8 17:20:00 | 显示全部楼层

Re:一个AI设计的思考过程

学无至尽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-7-1 17:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表