博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
有限状态机FSM
阅读量:2137 次
发布时间:2019-04-30

本文共 746 字,大约阅读时间需要 2 分钟。

有限状态机,FSM,  Finite State Machine

 

游戏中的AI,大多数都是按照规则设定好的,没有太多花哨的技术。原因有几个:

一是出于风险成本的考虑,用一个新技术,需要程序员开发相应的算法和框架,游戏设计师重新上手设计方法和摸索算法的适用范围,小团队承受不起这样的开销,大团队又怕做坏名声;

二是“高级”的AI算法并不直观,难以设计。举一个例子,怎么利用神经网络来训练一个士兵AI?我见过的一个例子是设计师用几个按键来操作士兵移动攻击,然后程序自动记录敌我双方的数据和设计师的操作,最后利用这些信息作为input构建一个行为树。这个方法的问题有三个,一是效率奇慢,因为如果数据不够,行为树就可能覆盖不了所有情况,但多少才是“够”,又没有定论;二是错误的操作也会被记录下来,当然可以开发一个功能来删除设计师的某个动作;三是行为树的结果是无法解释的,相当于一个黑箱。

 

由于上述的原因,一般的公司都会使用比较传统的有限状态机。

虽然第一次听的话可能会拗口,其实有限状态机的意思其实很简单,它包含了有限个的状态和状态间的转换条件。最直白的说法就是几个if...else...语句。为了弄明白这个概念,我们讲一个英雄的故事:

从前有一个胆小如鼠的英雄,

  1. 他看到哥布林就会跑过去打它;
  2. 他看到半兽人就会逃跑;
  3. 他看不到哥布林也看不到半兽人就会休息;
  4. 他看到哥布林也看到半兽人也会跑。

我们可以从中抽象出这样的一个有限状态机:

 

有限状态机很符合我们的认知,但它有一个致命的缺点——它随着状态和转换条件的增多而急速地变得错综复杂,以至于很难对它做出改动(想象一下,多加一个状态,则需要增加几条转换线,越多状态,需要增加的转换线越多)

 

也由于这个原因,比较多的开发者投入了行为树的怀抱。

 

 

 

参考:

转载地址:http://mtygf.baihongyu.com/

你可能感兴趣的文章
contOS6 部署 lnmp、FTP、composer、ThinkPHP5、docker详细步骤
查看>>
TP5.1模板布局中遇到的坑,配置完不生效解决办法
查看>>
PHPstudy中遇到的坑No input file specified,以及传到linux环境下遇到的坑,模板文件不存在
查看>>
TP5.1事务操作和TP5事务回滚操作多表
查看>>
composer install或composer update 或 composer require phpoffice/phpexcel 失败解决办法
查看>>
TP5.1项目从windows的Apache服务迁移到linux的Nginx服务需要注意几点。
查看>>
win10安装软件 打开时报错 找不到 msvcp120.dll
查看>>
PHPunit+Xdebug代码覆盖率以及遇到的问题汇总
查看>>
PHPUnit安装及使用
查看>>
PHP项目用xhprof性能分析(安装及应用实例)
查看>>
composer安装YII
查看>>
Sublime text3快捷键演示
查看>>
sublime text3 快捷键修改
查看>>
关于PHP几点建议
查看>>
硬盘的接口、协议
查看>>
VLAN与子网划分区别
查看>>
Cisco Packet Tracer教程
查看>>
02. 交换机的基本配置和管理
查看>>
03. 交换机的Telnet远程登陆配置
查看>>
微信小程序-调用-腾讯视频-解决方案
查看>>