作者VVll (信)
看板GameDesign
标题Re: [请益] 关於一些游戏的AI
时间Mon Nov 26 23:47:56 2012
※ 引述《kusanagi02 (漫漫长夜)》之铭言:
: 程度:几乎是零,大学一年级有写过JAVA和C,但是现在只会hello word 然後
: print这样(目前距离大一时期已经快10年XD)
: 需求:我喜欢玩KOF98~2000,WC3,英雄连队,总而言之就是格斗游戏+即时战略
: 因为我只喜欢和电脑打,打久了忽然某天想要改写AI,但是不知要从哪里入门
: 所以上来请益
: 比如我觉得电脑的草薙太蠢,想要让他至少学会2C反击对空,或者基本连续技
: 不要乱放枪(重拳+毒咬3hits)
: 同理,我也觉得WC3电脑很蠢都不会看玩家出什麽单位换兵,比如不死族永远不会
: 出毁灭者,CP完不要每次都回家
: 请问从哪里入门好呢(我只是想当业余的,不要鞭太凶XD)
以RTS来说 这就是一个经典的AI设计
https://www.youtube.com/watch?v=IKVFZ28ybQs
SC2的坦克架炮後 拥有长射程与范围伤害
以正常玩家的反应速度来说 100只狗 去打20台坦克 可能都打不赢
但假如 这100只狗是把AI当成APM 8000的咧
就会出现影片结果 根本威能
同理AI设计 越强大的设计就越复杂
因为要考虑的细节就越多
简单的AI设计可以从 井字游戏下手 再来就是五子棋..
棋类中据说最难的是日本的将旗
当然 你可以设计横向射击卷轴的AI 比如雷电 1943
要把所有可能判断到 又有非常快的反应速度 又要去学演算法
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.240.195.178
1F:推 chenglap:我觉得很简单: 你不懂写游戏, 就不懂写游戏 AI. 11/26 23:50
2F:→ VVll:我觉得非常擅长某一种游戏的玩家 也可以做好AI设计 11/26 23:58
3F:推 kuso0516:我还以为最难的是围棋@@ 11/27 00:45
4F:→ VVll:将旗有个特别规则 吃掉的旗子 可以变自己的(俘虏) 11/27 01:02
5F:推 ddavid:围棋的复杂度,不见得比一些复杂一点的RSLG、SLG或RTS高 11/27 02:15
6F:→ ddavid:尤其RTS的AI有非常严格的运算时间限制,当然就算是回合制的 11/27 02:16
7F:→ ddavid:SLG也不能算到玩家不耐烦 11/27 02:16
8F:推 LaPass:最难的真的是围棋..... 11/27 12:20
9F:→ LaPass:就规则来讲是很简单没错,比大多数一堆技能、规则、单位的 11/27 12:21
10F:→ LaPass:游戏简单很多。但是AI就是做不来。 11/27 12:21
11F:推 LaPass:而且,下围棋的时间很充裕的,高端比赛有可能下整天,但AI 11/27 12:23
12F:→ LaPass:还是算不出来。 11/27 12:24
13F:→ azureblaze:围棋一步有300多个选择 复杂度非常高... 11/27 13:57
14F:→ azureblaze:西洋棋人类10年前就被打败了 电脑围棋还是输很惨 11/27 14:02
15F:推 ddavid:前两楼把SLG的计算量看得太小了吧,随便粗浅估计,假设一个 11/28 03:38
16F:→ ddavid:回合制RSLG有五个角色,每个角色移动力平均让他们可以移到 11/28 03:38
17F:推 elfkiller:围棋难在选择多且难以挑选 规则难通常"好的行动"有限 11/28 03:39
18F:→ ddavid:10个不同的位置(包括不动),每个角色有3个不同的技能可使 11/28 03:39
19F:→ ddavid:用,允许先移动再使用技能或先使用技能再移动。 11/28 03:40
20F:→ elfkiller:围棋利益较难以判断 评价函数撰写较困难 11/28 03:40
21F:→ ddavid:光是这样,选择就有(5!)*10*3*2 = 7200种。 11/28 03:41
22F:→ ddavid:至於SLG游戏的利益是不是真的比围棋好判断,我个人认为否。 11/28 03:42
23F:推 ddavid:一些很简单的例子,现在拼掉MP把对方某单位拼死然後被其他 11/28 03:44
24F:→ ddavid:单位反击,或者稳着慢慢龟比较好?要先处理DD还是控场?要 11/28 03:45
25F:→ ddavid:怎样走位抓下一回合甚至更之後回合的一击杀机会?先占地利 11/28 03:46
26F:→ ddavid:资源慢慢经营还是一波Rush?其实最佳化评估远比围棋困难。 11/28 03:47
27F:→ ddavid:只是因为研发者 + 玩家都并不要求最佳化的AI,或者反过来说 11/28 03:48
28F:→ ddavid:把AI最佳化不见得游戏会比较好玩,所以这个事实才会并不被 11/28 03:49
29F:→ ddavid:在意。但如果目标是完全公平(例:各种电竞游戏的AI设计) 11/28 03:50
30F:→ ddavid:下AI要能跟玩家对抗,这问题马上就很明显了。 11/28 03:50
31F:推 ddavid:当然如果是单一的机械化操作,就像SC中单一兵种对抗的AI, 11/28 04:04
32F:→ ddavid:那就相对很好写,事实上也有不少已完成案例,因为那就是在 11/28 04:05
33F:→ ddavid:大幅限制双方的情况下压缩了复杂度且让评估函数单纯化,所 11/28 04:06
34F:→ ddavid:以可以看到很强猛的AI龙骑舞操作、AI枪兵散兵甩枪操作之类 11/28 04:07
35F:→ ddavid:,可是仍然没有一个很好的、能从开局营运跟人类玩家对抗到 11/28 04:08
36F:→ ddavid:底不落下风的不作弊AI。 11/28 04:08
37F:推 juicefish:AI难的地方在於布局这东西不好、无法量化 11/28 04:54
38F:→ juicefish:SLG相对简单的部分是资源量跟单纯操作相关(Macro, APM) 11/28 04:55