本文主要是介绍AI也可以玩精灵宝可梦了!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 它是如何训练出来的?
- AI好奇心过重
- 如何训练AI进行战斗
- 道馆馆主战斗:意外收获技能
相信很多人童年都玩过《宝可梦》游戏,在这个游戏里面,我们会扮演玩家一路闯关,打赢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,我们下期再见。
这篇关于AI也可以玩精灵宝可梦了!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!