最近玩了三天 @HenryXiaoYang 的游戏项目 Arena Hero,帖子链接【送LDC和公益站注册码中】我做了一个人类、AI 和算法能同场对抗的游戏:Arena Hero
原本是冲着商店中一系列公益站的兑换码来的,结果越玩越上头,不知不觉玩了三天,来分享一下我的经验.首先介绍一下游戏的规则,每个玩家自带一格Core,Core被破坏就需要重新开始,Core可以生产三个角色,工人(5资源),先锋(10资源),游侠(12资源),工人可以采集地图上的资源,先锋可以对自己附近一格的单元进行攻击,游侠可以进行远距离的攻击。每轮指令间隔时间15s,这个时间不会因为你退出而暂停,因此非常容易在下线的时间段被其他佬偷袭。此外当你的单位被攻击后,你可以进行护盾和血量恢复,但是恢复单位必须在Core身边才能进行,这个操作也会消耗资源。
游戏的人口上限为19,因为超过19每回合会扣除一点资源,实测采集效率永远跟不上它扣除资源的速度,每个人口会提供5点资源容量上限,游戏可以接入agent进行。

游戏有两种玩法,一种是鼠鼠搜集资源,还有一类是猛攻(不建议),目前我用过好几个算法,包括自己写的还有一些佬开源的,发现了以下问题
- 一个单元格是允许同时最多两个己方单位存在的,但如果不给ai指明这一点,在路线规划上,当它识别到己方单位时会进行绕路,降低我们搜集的效率
- 当我们和敌人间隔了一个单元格时,此时双方向同一位置进行移动,那么双方都会被卡在初始位置,可以利用这一点卡住敌人调动先锋和游侠来攻击
- 攻击的方式比较鸡肋,因为你的攻击要到下一回合才会生效,相当于你要预判对方的走势,每个人的代码躲避策略都是不同的,所以不建议猛攻玩法,而且先锋如果没有地形限制,只靠一个单位永远不可能攻击到对方
在人数配置上,我自身采用的是15工人+2先锋+2游侠,先锋和游侠只留在Core身边对Core进行保护,如果检测到挂机的核心,先感谢一下上天的赏赐 ^-^,然后手动派出先锋和游侠去缴获资源。
策略我目前采用的是一位佬开源的算法,原帖详见【开源】Arena Hero 无人值守 Agent:资源优先策略,支持本地、Docker 和 systemd
我在实际体验这套代码时遇到了几个问题
- 就是我在上文提到的绕路行为在这套代码中有体现,尤其是我们选核心一般选在四周有障碍物保护的情况下,这个时候资源交付的效率非常低
- 没有单位恢复血量的设计,我体验了一天这套代码,发现只有在Core受到攻击时会自动修复,工人、先锋和游侠被攻击后是不会自动去恢复血量的
- 还有一点就是这套代码是没有主动出击的逻辑的,就算Core旁边识别到了对方的攻击单位也是优先进行躲避
总的来说这套代码还是很好用的,搜集资源的效率比较高
最后提两个游戏的小问题
- 当你的agent想让Core保持原地待命时,你是没法移动Core的,Core需要多个回合才能移动一个单元,但是在首回合移动后,后续只有取消迁移的选项,此时agent会配置取消迁移的指令,手动无法取消该指令,如图。
- 在右边的待执行指令栏有单位的编号,这个编号没有实际意义,因为右边的指令栏不可选,而点击单位时不会显示它的编号,所有右边的编号实际上并不知道指的具体是哪个单位。

给大家展示一下目前的战果,也让大家感受一下物价飞涨,30-50-95

最后吐槽一个小问题,agent的策略因为各种原因(比如网络超时)会自动退出,尤其是半夜退出就会让你变成活靶子,昨晚我猜测我的agent就是退出后被人清扫了,可怜我的19人编队加八九十的资源,心好痛 ^-^