前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI也可以玩精灵宝可梦了!

AI也可以玩精灵宝可梦了!

原创
作者头像
算法一只狗
发布2024-10-04 09:34:35
1130
发布2024-10-04 09:34:35
举报
文章被收录于专栏:算法一只狗

相信很多人童年都玩过《宝可梦》游戏,在这个游戏里面,我们会扮演玩家一路闯关,打赢8个道馆并挑战四大天王,最后获得冠军的梦想。

游戏的主要玩法就是收服宝可梦,然后一路对战升级。小时候总使幻想着宝可梦能够根据对手,来进行自主战斗。

这不,有国外玩家在宝可梦游戏中花费5年训练AI。

并且AI在游戏中玩了两万多局游戏

在一开始的时候,这个AI只能够乱按各种按钮,并且不懂得如何捕捉宝可梦和进行有效的对战。

在经历了5年的时间,这个AI能够知道如何捕捉宝可梦,并且让他们进化,然后击败道馆馆长。

它是如何训练出来的?

要训练这种AI,离不开强化学习的帮助。首先在游戏中设置了对应的奖励:

  • 捕捉宝可梦:1
  • 赢下战斗:3
  • 打赢道馆:5

除此之外,为了激活AI能够不断探索新的区域,游戏中会保存每一个画面,通过对比当前的画面与上一个画面,来判定AI是否正在学习新的知识。

如果判定是新的画面,则保存下来,并给AI进行奖励。

由于一个AI一开始会乱按,需要很久才能学习,因此一开始让多个角色同时玩游戏,2小时候让AI进行回顾,并根据奖励自我更新。

AI好奇心过重

从上面的奖励设置来看,会导致AI通常偏向于去探索周边的风景,特别是对于游戏中多种不同的动态元素,AI很容易就学歪了。

AI会经常在某个地方驻足,而不会探索更多区域了。这是因为在刚刚设置的奖励中,只要画面有变化,则会进行奖励。

为了解决这个问题,在画面变化的同时,需要判定每个画面是否像素点变化很多。如果像素点变化较大,才进行奖励。这样会促使AI能够发现之前没有走过的地方。

经过学习后,发现AI已经开始能够不断探索新区域:

如何训练AI进行战斗

在宝可梦对战的时候,会出现每个画面基本相似的情况,这样很难给予AI相应的奖励。

这样会使得AI避免更多的战斗,但是做想要通过游戏变得很困难。

因此作者设定了要精灵等级足够高,才有相应的奖励。

这时候AI就会懂得如何正确进行对战,并知道需要升级宝可梦,同时使得他进化。

道馆馆主战斗:意外收获技能

在宝可梦游戏中,玩家需要挑战8个道馆馆主,以此来获得徽章来挑战四大天王。

但是一开始,AI在战斗的时候,总是拼命按某一个技能,导致其不会使用其他技能进行攻击。

在训练了第100次左右的时候, 普通技能不能够使用,AI终于意识到自己能够使用水系技能攻击岩石系宝可梦(在宝可梦中存在技能相克,并且水系克制岩石系)

至此,AI已经能够成功的操作游戏角色进行简单的游玩了。并且作者已经把相应的代码放到github上。

https://github.com/PWhiddy/PokemonRedExperiments

感兴趣的小伙伴可以根据官网的步骤进行部署游玩。

以上就是本期的所有内容了,我是leo,我们下期再见。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 它是如何训练出来的?
  • AI好奇心过重
  • 如何训练AI进行战斗
  • 道馆馆主战斗:意外收获技能
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档