作者ddavid (谎言接线生)
看板GameDesign
标题Re: [程式] 一般游戏的AI作法有人知道吗?
时间Tue Jan 29 01:24:30 2008
※ 引述《mudgame (BAGA)》之铭言:
: 努力嚐试写了好几年的GAME,不过一直没有接触
: 到人工AI的部份( 我设计的都是比较简单的 RPG
: 游戏 ),直到最近玩游戏王的东西,自己也试着
: 去撰写,玩家之间对战的部份算超满复杂的,不
: 过只要能够厘清各种牌的启动方式,还是有办法
: 写出来,可是电脑AI的部份就完全没辄了..
: 不知道有没有大大是专写人工AI的东西?可以给
: 人工AI初心者的我一点建议吗?XD
: 比如说可以看哪方面的书籍这样..
: → LinaInverse:参考看看「有限状态机」 Finite State Machine 01/28 23:01
: 推 ddavid:游戏王以至MTG这种纸牌游戏要写出一般性的AI难度是很高的喔 01/29 00:27
: → ddavid:,你最好从针对操作单一牌组的AI下手,换一副牌就换一个AI 01/29 00:27
: → ddavid:,这样会稍微简单「一些」。无法简单化的部分是,看出对手 01/29 00:28
: → ddavid:的牌组打法并决定怎麽应战这点,这部分难度大概就跟拿到什 01/29 00:29
: → ddavid:麽套牌都能上手一样难,这部分的建议则是忽视或者只针对一 01/29 00:30
: → ddavid:些一般化情况做固定应对就好。 01/29 00:31
: → mudgame:感谢大大的分享..只是我是AI超嫩咖,只会写..HP太少用补血 01/29 00:40
: → mudgame:魔法,HP正常随机用技能攻击这种程度而已..囧 01/29 00:41
: → mudgame:连五子棋那种的AI也写不出来..所以..可以介绍更简单的学习 01/29 00:42
: → mudgame:方式吗?或者从哪边入门比较好呢? 01/29 00:43
基本上这种可自组Deck对战纸牌游戏的AI本来就是属於难度极高的,你要做这个
可以说是跳关跳很大,八大都还没打就要挑威利博士(哎,虽然威利也不见得比八大
强XD)。不过还是可以给你一些想法:
1.LinaInverse版友所说的Finite State Machine去看一看(这不是一台机器,而是
一套方法)。这东西概念算是很直观好懂但也很实用。你所谓的「HP太少用补血魔
法,HP正常随机用技能攻击」这种经验法则简单AI,只要加强一点点概念就可以变
成Finite State Machine了,效果会出乎你意料地好。
2.然而很遗憾地,光用Finite State Machine是很难一般化地解对战纸牌游戏的。除
非你能让电脑自己去分析每张牌能干什麽、这副Deck能做什麽、对手对你做什麽时
该怎麽解等等,然後自己建出FSM来。这已经是Data Mining & Machine Learning
甚至以上的阶段了。初学者就一口气冲到这里会哭出来XD
3.然而降低难度到「限定牌组、固定应对」的话就有用FSM做出来的可行性。基本上
就是靠你自己先去理解这个牌组,同时收集这牌组遇到什麽情况该怎麽反应等等经
验法则,先行建好FSM让电脑去跑这样。
4.另外你提到五子棋的部分,那个写法其实跟纸牌游戏有一定程度的差异,参考一些
资料结构与演算法的书就可以了解初步。当然初步的资料结构跟演算法是各种领域
共通的东西,你也都应该去看一看就是。
--
「珍贵的回忆?还不是跟梦一样虚幻不实的东西?你想要什麽样的回忆,我帮你
做出来啦!」
--艾蜜思,谎言事务所实现使者
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.167.2.43
1F:推 yzugsr:棋类AI的话 从minimax和alpha-beta pruning入门吧 01/29 01:35
2F:→ yzugsr:找本AI的英文书 应该都有这些演算法 01/29 01:35
3F:→ cmcer:棋盘游戏比较常用到decision tree 01/29 11:16
4F:推 popfish:先看看「游戏人工智慧」里面提到的一些概念吧 01/29 12:07
5F:→ popfish:前面变化不多的,可以用专家系统,後面变化多自己要先想好 01/29 12:08
6F:→ popfish:才可以设定思考的函数或决策树给你设计的AI 01/29 12:08
7F:→ ddavid:主要是一开始就挑战游戏王或MTG这种「资讯非全公开、规则复 01/29 15:42
8F:→ ddavid:杂、牌组可变」的游戏太难了XD 01/29 15:43
9F:推 mudgame:谢谢各位大大的指导,又上了一课,看到好多新的名词..^^" 01/29 19:25
10F:→ mudgame:想做好玩的游戏,要学的东西果然还有很多..XD 01/29 19:26