基于图像的游戏AI自动化框架GameAISDK:环境部署、项目接入与二次开发全解
【免费下载链接】GameAISDK基于图像的游戏AI自动化框架项目地址: https://gitcode.com/gh_mirrors/ga/GameAISDK
深夜十一点,测试机房的灯还亮着。一位游戏测试工程师正盯着手机屏幕上的跑酷游戏,第37次手动点击"重新开始"。如果有一台能"看懂"游戏画面、自己动手操作的机器,这件事本该是自动完成的。GameAISDK(即 aitest 平台)就是为这个场景而生的开源方案——一个基于图像的游戏AI自动化框架,它读取手机屏幕画面,识别UI按钮与游戏元素,再由内置的AI算法驱动角色像真人一样完成整套游戏流程。
这篇文章以工程师的视角,把从部署、跑通内置Demo、接入新游戏到二次开发的关键节点逐一拆开,希望能帮你少走几条弯路。
一张图看懂框架的组成
GameAISDK 的定位可以概括为一句话:给AI一双眼睛(图像识别)和一对手脚(动作执行)。整个工具包由三块构成:
- AIClient:运行在PC端,与手机交互,负责采集游戏画面并把动作指令回传给手机;
- AI SDK:核心服务,包含图像识别、AI决策与业务管理逻辑;
- SDKTool:图形化配置工具,用来生成与具体游戏绑定的配置文件(UI流程、识别任务、AI参数)。
AI SDK 内部又按职责切成了六个模块:AI Client 负责画面与动作通道,IO 模块做数据进出控制,MC 模块(Manage Center)承担数据分发与业务管理,UI 模块负责识别需要点击的界面,GameReg 模块识别场景内的数字、血条、障碍物等元素,AI 模块则拿着识别结果按算法输出行为。
配置工具的界面如上图,项目树、属性面板、预览区一应俱全。对应的模块源码与官方说明分散在仓库的src/与doc/目录下,建议从 doc/2nddev/DevelopAI.md 和 doc/2nddev/DevelopImgProc.md 两篇开始读。
快速完成环境配置的两条路线
部署方式按是否愿意装依赖分成两种,根据自己的机器条件选一条即可。
路线一:Docker 镜像(省心)。项目已经打包好基于 Ubuntu 16.04 的镜像,装好 Docker 后直接加载运行。Windows 用户看 doc/environment/WinDockerInstall.md,macOS 用户看 doc/environment/MacDockerInstall.md。
路线二:本地编译(可控)。Ubuntu 14.04/16.04 64 位系统上,核心依赖是 CUDA 9.0、cuDNN 7.0、OpenCV 3.4.2、protobuf 3.2.0 与 Python 3.6,推荐直接用仓库里的自动部署脚本,省去手工逐个安装的麻烦,细节见 doc/environment/SDKAutoInstallToolEnv.md。Windows 上则需要 VS2017 编译 C++ 模块,流程可参考 doc/project/AISDKCompileWin.md。
git clone https://gitcode.com/gh_mirrors/ga/GameAISDK cd GameAISDK无论走哪条路,最后都要用 USB 连接一台开启了开发者模式和 USB 调试的安卓手机,确认adb devices能列出设备,整个链路才算打通。
第一次运行:看内置Demo自己跑起来
仓库内置了《天天酷跑》的完整工程,这是验证环境是否装对的最快方式。整体只需要四步:下载工具包 → 编译对应 CPU/GPU 版本 → 手机安装 APK → 启动 AIClient 与 AISDK 服务。更细的启动动作在 doc/project/ProjectLocalRun.md 里有逐步说明。
比较直观的感受方式是先在 SDKTool 里加载 TTKP 工程、把输入源切到手机,看到游戏画面实时出现在工具窗口里,说明图像链路已通。随后点 Run 菜单下的 Test,AI 就会开始操作手机——初次运行的效果通常比较笨拙,训练完成后则流畅得多。
核心能力拆解:识别、决策、动作三件套
这个框架真正值钱的地方,在于把"看到什么→想怎么做→动手执行"这条链路做成了可配置的流水线。
界面识别(UI)。游戏从启动到进入对局,中间要穿过一长串按钮、弹窗、加载页。把这些界面和需要点击的坐标配置进工程后,AI 就能按流程依次点击,模拟玩家的进场路径。配置方法见 doc/SDKTool/UIConf.md。
元素识别(GameReg)。进入游戏后,AI 需要感知"金币在哪、血条剩多少、角色是不是卡住了"。场景识别任务提供了七种内置类型:固定物体识别(fix object)、形变物体识别(deform object)、数字识别(number)、卡住判断(stuck)、像素筛选(pixel)、固定/非固定血条识别(fix/deform blood)。其中形变物体这类任务通常要先采集样本、标注,再训练 YOLO 模型,完整流程在 doc/YOLO/TrainDetModel.md。
算法决策(AI)。识别结果交给算法层,框架内置了 DQN、模仿学习(IM)与 RainBOW 三种,覆盖"从零强化学习"和"录好人类操作让AI照学"两条路线。训练样本、超参数与奖励函数都在 SDKTool 里可视化配置,训练入口的界面如下:
从零接入新游戏的五步路径
内置 Demo 只是起点。把一款新游戏接进来,可以照着下面的顺序推进,这也是文档 doc/project/ProjectTaskConf.md 等资料推荐的标准动作:
- 配置流程UI:梳理从启动到对局的全部界面,标出每个界面要点击的位置;
- (可选)训练识别模型:涉及形变物体识别时,采集并标注样本,训练 YOLO;
- 配置场景识别任务:把要感知的元素按七种识别类型逐一定义;
- 选定AI算法并训练:按游戏玩法选 DQN、IM 或 RainBOW,录制样本或跑强化学习;
- 运行SDK验证:启动整套服务,观察 AI 在真实手机上的表现,回到第 3、4 步迭代参数。
整个配置遵循一个固定的执行流程——先遍历大厅与开始界面直到进入对局,识别到任务开始信号后交给 AI 操作,识别到结束信号则停止动作并回到结算界面。流程示意图如下:
排查运行异常的五个高频点
环境装好后出问题,多半集中在下面几类,可以直接对照 doc/opt/FAQ.md 里的完整清单:
- 编译报
devenv.com找不到:VS2017 没装或环境变量没配,把 devenv.exe 所在目录加进 PATH; - 代码格式错误:Linux 换行与 Windows 换行不兼容,前者用
dos2unix,后者直接换官方编译包; - 缺少
opencv_world342.dll:重编或用官网同名文件替换到 bin 目录; bad magic number进程退出:Python 编译版本与运行版本不一致,统一成 3.6.2;- UI识别到了却不点击:检查 AIClient 的
communication_cfg.ini是否以 UI+AI 方式启动,以及Uiconfig.json里debugWithSDKTools是否误开了 true。
图像匹配有偏差这类"软问题",则参考 doc/opt/Opt.md 里的调优手段,核心是调 ROI、阈值与缩放级别。
二次开发:接入自己的算法
框架没有把能力锁死。想换 AI 决策逻辑,在智能体层面做扩展即可,说明见 doc/2nddev/DevelopAI.md;想加新的图像识别算法,则沿着图像进程的扩展点切入,说明见 doc/2nddev/DevelopImgProc.md。识别结果的返回格式与示例代码,可以在 doc/project/GameRegResult/ 目录下找到,照着写自己的消费逻辑并不困难。
适不适合你:一句话判断
如果你的诉求是——给跑酷、射击、MOBA 这类视觉驱动的手游搭一套自动化回归或 AI 对战测试,而且团队愿意花几天时间踩一遍部署和配置流程,那么 GameAISDK 是目前开源选项里思路最完整的一个:识别、决策、执行、训练、配置工具全部自洽。反过来,如果只想做轻量的 UI 自动化点检,它的复杂度可能超出需求,建议先跑通内置 Demo 再决定投入。
框架仍在持续演进,识别类型的扩充与算法模块的更新都体现在 doc/ 目录的文档更新中。无论你从哪一篇开始读,第一次看到手机屏幕上的角色被代码驱动着起跳时,那种"机器在看、在想、在做"的实感,就是这一切投入最直接的回报。👍
相关参考:环境依赖清单 doc/environment/InstallStepByStep.md | 自动部署工具说明 doc/environment/SDKAutoInstallToolEnv.md | 项目本地运行 doc/project/ProjectLocalRun.md
【免费下载链接】GameAISDK基于图像的游戏AI自动化框架项目地址: https://gitcode.com/gh_mirrors/ga/GameAISDK
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考