Home

Awesome

aitest 平台

aitest平台 是一个基于游戏图像来开发游戏AI的开源工具包。工具包主要完成了UI检测,游戏内元素识别,AI算法(DQN,IM)等功能。可以基于这个工具包完成游戏自动化测试。目前已支持的游戏类型有跑酷类,吃鸡类,射击类,MOBA类等。详情见官网

工具包主要包括AI SDK,AIClient,SDKTool(配置文件工具)这几部分。

SDKTool帮助我们生成跟具体游戏相关的AI SDK所需要配置文件。如游戏运行过程中,整个流程中需要动作交互的UI,需要识别的游戏元素等。AI开发过程中用到的信息可来自于游戏图像(AIClient获取)或其他数据。aitest 能够自动化完成游戏UI操作并进入游戏场景,像玩家一样操作手机玩游戏。

1561697374409

​ 图 1 aitest 模块图

其中AI SDK部分主要包括AI Client模块, MC模块,IO模块, UI模块, GameReg模块,AI模块。

1561697556490

​ 图 2 aitest 架构图

1 环境部署

aitest 可以部署在本地,也可以部署在云端。如果需要在本地运行,除了下载工具包,AIClient外,还需要安装工具包的依赖。如果是在云端运行,只需要下载AIClient。不论采取哪种运行方式,本地PC机都需要连接手机(或手机模拟器),通过AIClient实时采集手机(或手机模拟器)的游戏画面,并传给本地或是远端的AI服务去处理。并把AI服务处理的动作结果反馈到连接PC的手机上,完成动作的交互。

img

图3 aitest 交互图

1.1镜像部署

用户可在电脑上安装docker,使用已经搭建好game_ai_sdk所需环境的ubuntu16.04 docker镜像系统。

win10用户详细内容请参考win10-docker镜像安装

mac用户详细内容请参考mac-docker镜像安装

1.2本地部署

本地部署主要是安装AI SDK, SDKTool(配置文件生成工具), AIClient 的环境依赖。

<!-- ## 1.3 云端部署 用户可以选择在云端运行。用户需要安装SDKTool和AIClient的相关依赖。详细内容请参考[SDKTool部署说明](doc/environment/SDKToolEnv.md),[AIClient部署说明](doc/environment/AIClientEnv.md)。 -->

2 快速开始

aitest 怎么自动玩游戏的呢?平台内置了 <天天酷跑>的例子,让我们一睹为快。

randomai

​ 图 4 左边为未训练运行效果,右边为训练后运行效果

2.1 本地运行

本地运行主要分为以下几步:

docker镜像:
win10用户可在电脑上安装docker,使用已经搭建好game_ai_sdk所需环境的ubuntu16.04 docker镜像系统。详细内容请参考快速上手

Ubuntu:

Windows:

<!-- ## 2.2 云端运行 云端运行主要分为以下几步: - Step1: AIClient工具包 详细内容请参考文档[AIClient工具包下载](doc/project/AIClientDownload.md)。 - Step2:安装apk 详细内容请参考[安装apk](doc/project/APKDownLoad.md)。 - Step3:申请资源 通过ASM web端申请运行AI业务的资源(计算、ip、端口号、key等资源),详细内容请参考[云端运行-申请资源](doc/project/QuickStartApplyService.md)。 - Step4:运行 运行步骤请参考文档[云端运行-启动](doc/project/CloudRun.md)。运行结束后,游戏运行过程会录制为视频存储下来,用户可以下载此视频。 -->

3 配置文件工具SDK Tool

在第2章我们介绍了如何运行一个内置的游戏AI,那么我们如何从零开始接入一个新的项目呢?首先我们需要生成跟具体游戏相关的配置文件。如控制游戏运行流程的UI界面(UI配置),进入游戏场景后,AI所需要识别的游戏场景元素(场景识别配置)等。工具包AI SDK Tool可以协助用户去生成这些配置文件。工具的下载和安装方法请参考第一章部署SDKTool部分。

SDKTool

图 5 SDKTool界面介绍

4 项目接入

通过第三章我们了解了配置文件工具的功能,那么我们完整接入一个新的项目,需要哪些步骤呢?以<天天酷跑>为例,我们介绍接入新项目的具体步骤。

img

5 自动探索

UI自动探索是自动遍历和记录Android手机游戏内所有UI的功能,以<天天酷跑>为例,我们介绍UI自动探索的具体步骤。

​详细内容请见UI自动探索使用手册

6 二次开发

如果有更高阶的需求,比如现有的AI算法不能满足需求,如何加入自己的AI呢?想增加新的检测或识别算法,该怎么加入到整体框架上? 那么您可以增加和修改源码,并欢迎上传到git。

7 调试技巧

在用工具的时候,可能会遇到一些问题,如图像匹配有偏差等问题,请详见文档 调试技巧说明

8 常见问题及处理方法

搭建环境或者运行过程出现问题,查看FAQ