自动冒险岛
自动冒险岛是一个智能Python机器人,可以通过模拟按键、TensorFlow机器学习、OpenCV模板匹配和其他计算机视觉技术来玩冒险岛这款2D横向卷轴MMORPG游戏。
社区创建的资源,如每个职业的命令书和每张地图的例程,可以在**资源库**中找到。
小地图
自动冒险岛使用OpenCV模板匹配来确定小地图的边界以及其中的各种元素,从而准确追踪玩家在游戏中的位置。如果将record_layout 设置为True ,自动冒险岛会将玩家之前的位置记录在基于四叉树的Layout对象中,并定期保存到"layouts"目录下的文件中。每次加载新的例程时,如果存在对应的布局文件,也会被加载。这个Layout对象使用A*搜索算法对其存储的点进行计算,以找出从玩家到任何目标位置的最短路径,这可以显著提高执行例程的准确性和速度。
|
命令书
上面的视频展示了自动冒险岛持续执行一个机械上高级的技能组合。
自动冒险岛在设计时考虑了模块化,只要提供游戏内动作列表(即"命令书"),它就可以操作游戏中的任何角色。命令书是一个Python文件,包含多个类,每个类对应一个游戏内技能,告诉程序应该按哪些键以及何时按下。一旦导入命令书,其类会自动编译成一个字典,自动冒险岛可以用它来解释例程中的命令。命令可以访问自动冒险岛的所有全局变量,这使它们能够根据玩家的位置和游戏状态主动改变行为。 |
例程
|
例程是一个用户创建的CSV文件,告诉自动冒险岛在每个位置移动到哪里以及使用什么命令。自动冒险岛内的自定义编译器会解析选定的例程,并将其转换为Component 对象列表,然后由程序执行。对于每一行包含无效参数的内容,都会打印一条错误消息,并在转换过程中忽略这些行。
以下是最常用的例程组件摘要:
|
符文
自动冒险岛能够自动解决"符文",即游戏内的方向键谜题。它首先使用OpenCV的颜色过滤和Canny边缘检测算法来分离方向键并尽可能减少背景噪音。然后,它使用自定义训练的TensorFlow模型对预处理后的帧进行多次推理,直到两次推理结果一致。由于这种预处理,自动冒险岛在各种(通常是多彩且混乱的)环境中都能非常准确地解决符文。 |
视频演示
设置
- 下载并安装Python3。
- 下载并安装最新版本的CUDA Toolkit。
- 下载并安装Git。
- 下载并解压最新的自动冒险岛发布版。
- 下载TensorFlow模型并将"models"文件夹解压到自动冒险岛的"assets"目录中。
-
在自动冒险岛的主目录中,打开命令提示符并运行:
python -m pip install -r requirements.txt
-
最后,通过运行以下命令创建桌面快捷方式:
此快捷方式使用绝对路径,因此您可以随意将其移动到任何位置。但是,如果您移动了自动冒险岛的主目录,则需要再次运行python setup.py
python setup.py
以生成新的快捷方式。要在自动冒险岛关闭后保持命令提示符打开,请使用--stay
标志运行上述命令。