作者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
推 KanoLoa:我上次寫個FB俄羅斯方塊的外掛才發現AI要強真的要寫好多.. 09/24 00:43
→ azureblaze:除非是狂人或是要給狂人玩不然真的不要想弄得無敵強XD 09/24 00:54
推 asleisureto:以前做格鬥遊戲的AI很廢 但還是不少玩家反映電腦太強 09/24 01:04
→ asleisureto:所以還是要看遊戲類型嚕 09/24 01:05
→ azureblaze:畢竟格鬥反應速度還是佔很大的比重XD 09/24 01:15
→ azureblaze:只要讓人沒有空深思熟慮爛AI也會很強 09/24 01:16
推 ericinttu:優先考量的AI 09/24 01:24
推 ericinttu:不知道原PO說蠻像ANN是因為哪一個因素? 09/24 01:34
→ ericinttu:preference+weighted sum, 從內文我只看到這兩個要素. 09/24 01:36
→ ericinttu:ANN還需要 feedback 跟 stable state. 09/24 01:36
→ azureblaze:所以才只是"像"而已啊 09/24 01:53
→ azureblaze:後面兩個實做起來比前面的麻煩很多 09/24 01:54
推 Hevak:這個東方AI好像很有趣 09/24 05:58
→ art1:免帳號就能看nico影片+字幕 09/24 07:23
推 LaPass:唔唔唔... 這概念我想過,只是想不出辦法來實行。 09/24 08:02
推 AmosYang: +1 interesting 09/24 19:53
推 rexrainbow: +1 interesting 09/26 13:07