bat大牛带你深度剖析android 十大开源框架_腾讯IEG开源AI SDK:自动化测试吃鸡、MOBA类游戏...

机器之心报道

编辑:陈萍、魔王

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

7b2c46fc175edb3a43a95b854b97d8fc.png

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

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

eea33eace9192cf40efd8b152ad76c6a.gif
05988df604c32fe7dd24ad3393075281.gif

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

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 模块。

46061327e67409342a3af05ef819a8a6.png

图 1:AI SDK 模块图。

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

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

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

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

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

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

bd374048a831f99cb3d17abe6df64fd3.png

图 2:架构图。

环境部署

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

bd7a163914a9652f344166f26eefcb23.png

图 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

Android开发又将来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用。其中也有许许多多的开发者提供了应用开源项目,贡献出他们的智慧和创造力。学习开源代码是掌握技术的一个最佳方式。下面推荐几个应用开源项目,这些项目不仅提供了优秀的创意,也可以直接掌握 Android内核的接口使用: 1、Android团队提供的示例项目   如果不是从学习Android SDK中提供的那些样例代码开始,可能没有更好的方法来掌握在Android这个框架上开发。由Android的核心开发团队提供了15个优秀的示例项目,包含了游戏图像处理、时间显示、开始菜单快捷方式等。   2、 Remote Droid   RemoteDroid是一个Android应用,能够让用户使用自己的无线网络使用无线键盘、触摸屏操作手机。这个项目为开发者提供了如网络连接、触摸屏手指运动等很好的样例。   3、 TorProxy和Shadow   TorProxy应用实现了Android手机无线电电传通讯(TOR),和Shadow应用一起使用,可以使用手机匿名上网。从该项目源代码中,可以掌握socket连接、管理cookie等方法。      4、 Android SMSPopup   SMSPopup可以截获短信内容显示在一个泡泡形状的窗口中。从这个项目中可以掌握到如何使用内置的短信SMS接口。   5、 Standup Timer   Standup Timer应用用于控制站立会议时间,似秒表倒计时,可以提醒每个人的讲话时间已到,从而保证每个与会者使用时间一样。从该项目的代码中,可以学会如何使用时间函数。另外,这个项目的代码是采用视图view、模型model严格分离的设计思路。      6、 Foursquare   是Foursquare.com的一个客户端应用,该应用主要分为两个模块:API(com.joelapenna.foursquare)和界面前端 (com.joelapenna.foursquared)两部分。从该项目代码中,可以学会如何同步、多线程、HTTP连接等技术。   7、 Pedometer   Pedometer应用用于记录你每天走路步数的。尽管记录不一定精准,但是从这个项目中,可以学习几个不同的技术:加速器交互、语音更新、后台运行服务等。   8、 OpenSudoku-android   OpenSudoku是一个简单的九宫格数独游戏。从代码中可以学习到如何在视图中显示表格数据,以及如何和一个网站交互等技术。   9、 ConnectBot   ConnectBot是Android平台的一个客户端安全壳应用。从该项目代码中,可以学习到很多Android安全方面的内容,这些是你在开发应用时经常需要考虑的安全问题。   10、WordPress的Android应用   当然在最后不能不提WordPress的Android应用了,这是WordPress官方开发团队提供的一个项目。从代码中可以学习到XMLRPC调用(当然还有更多的优秀内容)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值