作者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