設置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

教 AI 逐幀搓招玩《鐵拳》通關(guān)最高難度,現(xiàn)在的街機游戲愛好者有點東西

量子位 2022/2/14 13:58:42 責編:長河

現(xiàn)在的 AI 都開始學著逐幀搓招打街機了?《拳皇 98》《街頭霸王》《死或生》…… 一干童年回憶全都玩了個遍,其中還有號稱要打 5000 場才能入門的 3D 格斗游戲《鐵拳》:

街機游戲

沒錯,就是那個對新手極不友好的《鐵拳》,隨便拉一張角色的搓招表感受一下這個復雜度:(沒錯,各種壓幀判定的 JF 技就是其特色之一)

搓招表

▲ 鐵拳 TT2 出招表

但 AI 偏偏就能在入坑沒多久就通關(guān)了最高難度:

左側(cè)為 AI

▲ 左側(cè)為 AI

這款 AI 的背后是一位個人開發(fā)者,也是一位骨灰級的街機游戲愛好者。他訓練出來的新手“鐵匠”在 Reddit 的“比賽錄播”已經(jīng)有近 500 的熱度

AI 的背后是一位個人開發(fā)者

強化學習訓練框架

這位 AI 鐵匠的背后,是一個叫做 DIAMBRA Arena 的強化學習交互框架。DIAMBRA Arena 提供了多個強化學習研究和實驗環(huán)境,具有情節(jié)性的強化學習任務,由離散的動作(如游戲手柄按鈕)和屏幕中的像素和數(shù)據(jù)(如人物血條)組成。

在這一框架中,智能體會向環(huán)境發(fā)送一個動作,環(huán)境對其進行處理,并相應地將一個起始狀態(tài)轉(zhuǎn)換為新狀態(tài),再將觀察和獎勵返回給智能體,以此交互循環(huán):

強化學習訓練框架

要實現(xiàn)上述循環(huán)的代碼也非常簡單:

import diambraArena

# Mandatory settings
settings = {}
settings["gameId"] = "do" # Game selection
settings["romsPath"] = "/path/to/roms/" # Path to roms folder

env = diambraArena.make("TestEnv", settings)
observation = env.reset()

while True:

    actions = env.action_space.sample()
    observation, reward, done, info = env.step(actions)

    if done:
        observation = env.reset()
        break

env.close()

這一框架目前支持 Linux、Windows、MacOS 等主流的操作系統(tǒng)。而這款 AI 的“實戰(zhàn)場”為早期的 Tekken Tag Tournament,當然,搓招復雜度完全不遜色于之后的新版本……

強化學習訓練框架

開發(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)兩個動作的情況:

實戰(zhàn)

評論區(qū)有資深 PVP 愛好者表示,想要看到這種頂級 AI 選手互虐的激烈場景,而開發(fā)者本人對此非常贊同:

我們正在創(chuàng)建一個平臺,在這個平臺上,程序員將提交他們訓練有素的 AI 并互相對抗,并在我們的頻道上播放比賽。

開發(fā)者本人非常贊同

AI 錦標賽

現(xiàn)在,開發(fā)者團隊已經(jīng)開始正式籌備這個“AI 游戲錦標賽”,背后的程序員和開發(fā)者們相當于是“教練”或者“選手家長”,最終的獲勝者可獲得 1400 瑞士法郎(折合人民幣 9261 元)。

1400 瑞士法郎獎金

“比賽項目”也不止是鐵拳一種,開發(fā)者表示,這些格斗游戲的底層機制都比較類似,只需要修改一下組合技、人物血條數(shù)值等游戲的差異性屬性。

所以,他們的 DIAMBRA Arena 框架面向各類街機視頻游戲提供完全符合 OpenAI Gym 標準的 Python API。像死或生、街頭霸王等多個流行的街機游戲都被囊括其中:

多個流行的街機游戲

GitHub 鏈接:

https://github.com/diambra/diambraArena

視頻鏈接:

https://www.youtube.com/watch?v=9HAKEjhIfJY

參考鏈接:

[1]https://www.reddit.com/r/reinforcementlearning/comments/sq1s3f/deep_reinforcement_learning_algorithm_completing/

[2]https://www.reddit.com/r/MachineLearning/comments/sqra1n/p_deep_reinforcement_learning_algorithm/

廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:人工智能,游戲

軟媒旗下網(wǎng)站: IT之家 最會買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機APP應用 魔方 最會買 要知