SDK 还能自动玩游戏?这个 SDK 有点「酷」。
近日,腾讯互娱(IEG)开源了一款名为 GAME AI SDK 的自动化测试平台,该平台封装好了多种工具供开发者使用,目前支持的游戏类型有跑酷类、吃鸡类、射击类、MOBA 类等。
平台内置的「天天酷跑」示例。左图为未训练随机做动作,右图是训练好的效果。
SDK(软件开发工具包)一般是软件工程师为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件时可使用的开发工具集合。
似乎有些抽象。在实际项目中,我们只需记住,SDK 是手游渠道提供的,集成了用户登录、社区功能、社交分享功能、数据后台统计功能的功能模块。接入 SDK 后,游戏厂商和渠道都要对 SDK 包进行测试,测试通过才能上线。
看了上文展示的酷跑动图效果,是不是想上手试试吃鸡类、射击类的游戏体验呢?这个开源项目可以满足你的需求,它支持使用者进行项目接入以及二次开发。
AI SDK 平台是一个基于游戏图像来开发游戏 AI 的开源工具包。工具包主要完成了 UI 检测、游戏内元素识别、AI 算法(DQN、IM)等功能。开发者可以基于此工具包完成游戏自动化测试。
目前该平台已支持的游戏类型有跑酷类、吃鸡类、射击类、MOBA 类等。特定场景下它可以代替人工进行游戏场景的自动化,减少游戏场景测试的人力投入。
该工具包主要包括 AI SDK、AI client、SDKTool(配置文件工具)这几部分。
GAME AI SDK 平台具备以下功能:
提供多种图像识别算法,识别游戏场景中的关键特征数据,如游戏场景中的技能状态、按钮位置、目标物位置等。
提供模仿学习和强化学习 AI 算法,可直接用于训练游戏场景 AI。
提供了配套的样本采集、图像标注工具。
AI SDK 主要包括 AI client 模块、MC 模块、IO 模块、UI 模块、GaMeReg 模块、AI 模块。
AI client 主要与手机端交互,获取游戏图像,并执行 UI 或 AI 输出的动作;
IO 模块与 AI client 交互,作为 AI SDK 的数据输入输出控制;
MC 模块与 IO 模块交互,将数据分发至 AI SDK 后端的 UI 和 AI 模块,并做一些业务逻辑的管理控制;
UI 模块根据游戏图像,识别出需要进行的 UI 操作;
GaMeReg 模块根据游戏图像,识别出游戏场景内的数字、血条、目标物等元素;
AI 模块根据识别到的游戏元素,依照 AI 算法执行业务逻辑。
环境部署
运行 AI SDK 中的 DEMO,首先需要安装依赖,然后将本地 PC 机连接手机(或手机模拟器),通过 AI client 实时采集手机(或手机模拟器)的游戏画面,并传给 AI 服务进行处理。把 AI 服务处理的动作结果反馈到连接 PC 的手机上,完成动作的交互。
部署依赖环境
部署依赖环境主要是安装 AI SDK、SDKTool(配置文件生成工具)、AI client 的环境依赖。
该项目提供了两种操作系统的部署过程。
Ubuntu:目前 SDK 工具包运行在 16.04 的 64 位 Ubuntu 系统上,使用的深度学习框架为 TensoRFlow,所以使用前需要安装依赖的 Ubuntu 系统和相应的依赖第三方工具包,如 TensoRFlow、OpenCV、Protobuf 等。
环境主要依赖 nvdia-cuda 9.0、cudnn 7.0、opencv 3.4.2、Protobuf 3.2.0、Android adb、posteR 工具集等依赖包。
Windows:SDK 包下自带要安装的依赖包文件「requirements.txt」,所以 Windows 下只需要安装「RequiReMents.txt」中的依赖。
此外,该项目还介绍了配置文件工具 SDK Tool、项目接入、二次开发以及调试技巧,详情请参考项目链接。
