作者azureblaze (AzureBlaze)
看板GameDesign
标题Re: [请益] 回合制的游戏AI设计概念
时间Sat Sep 24 00:33:24 2011
提供一下我觉得满适合作为AI设计参考的东西
这个人写了一个玩弹幕射击游戏的BOT
http://www.nicovideo.jp/watch/sm8089015
(要nico帐号才能看)
他的AI是用一种叫做「议会制弹幕回避机关」的系统
http://shinh.skr.jp/diet/
实际上满类似类神经网路的
虽然射击游戏是即时的,可是所谓的「即时」也只不过是每秒
要进行60个回合的回合制游戏
这个议会中有很多议员,每个议员有各自的考量,然後最後投
票决定这个回合要做什麽。以东方而言,每个回合可以做的事
有:
移动八个方向,高速低速共16种
丢炸弹
什麽都不做
议会的成员有下列几种
议长:
统合所有议员的意见,做出最後的决定。
所谓的统合不是单纯的投票而已,每个议员对同样的行动赞成
和反对的程度,也就是对自己决定的自信都不一样。
生存优先:
对普通的状况不表示意见,可是强烈否决任何会导致立即死亡
的举动。拥有绝对的否决权,所以除非被逼到毫无选择否则不
会死。(其他议员存在的目的就是防止被逼死)
安全优先:
喜欢往危险度低的方向移动。危险度用子弹的距离、方向、速
度计算。自信较高。
(不知道该怎麽称呼):
专门针对朝自己方向来的子弹的议员。计算朝自己来的子弹的
中弹时间、回避需要的时间,计画往子弹垂直的方向闪开。自
信随画面中朝自己来的子弹的数量而定。
摇摆不定:
不管子弹左右移动。配合其他议员用的,自信通常较低。
想家:
想要回到画面中下方这种通常比较安全的位置,防止被逼到墙
角。离家越远越想家。
剩下几个上面那个网页没写可是我相信这个BOT有用到
攻击性:
往可以攻击到敌人的方向移动。
道具回收:
往道具的方向移动。
统合以上的意见然後进行大概相当长久的参数调整後就能弄出
一个AI了。
我觉得利用这种方式可以很方便的弄出许多游戏的AI
主要的思考点在於「在现在的环境下什麽行动是好的,什麽行
动是不好的?有多好?有多不好?」
我就用这样的方式写过俄罗斯方块的AI
可以消掉一排?很好
可以尽量贴齐别的方块?不做
会跌得比较高?不太好
会留下空格?很糟
会碰到顶端?拜托不要
虽然他顶多撑几百个方块就挂了,可是考虑到反应速度和不会
手残我觉得他比我强很多XD
跟写出会做出最佳选择的AI比起来,能做出不错选择的AI容易
很多。以一般游戏而言花那种精神还不如让AI作弊,省时省力
又省钱。
当然,像是棋类的就只能硬干了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.88.76
1F:推 KanoLoa:我上次写个FB俄罗斯方块的外挂才发现AI要强真的要写好多.. 09/24 00:43
2F:→ azureblaze:除非是狂人或是要给狂人玩不然真的不要想弄得无敌强XD 09/24 00:54
3F:推 asleisureto:以前做格斗游戏的AI很废 但还是不少玩家反映电脑太强 09/24 01:04
4F:→ asleisureto:所以还是要看游戏类型噜 09/24 01:05
5F:→ azureblaze:毕竟格斗反应速度还是占很大的比重XD 09/24 01:15
6F:→ azureblaze:只要让人没有空深思熟虑烂AI也会很强 09/24 01:16
7F:推 ericinttu:优先考量的AI 09/24 01:24
8F:推 ericinttu:不知道原PO说蛮像ANN是因为哪一个因素? 09/24 01:34
9F:→ ericinttu:preference+weighted sum, 从内文我只看到这两个要素. 09/24 01:36
10F:→ ericinttu:ANN还需要 feedback 跟 stable state. 09/24 01:36
11F:→ azureblaze:所以才只是"像"而已啊 09/24 01:53
12F:→ azureblaze:後面两个实做起来比前面的麻烦很多 09/24 01:54
13F:推 Hevak:这个东方AI好像很有趣 09/24 05:58
15F:→ art1:免帐号就能看nico影片+字幕 09/24 07:23
16F:推 LaPass:唔唔唔... 这概念我想过,只是想不出办法来实行。 09/24 08:02
17F:推 AmosYang: +1 interesting 09/24 19:53
18F:推 rexrainbow: +1 interesting 09/26 13:07