腾讯IEG开源AI SDK:自动化测试吃鸡、MOBA类游戏

月月 2021-02-23 15:14:04
腾讯 开源 AI sdk ieg


机器之心报道

编辑:陈萍、魔王

SDK 还能自动玩游戏?这个 SDK 有点「酷」。


腾讯IEG开源AI SDK:自动化测试吃鸡、MOBA类游戏

近日,腾讯互娱(IEG)开源了一款名为 GAME AI SDK 的自动化测试平台,该平台封装好了多种工具供开发者使用,目前支持的游戏类型有跑酷类、吃鸡类、射击类、MOBA 类等。

项目地址:https://github.com/Tencent/GameAISDK


腾讯IEG开源AI SDK:自动化测试吃鸡、MOBA类游戏


腾讯IEG开源AI SDK:自动化测试吃鸡、MOBA类游戏

平台内置的「天天酷跑」示例。左图为未训练随机做动作,右图是训练好的效果。

SDK(软件开发工具包)一般是软件工程师为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件时可使用的开发工具集合。

似乎有些抽象。在实际项目中,我们只需记住,SDK 是手游渠道提供的,集成了用户登录、社区功能、社交分享功能、数据后台统计功能的功能模块。接入 SDK 后,游戏厂商和渠道都要对 SDK 包进行测试,测试通过才能上线。

看了上文展示的酷跑动图效果,是不是想上手试试吃鸡类、射击类的游戏体验呢?这个开源项目可以满足你的需求,它支持使用者进行项目接入以及二次开发。

AI SDK 平台

AI SDK 平台是一个基于游戏图像来开发游戏 AI 的开源工具包。工具包主要完成了 UI 检测、游戏内元素识别、AI 算法(DQN、IM)等功能。开发者可以基于此工具包完成游戏自动化测试。

目前该平台已支持的游戏类型有跑酷类、吃鸡类、射击类、MOBA 类等。特定场景下它可以代替人工进行游戏场景的自动化,减少游戏场景测试的人力投入。

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

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

功能简介

GAME AI SDK 平台具备以下功能:

提供多种图像识别算法,识别游戏场景中的关键特征数据,如游戏场景中的技能状态、按钮位置、目标物位置等。

提供模仿学习和强化学习 AI 算法,可直接用于训练游戏场景 AI。

提供了配套的样本采集、图像标注工具。

AI SDK 模块简介

AI SDK 主要包括 AI Client 模块、MC 模块、IO 模块、UI 模块、GameReg 模块、AI 模块。


腾讯IEG开源AI SDK:自动化测试吃鸡、MOBA类游戏

图 1:AI SDK 模块图。

AI Client 主要与手机端交互,获取游戏图像,并执行 UI 或 AI 输出的动作;

IO 模块与 AI Client 交互,作为 AI SDK 的数据输入输出控制;

MC 模块与 IO 模块交互,将数据分发至 AI SDK 后端的 UI 和 AI 模块,并做一些业务逻辑的管理控制;

UI 模块根据游戏图像,识别出需要进行的 UI 操作;

GameReg 模块根据游戏图像,识别出游戏场景内的数字、血条、目标物等元素;

AI 模块根据识别到的游戏元素,依照 AI 算法执行业务逻辑。


腾讯IEG开源AI SDK:自动化测试吃鸡、MOBA类游戏

图 2:架构图。

环境部署

运行 AI SDK 中的 demo,首先需要安装依赖,然后将本地 PC 机连接手机(或手机模拟器),通过 AI Client 实时采集手机(或手机模拟器)的游戏画面,并传给 AI 服务进行处理。把 AI 服务处理的动作结果反馈到连接 PC 的手机上,完成动作的交互。


腾讯IEG开源AI SDK:自动化测试吃鸡、MOBA类游戏

图 3:AI SDK 和手机的交互图。

部署依赖环境

部署依赖环境主要是安装 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 工具集等依赖包。具体请参考:https://github.com/Tencent/GameAISDK/blob/master/doc/environment/InstallStepByStep.md。

Windows:SDK 包下自带要安装的依赖包文件「requirements.txt」,所以 windows 下只需要安装「requirements.txt」中的依赖。具体请参考:https://github.com/Tencent/GameAISDK/blob/master/doc/environment/SDKToolEnv.md。

此外,该项目还介绍了配置文件工具 SDK Tool、项目接入、二次开发以及调试技巧,详情请参考项目链接。

参考链接:

https://ieg.tencent.com/

https://github.com/Tencent/GameAISDK

版权声明
本文为[月月]所创,转载请带上原文链接,感谢
https://www.seoxiehui.cn/article-296260-1.html

  1. Redis solves cache, breakdown and avalanche
  2. redis
  3. Knight card: build a message center based on Kafka, and push hundreds of millions of messages easily
  4. Oracle OCP 19c 认证1Z0-083考试题库(第2题)
  5. redis的三种模式
  6. kubernetes和docker----2.学习Pod资源
  7. 谈一谈如何远程访问MySQL(腾讯云,云主机)
  8. Linux(五):Linux的文档编辑器Vi
  9. Oracle OCP 19C certification 1z0-083 examination question bank (question 2)
  10. 云原生项目实践DevOps(GitOps)+K8S+BPF+SRE,从0到1使用Golang开发生产级麻将游戏服务器—第6篇
  11. kubernetes和docker----2.学习Pod资源
  12. JSP基于Java开发Web应用程序特点有哪些?
  13. Three modes of redis
  14. Kubernetes and docker -- 2. Learning pod resources
  15. Linux (5): the document editor VI of Linux
  16. Cloud native project practice Devops (gitops) + k8s + BPF + SRE, using golang to develop production level mahjong game server from 0 to 1
  17. Kubernetes and docker -- 2. Learning pod resources
  18. What are the characteristics of JSP developing web application based on Java?
  19. Lottie error: java.lang.AssertionError : android.util.JsonReader .peek
  20. Rxhttp - lightweight, extensible, easy to use, perfectly compatible with MVVM, MVC architecture network encapsulation class library
  21. docker入门到熟练
  22. Java之HTTP网络编程(一):TCP/SSL网页下载
  23. Introduction to docker
  24. HTTP network programming in Java (1): TCP / SSL web page download
  25. mysql 的ACID以及隔离级别
  26. Acid and isolation level of MySQL
  27. Java序列化对字段名的影响
  28. The influence of Java serialization on field names
  29. Redis 日志篇:系统高可用的杀手锏
  30. Java中把一个对象复制给另外一个对象引发的思考
  31. Java之HTTP网络编程(一):TCP/SSL网页下载
  32. Redis log: the killer of system high availability
  33. Thinking about copying one object to another in Java
  34. HTTP network programming in Java (1): TCP / SSL web page download
  35. 数据库--oracle安装配置(本地安装的步骤及各种问题解决方案)
  36. 从事Java9年,27天熬夜把近年遇到的面试题收录成册全网开源!
  37. Database -- Oracle installation configuration (local installation steps and various problem solutions)
  38. Engaged in Java for 9 years, 27 days stay up late, the interview questions encountered in recent years included into a volume, the whole network open source!
  39. Java序列化 / 调用 Wildfly 服务接口异常:EJBCLIENT000409
  40. docker-compose部署Estack
  41. Redis 日志篇:系统高可用的杀手锏
  42. Java中把一个对象的值复制给另外一个对象引发的思考
  43. Java serialization / call wildfly service interface exception: ejbclient000409
  44. Docker compose deploy stack
  45. Mac下查看已安装的jdk版本及其安装目录
  46. Redis log: the killer of system high availability
  47. mybatis映射xml配置文件报错:<statement> or DELIMITER expected, got ‘id‘
  48. Thinking about copying the value of one object to another in Java
  49. IntelliJ IDEA 还能画思维导图,果然最强 IDE!
  50. vue使用sdk进行七牛云上传
  51. IntelliJ IDEA 还能画思维导图,果然最强 IDE!
  52. Spring原来还可以这么玩!阿里新产Spring全线宝典成功颠覆了我对Spring的认知!
  53. View the installed JDK version and its installation directory under mac
  54. Error in mybatis mapping XML configuration file: < statement > or delay expected, got 'ID‘
  55. IntelliJ IDEA 还能画思维导图,果然最强 IDE!
  56. Javascript性能优化【内联缓存】 V8引擎特性
  57. IntelliJ idea can also draw mind maps. It's really the strongest ide!
  58. Vue uses SDK to upload Qi Niu cloud
  59. IntelliJ idea can also draw mind maps. It's really the strongest ide!
  60. 深入理解 Web 协议 (三):HTTP 2