程序语言:Unity3D C# / Weka
截止时间: 2020/10/10
程序要求:
现有一个基于UNITY3D的小游戏项目(2D)。 游戏可以用wasd和方向键控制player在游戏场景中获得食物,食物有两种分别+10/+20食物点数,躲避僵尸并到达脱离点。到达脱离点后将进入下个类似但难度提升的游戏场景。玩家每次移动食物分数都会自动减少,直到没有食物结束游戏。随着游戏难度提升,敌人(僵尸)的数量会增加。场景中有一些墙作为障碍物,墙可以被player攻击数次后消失,但是会消耗食物点数。
首先需要添加代码,让这个项目可以自动记录并生成人玩游戏产生的数据到csv文件中,可能需要记录的数据:”玩家位置,现在的食物分数,脱离点的位置,墙的位置,离玩家最近的2个僵尸的位置,场景中食物的位置, ……”
绑定一个开关让人能决定是否记录接下来的游戏数据。例如,按下某个热键或进行某些设置后,游戏会开始记录或关闭记录模式。
对于坐标记录,可以将X坐标和Y坐标分开记录。
对于数据获取,可以利用现有的BoardManager.cs脚本中的公共变量部分。
然后利用记录好的csv文件到Weka软件中处理,生成决策树,再利用这个决策树实现控制player 进行游戏的AI脚本,使得让AI脚本控制player进行游戏(拾取食物,躲避僵尸敌人,到达脱离点进入下一阶游戏 直到食物耗尽)。AI不需要玩得非常好,能模拟人玩游戏,能达到的关卡级别和人差不多就行。这里生成的csv文件数据是要编程者自己先进行一些游戏,得到数据。并利用这些数据生成决策树,根据决策树编写player AI。达到让基于决策树的AI代替人玩游戏的目的。
Player AI相关的代码应写在PlayerAgent.cs中。同样应有一个开关来切换人玩游戏和AI玩游戏。
需要交付的是:
代码:
·所有相关代码。包括自动记录游戏数据到csv文件的代码,根据决策树编写的player AI脚本代码。
·代码注释。
文档:
·开发者玩游戏生成的CSV文件。
·Weka软件根据csv文件生成决策树的相关数据和步骤截图。包括生成的决策树。
·说明记录数据到csv文件代码的思路,生成决策树的思路,根据决策树实现player AI的思路。(为什么这样做)
·简要说明这个playerAI和人玩游戏的一些区别以及为什么有这些区别。