为什么 Dota 里大家喜欢杀影魔?
Dota 2 的人工智能击败人类,是 AI 界的一次里程碑事件。2019 年 4 月,OpenAI 提出的 AI 智能体「OpenAI Five」击败 OG 成为了第一个在电竞游戏中击败世界冠军的 AI 系统。
作为一款 MOBA(多人在线战术竞技)游戏,Dota 2 不仅人气很高,还对人工智能,特别是强化学习系统的研究提出了很多挑战,例如游戏时间跨度长,信息不完善及高度复杂,连续的状态动作空间。所有这些问题,对于功能完善的 AI 系统在真实世界中的应用至关重要。
既然游戏是训练 AI 的好环境,那自然就会有不少科技公司前来尝试,除了 OpenAI 以外,这些年里我们还看到过很多的游戏 AI 项目,如 DeepMind 打星际争霸、腾讯王者荣耀的「绝悟」、快手的斗地主 AI。
不过两天前刚刚开源的一个 AI 项目是我们万万没想到的,小破站 Bilibili 竟然开源了一个强化学习训练的 Dota2 影魔 solo 智能体。
B 站这个项目叫 Last Order Dota2 Solo AI,虽然并非原创性的游戏 AI 研究,且当前只有 65 个 star 量,但我们还是想感叹一句:出息了啊!
项目链接:https://github.com/bilibili/LastOrder-Dota2
Last Order Dota2 Solo AI
看介绍,该开源库由 B 站的团队成员 Terry-Mao、LiuShuai 参考 OpenAI Five 的研究贡献。
该库提供一个由强化学习训练出的 Dota2 影魔 solo 智能体,可以通过自我对战的训练方式训练,从随机动作开始学习复杂的策略。而玩家也可以通过执行该项目与智能体进行影魔 solo 对战。
玩过 Dota2 的玩家都知道,影魔 solo 有一定的限制,如不能使用眼泪、魔瓶。所以在和该智能体对战时也有以下限制:
- 物品方面不可以出凝魂之露,灵魂之戒,魔瓶,真眼。
- 不可以吃符,或使用魔瓶吃符。不可以使用塔防。
- 一局比赛最⻓时限为 10 分钟,超时将自动杀死重开房间。
- 游戏不能暂停。
在项目中,开发成员还详细介绍了执行该项目的环境需求,看起来并不复杂:需要安装 python3.8、依赖库后,在管理员模式运行的 powershell 进入项目根目录。执行下面命令即可启动游戏:
- python .\play_with_human_local.py
后面根据项目介绍中的流程创建比赛房间就可以与 AI solo。
在项目最后,开发团队也列出了项目的参考资料,包括 OpenAI 的 Dota2 AI 研究《Dota 2 with Large Scale Deep Reinforcement Learning》、一个开源项目 DotaService 以及 Valve 开发者社区的 Dota Bot 脚本,感兴趣的读者可以自行查看。