教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好

IT资讯3年前 (2022)发布 IT资讯
0

本篇文章给各位网友带来的资讯是:教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好者有点东西 详情请欣赏下文

现在的 AI 都开始学着逐帧搓招打街机了?《拳皇 98》《街头霸王》《死或生》…… 一干童年回忆全都玩了个遍,其中还有号称要打 5000 场才能入门的 3D 格斗游戏《铁拳》:

教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好

没错,就是那个对新手极不友好的《铁拳》,随便拉一张角色的搓招表感受一下这个复杂度:(没错,各种压帧判定的 JF 技就是其特色之一)

教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好

▲ 铁拳 TT2 出招表

但 AI 偏偏就能在入坑没多久就通关了最高难度:

教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好

▲ 左侧为 AI

这款 AI 的背后是一位个人开发者,也是一位骨灰级的街机游戏爱好者。他训练出来的新手“铁匠”在 Reddit 的“比赛录播”已经有近 500 的热度

教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好

强化学习训练框架

这位 AI 铁匠的背后,是一个叫做 DIAMBRA Arena 的强化学习交互框架。DIAMBRA Arena 提供了多个强化学习研究和实验环境,具有情节性的强化学习任务,由离散的动作(如游戏手柄按钮)和屏幕中的像素和数据(如人物血条)组成。

在这一框架中,智能体会向环境发送一个动作,环境对其进行处理,并相应地将一个起始状态转换为新状态,再将观察和奖励返回给智能体,以此交互循环:

教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好

要实现上述循环的代码也非常简单:

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 等主流的操作系统。而这款 AI 的“实战场”为早期的 Tekken Tag Tournament,当然,搓招复杂度完全不逊色于之后的新版本……

教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好

开发者选择了风间仁(Jin)和吉光(Yoshimitsu)两名具有代表性的角色作为主要操作对象。输入分别为:从 RGB 转换为灰度,并缩小到 128 x 128px 的游戏屏幕像素值、对战局数(Stage)、人物血条、游戏界面的一侧。

训练中的奖励是一个基于生命值的函数,如果对方生命值损伤则得到正面奖励,己方控制的角色生命值损失则得到负面惩罚。

同时,AI 的动作速率也被限定为最大速率的 1/10,即游戏中每 6 步发送一个动作。由于框架使用的是一种离散的动作空间,因此,智能体在训练中的同一时间只能选择一个移动动作 9 向上,向下等)或攻击动作(冲击,踢,出拳)。

因此,虽然一个连击组合的实战能力更强,但由于 AI 无法同时点击两个动作,在真实的对战中,便会出现 AI 频繁使用踢(Kick)和更换角色(swap)两个动作的情况:

教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好

评论区有资深 PVP 爱好者表示,想要看到这种顶级 AI 选手互虐的激烈场景,而开发者本人对此非常赞同:

我们正在创建一个平台,在这个平台上,程序员将提交他们训练有素的 AI 并互相对抗,并在我们的频道上播放比赛。

教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好

AI 锦标赛

现在,开发者团队已经开始正式筹备这个“AI 游戏锦标赛”,背后的程序员和开发者们相当于是“教练”或者“选手家长”,最终的获胜者可获得 1400 瑞士法郎(折合人民币 9261 元)。

教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好

“比赛项目”也不止是铁拳一种,开发者表示,这些格斗游戏的底层机制都比较类似,只需要修改一下组合技、人物血条数值等游戏的差异性属性。

所以,他们的 DIAMBRA Arena 框架面向各类街机视频游戏提供完全符合 OpenAI Gym 标准的 Python API。像死或生、街头霸王等多个流行的街机游戏都被囊括其中:

教 AI 逐帧搓招玩《铁拳》通关最高难度,现在的街机游戏爱好

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/

© 版权声明
好牛新坐标 广告
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章