» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

看来做格斗游戏 学习性 AI 还真是难啊.

这几天一直在研究 mugen. 想自己改改 AI. 于是去各大论坛找 AI 教程.
没想到某老大直接给了一个 学习型 AI 的制作,直接傻眼....

http://www.mugenchina.org/dzbbs/ ... &extra=page%3D1


TOP

好 AI 不是无敌... 那是烂 AI.......



TOP

引用:
原帖由 shinken4503 于 2008-10-23 01:13 发表
这个有什么好研究的
玩家的 每个操作AI其实都知道,真要100%难度全开你连AI的毛都不会碰到一根
说白了AI设计就是结合该角色本身的攻防特性进行出招种类和几率的设置,再加上基于难度反比修正的强制失误罢了,这就是 ...
以前我也这么想但是其实不是....


TOP

我来翻译一段我在 Mugen 里最喜欢的 POTS 的真好鬼的 AI

这段 AI 是定义 好鬼什么时候发出 必杀升龙拳的
给你们一点了解

[State -1, messatsugoushoryuu]        ; 定义 -1 招式名称
type=changestate           ; 类型 为 动作转换
value=3100                  ; 作编号 3100 这个动作 (就是 必杀升龙)
triggerall= var(59)>=1 && numenemy ; 必要条件 ; 变量 59 大于等于 1 和 有敌人存在
triggerall= roundstate=2 && statetype!=A && prevstateno!=3100; 必要条件:开战状态,自己不在空中,上一个动作不是浩升龙拳
triggerall= power>=1000 && var(20)<=60 必要条件 能量 大于等于 1000 变量 20 小于等于60
triggerall= !(enemynear,ctrl) && (enemynear,stateno!=[120,155]) 必要条件 最近的敌人不在首控制状态 (比如出招,或者中招ing) 和 最近的敌人不在防御状态--------(也就是说 这个 AI 是用来定义根连招的不会空放)
triggerall= (p2bodydist x=[-80,80]) && (p2dist y=[-40,0]) && p2statetype!=L 必要条件 (定义了敌人的相对位置) 和 敌人不倒地状态.
triggerall= (enemynear,const(size.head.pos.y)<=-40) || (enemynear,statetype=A) 必要条件 这个不懂.... 以一个Y 坐标? 或者 敌人在进攻状态
trigger1= (stateno=210 || stateno=225 || stateno=240 || stateno=255) 触发条件1: 自己在 210 225 240 255 的动作下 都是一些普通拳脚动作
trigger1= movehit && (p2bodydist x=[0,30]) && random<100 和 前面动作击中对方 和 对方距离在 30 以内,和 随机数小于100
trigger2= (stateno=1100 || stateno=1305) 触发条件2 在 1100 或者 1305 动作上 (也是绝招)
trigger2= movehit && (p2bodydist x=[0,30]) && random<250 和 前面动作击中对方 和 对方距离在 30 以内,和 随机数小于250
trigger3= (stateno=[1000,4999]) && numhelper(stateno+5) && var(10)<=6 触发条件3 动作在 1000-4999 内 后面不懂
trigger3= helper(stateno+5),var(3) && random<100
trigger4= ctrl && enemynear,movetype=A && (p2bodydist x=[0,70]) && random<250 触发条件4 自己在控制状态,敌人在近处处于进攻状态,和 随机数小于 250

TOP

发新话题
     
官方公众号及微博