本文主要是介绍AI也可以玩精灵宝可梦了!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 它是如何训练出来的?
- AI好奇心过重
- 如何训练AI进行战斗
- 道馆馆主战斗:意外收获技能
相信很多人童年都玩过《宝可梦》游戏,在这个游戏里面,我们会扮演玩家一路闯关,打赢8个道馆并挑战四大天王,最后获得冠军的梦想。

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

这不,有国外玩家在宝可梦游戏中花费5年训练AI。
![花费5年时间训练AI玩宝可梦[中英文字幕].花费5年时间训练AI玩宝可梦[中英文字幕].1304947352[00_00_02--00_00_06].gif](https://img-blog.csdnimg.cn/img_convert/49e28d13a54f6a6f6d52c671d3fd7365.gif#pic_center)
并且AI在游戏中玩了两万多局游戏

在一开始的时候,这个AI只能够乱按各种按钮,并且不懂得如何捕捉宝可梦和进行有效的对战。
在经历了5年的时间,这个AI能够知道如何捕捉宝可梦,并且让他们进化,然后击败道馆馆长。

它是如何训练出来的?
要训练这种AI,离不开强化学习的帮助。首先在游戏中设置了对应的奖励:
- 捕捉宝可梦:1
- 赢下战斗:3
- 打赢道馆:5

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

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

由于一个AI一开始会乱按,需要很久才能学习,因此一开始让多个角色同时玩游戏,2小时候让AI进行回顾,并根据奖励自我更新。
![多AI学习[00_00_00 - 00_00_20].gif](https://img-blog.csdnimg.cn/img_convert/f4c50c807c9943c9fb3d7305d6dd3668.gif#pic_center)
AI好奇心过重
从上面的奖励设置来看,会导致AI通常偏向于去探索周边的风景,特别是对于游戏中多种不同的动态元素,AI很容易就学歪了。
![AI好奇心过重[00_00_03--00_00_23].gif](https://img-blog.csdnimg.cn/img_convert/8e252f30ee7daf9901105e645e93de7f.gif#pic_center)
AI会经常在某个地方驻足,而不会探索更多区域了。这是因为在刚刚设置的奖励中,只要画面有变化,则会进行奖励。
为了解决这个问题,在画面变化的同时,需要判定每个画面是否像素点变化很多。如果像素点变化较大,才进行奖励。这样会促使AI能够发现之前没有走过的地方。

经过学习后,发现AI已经开始能够不断探索新区域:
![发现新区域[00_00_01--00_00_21].gif](https://img-blog.csdnimg.cn/img_convert/729bd20b4ce895f1d6947d7cac18df02.gif#pic_center)
如何训练AI进行战斗
在宝可梦对战的时候,会出现每个画面基本相似的情况,这样很难给予AI相应的奖励。

这样会使得AI避免更多的战斗,但是做想要通过游戏变得很困难。
因此作者设定了要精灵等级足够高,才有相应的奖励。

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

道馆馆主战斗:意外收获技能
在宝可梦游戏中,玩家需要挑战8个道馆馆主,以此来获得徽章来挑战四大天王。
但是一开始,AI在战斗的时候,总是拼命按某一个技能,导致其不会使用其他技能进行攻击。
在训练了第100次左右的时候, 普通技能不能够使用,AI终于意识到自己能够使用水系技能攻击岩石系宝可梦(在宝可梦中存在技能相克,并且水系克制岩石系)

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

感兴趣的小伙伴可以根据官网的步骤进行部署游玩。
以上就是本期的所有内容了,我是leo,我们下期再见。

这篇关于AI也可以玩精灵宝可梦了!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!