ai in flash games

29
戏人工智能 张启智

Upload: qizhi20

Post on 02-Jul-2015

4.021 views

Category:

Technology


9 download

DESCRIPTION

AI in flash games at Flash Platform Submit, Beijing

TRANSCRIPT

Page 1: AI in flash games

游戏人工智能

张启智

Page 2: AI in flash games

摘要

概述

有限状态机

操控行为

寻路

Page 3: AI in flash games

定性

可预测,效率高,易实现、理解、测试与调试

无法帮助 学习、演化

非定性

难以预测,具备学习能力,高仿真

难测试、调试,难度大

Page 4: AI in flash games

游戏引擎的抽象结构

Page 5: AI in flash games

状态与游戏

Page 6: AI in flash games

有限状态机

表示有限个状态以及在这些状态之间的转移和动

作等行为的数学模型

状态:存储关于过去的信息

转移:指示状态变更,并且用必须满足来确使转移发

生的条件来描述它

动作:是在给定时刻要进行的活动

游戏开发中,通常用 实现 控制

Page 7: AI in flash games

设计

更新当前状态

改变状态

Page 8: AI in flash games

案例:开心

进门

玩游戏

等餐与吃饭

去厕所

离开

Page 9: AI in flash games

并行状态机

把互斥行为分解到并行的层次中去

状态管理器维护每个状态层的当前状态

跨层阻止

移动层

停止

向左移动

向后移动

向前移动

向后移动

姿势层

站立

坐下

步行

跑步

掉下

行动层

空闲

战斗

制造

释放魔法

Page 10: AI in flash games

自治智能体

运行过程

行动选择

操控,计算轨道数据

移动,相同的操控可具有不通的移动模式

Page 11: AI in flash games

动力模型

动力模型

朝向向量与侧向向量组成局部坐标系

速度向量与朝向一直

加速度 力 质量

速度

: 朝向向量

: 垂直于朝向向量

: 质量

计算合力

Page 12: AI in flash games

操控行为:靠近与离开

靠近行为( ):返回一个操控智能体到达目标的力

离开行为与靠近行为相反

当前速度预期速度

预期速度-当前速度

Page 13: AI in flash games

操控行为:追逐与闪躲

预测目标未来位置,拦截 逃离目标

权衡准确率与效率

特殊情况:如直接面对时的策略

逃避者预测位置

追逐者

Page 14: AI in flash games

组合操控行为

操控力的截断

加权截断总和

带优先级的加权截断累计

概率抖动

优化:空间划分

Page 15: AI in flash games

案例:开心水族箱

Page 16: AI in flash games

案例:开心水族箱

Page 17: AI in flash games

行为树

任务的分解与决策

非枝叶行为的作用是用来做决定,枝叶行为是用来完成具体的任务

让父行为利用专门的代码做出决定

让子行为去竞争,让父行为根据子行为的渴求程度和关联度判断最终的取舍

自卫

使用手雷

掩蔽

防御

交战

使用手雷

战斗

搜寻

火力压制

反掩蔽

调查防御战后处理

闲置

Page 18: AI in flash games

基本路径寻找

视线移动、追逐

沿着墙走遍空间

避开障碍物

随机移动避开障碍物

绕行避开障碍物

Page 19: AI in flash games

地形与路径

生成地形数据

定义方向数据并分配权值

利用权重找出最优方向

1(+2)

2(+1) 3(+0)

4(+0)

5(-1)

6(+0)

7(+0)

8(+1)

Page 20: AI in flash games

导航图

利用预先放置好的节点计算路径

每个节点在另一个节点的视线内

Page 21: AI in flash games

节点表

A B C D E F G

A

B

C

D

E

F

G

Page 22: AI in flash games

图的遍历

盲目搜索

深度优先搜索( ):保证能找到一个目标节点

广度优先搜索( ):最优路径

启发式搜索

算法

博弈算法、遗传算法等

Page 23: AI in flash games

算法

把起始节点加进

不为空

当前节点 中成本最低的节点

当前节点 目标节点:

搜索完成:

把当前节点移入

每个邻节点 遍历当前节点的所有邻节点

该节点不在 与 中 该节点不是障碍

物:将该节点移入 中;

Page 24: AI in flash games

搜索过程

Page 25: AI in flash games

地形与动态影响力

(累计开销) 启发函数

地形通过修改 来影响寻路

动态影响地图:影响力对应( )

敌人视线的影响

被射杀的敌人对该区域的影响

Page 26: AI in flash games

物件体积的影响

Page 27: AI in flash games

总结

收集游戏数据

记录运行时的关键数据

根据数据分析与决策

执行决策,异常检查

解决问题的思路

分而治之

启发式

模拟现实

Page 28: AI in flash games

游戏项目经验谈

引擎和实现分离

随时方便的测试

尽早重构

使用版本控制系统

项目职能明确

敏捷开发,避免无谓的返工

避免过多工作压在同一人身上