看板 GameDesign 關於我們 聯絡資訊
提供一下我覺得滿適合作為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