如何写一个游戏AI(一)

       由于目前游戏的ai最后两手牌打的不尽人意,而手头上的工作又暂时弄完了。就被安排去学习AI,最终目标是重新训练/优化现有的AI而这只是我的记录,仅仅是偏向我的应用,并不偏向研究。虽然只是这样,但是其实听到这个任务的时候,内心是拒绝的。

       原因有以下几点:

       1.要写出一个斗地主AI,我觉得是很难的,技术和数学都要有一定水平。

       2.老夫就一个刚工作2年的程序员,而且还是非AI专业,让我萌生了就是觉得很难很难得想法。

       3.老夫就拿这点工资(说来惭愧,哎)。。。我如果真能写,我才值这点钱么,我写出来的敢用么。

       虽然内心不愿意,但是身体却很诚实,毕竟做的都是出卖自己的工作。就算叫我去38度的天下晒太阳,叫我去厕所吃快餐,我也没什么好拒绝的吧,毕竟花钱买我时间的。将自己的路程尽量全部记录,给自己看,也分享给和我相似情况下想学写游戏AI的人,如果有同僚看到我说的有什么不对,请指出。这里要感谢我的经理潇爷,我的天资比较愚钝,他带我了解并写下第一个关于0-9黑白图片的试别ai。下面开始进入正文。

       

     1.我们游戏中指的AI是什么

        其实AI没有想象的那么难,AI也是分369等的,比如游戏时的NPC,能和你进行对话,能给你任务,这样的就比较简单不需要用到机器学习;更进一步,mmo游戏中的怪物,boss,知道主动攻击你,知道放技能,知道躲技能(这个可能也不需要用到机器学习,或者用了我不知道,因为我目前只做过棋牌游戏);再进一步,你以为你玩的棋牌游戏匹配到的都是真人么,或者进一步说,你以为你别的游戏匹配到的队友都是人么,也许它们只是AI而已(这个就需要机器学习了,这个东西已经拥有了类似人类的想法来陪你玩游戏)。

      2.什么是训练一个AI

        就是训练出一个模型,这个模型再你给它一个输入的时候,它能够预测出最大概率的输出是什么(类似一个函数,你给一个输入,它返回输出)。例如图像试别AI,给定的输入是一张图像,它用输出告诉你最大概率这个图像是什么。注意,这里是告诉你最大概率输出是什么,并不是告诉你输出是什么(关于这个之后会继续聊)。

      3.如何训练一个AI

        其实很多事情,前人已经做好了,就像我们要训练AI,并不是所有的东西都要自己写,现在有很多深度学习的框架,就我而已,我只是应用,我只要找到合适的框架、然后使用框架训练出自己想要的AI即可(类似于有很多库函数,只需要找到自己想用的库函数,然后调用它,获取结果即可)。

      4.我的学习路程

        1.补充了一些知识

扫描二维码关注公众号,回复: 12334823 查看本文章

        2.经理又给我补充了一些知识,然后在他的带领下,写了一个 0-9的黑白图像试别AI

        3.经过以上的路程后,开始自己继续探索,训练一个斗地主AI

        注意:训练 == 写,训练一个AI == 写一个AI,有些东西是术语来着,我也不是专业的,但是又接触了,所以有的时候会语无伦次。

        第一篇大概写这么多,后面会接着更新

       

猜你喜欢

转载自blog.csdn.net/banfushen007/article/details/107698113