時間:2024-02-04 13:30作者:下載吧人氣:79
《拳皇98》、《街頭霸王》、《死或生》……一干童年回憶全都玩了個遍,其中還有號稱要打5000場才能入門的3D格斗游戲《鐵拳》:
沒錯,就是那個對新手極不友好的《鐵拳》,隨便拉一張角色的搓招表感受一下這個復(fù)雜度:
(沒錯,各種壓幀判定的JF技就是其特色之一)
△鐵拳 TT2出招表
但AI偏偏就能在入坑沒多久就通關(guān)了最高難度:
△左側(cè)為AI
這款A(yù)I的背后是一位個人開發(fā)者,也是一位骨灰級的街機游戲愛好者。
他訓練出來的新手“鐵匠”在Reddit的“比賽錄播”已經(jīng)有近500的熱度:
強化學習訓練框架
這位AI鐵匠的背后,是一個叫做DIAMBRA Arena的強化學習交互框架。
DIAMBRA Arena提供了多個強化學習研究和實驗環(huán)境,具有情節(jié)性的強化學習任務(wù),由離散的動作(如游戲手柄按鈕)和屏幕中的像素和數(shù)據(jù)(如人物血條)組成。
在這一框架中,智能體會向環(huán)境發(fā)送一個動作,環(huán)境對其進行處理,并相應(yīng)地將一個起始狀態(tài)轉(zhuǎn)換為新狀態(tài),再將觀察和獎勵返回給智能體,以此交互循環(huán):
要實現(xiàn)上述循環(huán)的代碼也非常簡單:
而這款A(yù)I的“實戰(zhàn)場”為早期的Tekken Tag Tournament,當然,搓招復(fù)雜度完全不遜色于之后的新版本……
開發(fā)者選擇了風間仁(Jin)和吉光(Yoshimitsu)兩名具有代表性的角色作為主要操作對象。
輸入分別為:從RGB轉(zhuǎn)換為灰度,并縮小到128 x 128px的游戲屏幕像素值、對戰(zhàn)局數(shù)(Stage)、人物血條、游戲界面的一側(cè)。
訓練中的獎勵是一個基于生命值的函數(shù),如果對方生命值損傷則得到正面獎勵,己方控制的角色生命值損失則得到負面懲罰。
同時,AI的動作速率也被限定為最大速率的1/10,即游戲中每6步發(fā)送一個動作。
由于框架使用的是一種離散的動作空間,因此,智能體在訓練中的同一時間只能選擇一個移動動作9向上,向下等)或攻擊動作(沖擊,踢,出拳)。
因此,雖然一個連擊組合的實戰(zhàn)能力更強,但由于AI無法同時點擊兩個動作,在真實的對戰(zhàn)中,便會出現(xiàn)AI頻繁使用踢(Kick)和更換角色(swap)兩個動作的情況:
現(xiàn)在,開發(fā)者團隊已經(jīng)開始正式籌備這個“AI游戲錦標賽”,背后的程序員和開發(fā)者們相當于是“教練”或者“選手家長”,最終的獲勝者可獲得1400瑞士法郎(折合人民幣9261元)。
“比賽項目”也不止是鐵拳一種,開發(fā)者表示,這些格斗游戲的底層機制都比較類似,只需要修改一下組合技、人物血條數(shù)值等游戲的差異性屬性。
所以,他們的DIAMBRA Arena框架面向各類街機視頻游戲提供完全符合OpenAI Gym標準的Python API。
像死或生、街頭霸王等多個流行的街機游戲都被囊括其中:
網(wǎng)友評論