所有的出站邮件都已被管理员全局禁用。任何类型的邮件通知都不会被发出。

大家好,我是Hastur,正在使用强化学习训练游戏王AI,获得了一些初步成果,代码开源在https://github.com/sbl1996/ygo-agent ,知乎介绍https://zhuanlan.zhihu.com/p/686107181。

训练的基本方法是两个AI相互打,越快胜利,奖励越高。没有用人类选手数据。AI能够获取到的信息和我们玩的时候差不多(甚至更少),比如只能看到对方场上、墓地、除外的卡,也看不到场上里侧表示的卡。现在支持灵摆之外的大部分卡片,用于训练的卡组包括:黑羽、白龙、烙印、电子龙、黄金国、英雄、极龙、自然神碑、白板斧王、纯影依、罪宝蛇眼、闪刀姬、蛇眼炎王、天威相剑、肃声。

我发现AI能够掌握基本的combo,第一回合做场有点差,但是后续解场斩杀还行。另外AI现在有一些设计上的缺陷,比如不知道自己的怪兽被无效了,所以有的时候会犯蠢。如果有YGOPro或者YGOMobile,可以看我随机生成的32盘录像。软件最好更新到最新,否则有一定概率出错。有看了的可以评论一下感觉AI大概什么水平。

录像链接:https://pan.baidu.com/s/16GgacaRs_26h79e5RZls1Q?pwd=1234 33

我现在想训练AI玩更多卡组,所以向大家征集用于训练的卡组。大家可以以YDK的方式提供给我。特别注意现在不支持灵摆,不支持剑指。卡组中的卡效果如果有提到其他卡名,而该卡名的卡不在卡组内,请将该卡放在side中。

  • 创建时间

    24年3月
  • 最后回复

    24年3月
  • 8

    回复

  • 1.9k

    浏览

  • 4

    用户

好奇AI会对各类自肃有识别吗?如果T1做出某个终端能够进一步提升胜率,在能做的情况下它会选择去做吗?
对于这两个问题的探究,我选择的是一套甜点

卡组码

http://deck.ourygo.top?name=AI甜点.ydk&ygotype=deck&v=1&d=GMpM-Na7HLulZj9B0N9Orz5R8FIi1GjvQiXUUjCwZauPOH82-TcxvEdeuK91LLLKlSQd35FDh_dsBRMbTBG480E949qtHa8XGkPmIFkyo1aUWhMpBFQQCEpjkNYKfqS9WshDLypCOVkbiqq1mTF-Js1ZyUEb0m6RoIpvxrKbdkswvrI9pM-Na6cWXWJBXFWw3b5DSKbn0krR3RW80rupr7F4d7s3pXvy0A 7

按人类的思路说,一般是先用春化调度鳞茎,调出自然兽后再去做甜点国标场的
不知道ai会不会有什么训练结果

:lingyimj:咱想看的有趣的东西不就来了么(
咱还挺好奇这个玩意目前做的效果如何了,以及这玩意如何简单接入YGO主程序(电脑版及手机版);
如果这个玩意可以跟插件一样直接接入目前的YGO主程序,取代目前的ICEYGO的AI来作为咱自己YGO版本的YGOAI也不是不行;
总之还是非常支持,看了下大佬的GIT里的东西,感觉距离简易泛用插件化还有些东西需要整。

关于AI现在的水平,可以看一下我发的录像。我感觉现在的AI做场不行,经常好牌做不出最大场,但是后续beat、解场斩杀比脚本要聪明,不会随便交康。我还在继续训练,预计还会有比较大的提升。

关于和现有客户端的结合,我看过YGOPro的代码,思考过结合方式,感觉比较困难。我的AI依赖于ocgcore的API,我需要服务器给我提供每盘决斗的卡组、先后手,random seed,我自己创建一个完全一样的duel类,然后对方的所有response,以及AI的response我都在duel类上完全相同地跑一次。但是现在YGOPro的server-client架构,不会给client发送random seed与对方response,发送的是其他的message,我这边无法复刻一个一模一样的duel类,所以比较难通过类似WindBot的client方式结合。

:lingyimj:嗯看着是有点点麻烦,不过咱倒是想到了一个更好玩的
大佬要不你干脆基于你目前的思路,直接做一个全新的不同于现有YGO服务器运作方式的服务器,即使用SRVPRO的服务器对接方式,但是更改其输出信息方式,以进行玩家加入的大规模训练,以更进一步加大AI的训练量,更高效提升AI的能力,顺便熟悉牌佬们打牌的方式

我训练ai用的是强化学习,就是ai自我博弈的方式,所以不用人类数据,因为我觉得强化学习才能产生超越人类水平的ai。我的模拟器一天能产生1000万盘数据,我觉得这个数量应该远大于人类数据。
我有过魔改服务器的想法,但是ygopro的服务器代码对我来说太复杂了,c++苦手,有没有简单一点的适合魔改的服务器代码推荐

:lingyimj:大佬谦虚了,这么高级的AI都能得出来,C++肯定问题不大
至于为啥有想法考虑用真人,大概是根据咱几十年来的打牌经验来说,AI博弈训练得到的效果,可能远远不如真人的数据来的凶狠。