游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2023|回复: 9

[求助] 高级电脑AI是怎么写的了

[复制链接]

3

主题

20

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
QQ
发表于 2019-4-30 17:38:49 | 显示全部楼层 |阅读模式
最近看到了AI胜过dota职业玩家。我是做RTS的,之前问过我们主策,RTS的电脑AI是很多行为树,然后根据难度不同,执行行为的频率不同。
MOBA中的AI是怎么实现的了。像躲避英雄技能这个是怎么实现的了,其它行为,像打野或者回营地,出装,我可以用行为树来的执行优先级的或者执行频率来思考。
躲避英雄技能这一块是怎么写的了

0

主题

38

帖子

245

积分

中级会员

Rank: 3Rank: 3

积分
245
发表于 2019-5-6 14:14:26 | 显示全部楼层
我以前做过,开始时用来做角色分身,后面用来做高级的怪物AI,还算比较有用
下面我略微讲一下实现方式,我把AI执行的事件分为2个类型
1、默认行为,按照某些条件默认执行的行为,包含多套行为ID(判断目标为自身)
这套行为可以说是AI的基础行为,它会决定AI在自身血量、状态、特定情况等条件下调用什么动作,绝大多数AI都只有这一行为
2、插入行为,某些外部事件发生后执行的行为,包含多套反馈(判断目标为对象),它会决定AI判断对象的在技能、位移、状态等条件下调用什么动作,这里就可以做出躲避技能等行为
这两个行为有一个优先级,根据优先级来决定执行的行为ID(有2个类型,那么会出现2个行为中条件都满足的情况)
3、动作库,上面我说过两种类型的行为最终都是调用动作,那么动作就是基础行为的拆解,如移动、释放技能、使用道具等等
这套系统很复杂,必须是一个对技能、AI都非常熟悉的人才能弄出来。

0

主题

38

帖子

245

积分

中级会员

Rank: 3Rank: 3

积分
245
发表于 2019-5-6 17:50:57 | 显示全部楼层
回复在编辑后不见了,重新说一遍。。。
我之前做过一套较为复杂的AI,附带了应对策略,下面简单介绍一下思路
我将AI策略分成2个类型
1、默认事件,事件执行的判定条件为执行者自身,绝大多数游戏的AI都是由此项事件组成
如 根据血量、状态等条件 来执行特定动作
2、插入事件,事件执行的判定条件为执行者仇恨对象,用来对判定对象所做动作做出反应
如 根据目标血量、状态、施放技能等条件 来执行特定动作
2个事件共享一套执行优先级,来确认应该执行的事件。一般情况下插入事件的优先级高于默认事件,这样AI可以做出不同的反应

事件由数个动作组成,不同的动作代表不同的操作
如 移动、防御、使用技能、使用道具等基础操作

不同的事件可以按照某些随机率或条件来执行多个动作,这样可以模拟出玩家的反应,包括主动失误=.=。
无标题.png

0

主题

7

帖子

140

积分

注册会员

Rank: 2

积分
140
发表于 2019-5-7 10:27:43 | 显示全部楼层
openAI是强化学习,你并不需要告诉他躲技能,是他自己通过训练学会的

3

主题

20

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
QQ
 楼主| 发表于 2019-5-7 15:27:25 | 显示全部楼层
Glenffi 发表于 2019-5-7 10:27
openAI是强化学习,你并不需要告诉他躲技能,是他自己通过训练学会的

您说的这个是不是就是AI复制玩家行为!但是网上这类型的东西很少!比较难理解!

3

主题

20

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
QQ
 楼主| 发表于 2019-5-7 15:35:28 | 显示全部楼层
aminyjiss 发表于 2019-5-6 17:50
回复在编辑后不见了,重新说一遍。。。
我之前做过一套较为复杂的AI,附带了应对策略,下面简单介绍一下思 ...

谢谢您的回复!躲避技能就是判定目标对象中所作出的技能释放动作,来执行躲避技能的操作的!
此外,像MOBA游戏,那么多英雄,是不是默认行为都是通过配置来填写,而插入行为就是单独处理了?

0

主题

38

帖子

245

积分

中级会员

Rank: 3Rank: 3

积分
245
发表于 2019-5-7 16:07:09 | 显示全部楼层
18200409734 发表于 2019-5-7 15:35
谢谢您的回复!躲避技能就是判定目标对象中所作出的技能释放动作,来执行躲避技能的操作的!
此外,像MOB ...

AI太复杂,咱们一般情况下玩不了高级的;据我所知,游戏中绝大多数还是得配置好的,不论是默认行为还是插入行为。
配置AI的默认行为,主要注意几个关键事件就好,比如说自身血量、自身状态、特定连招、受控处理
配置AI的插入行为,主要注意处理 如 目标受控处理、目标特殊技能、目标特殊动作、目标特殊状态
不可能写的过于详尽,我觉得做到这样基本能够在游戏里面使用了。

0

主题

7

帖子

140

积分

注册会员

Rank: 2

积分
140
发表于 2019-5-7 16:29:22 | 显示全部楼层
18200409734 发表于 2019-5-7 15:27
您说的这个是不是就是AI复制玩家行为!但是网上这类型的东西很少!比较难理解! ...

不是复制玩家行为,是他自己和自己一局一局打,你可以给他设置一些奖励和惩罚(比如这局比赛赢了+10,推掉一座塔+5,杀掉敌人一次+1,被杀-1,被推掉塔-5这样)。AI在做出一个行为之后,环境会马上做出反馈,AI通过这个反馈(是奖励还是惩罚)来调整自己之后的行为,通过超级大量的训练不断给自己的行为纠错。openAI和alphaGo的原理你都可以这样理解,他并不需要复制玩家的行为。

3

主题

20

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
QQ
 楼主| 发表于 2019-5-9 14:26:29 | 显示全部楼层
Glenffi 发表于 2019-5-7 16:29
不是复制玩家行为,是他自己和自己一局一局打,你可以给他设置一些奖励和惩罚(比如这局比赛赢了+10,推 ...

谢谢您的解答!祝您一切顺利!(* ̄︶ ̄)

3

主题

20

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
QQ
 楼主| 发表于 2019-5-9 15:50:30 | 显示全部楼层
aminyjiss 发表于 2019-5-7 16:07
AI太复杂,咱们一般情况下玩不了高级的;据我所知,游戏中绝大多数还是得配置好的,不论是默认行为还是插 ...

谢谢您的解答!祝您一切顺利!(* ̄︶ ̄)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-18 06:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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