当前位置: 首页 > 软件库 > 开发工具 > 测试工具 >

GameAISDK

基于图像的游戏 AI 自动化框架
授权协议 GPL
开发语言 C/C++
所属分类 开发工具、 测试工具
软件类型 开源软件
地区 国产
投 递 者 颜博达
操作系统 Windows
开源组织 腾讯
适用人群 未知
 软件概览

APAIST是基于游戏图像来开发游戏AI的开源工具包(开源项目名为GameAISDK),工具包主要完成了UI检测、游戏内元素识别、AI算法(DQN,IM)等功能,特点是以游戏图像为输入,直接输出模拟触屏操作,不依赖游戏端提供任何API接口。

开发者可以基于这个工具包完成游戏自动化测试。目前已支持的游戏类型有跑酷类、吃鸡类、射击类和MOBA类等。

APAIST框架主要包括SDKTool(配置文件工具),AI SDK两部分。SDKTool用于生成跟具体游戏相关的AI SDK所需要配置文件。如游戏运行过程中,整个流程中需要动作交互的UI,需要识别的游戏元素等。

AI SDK部分主要包括AI Clinet模块, 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 算法

▲ 基于纯视觉识别的 AI 训练和运行框架

 相关资料
  • WebUI automation testing framework based on Selenium 介绍: pyse基于selenium(webdriver)进行了简单的二次封装,比selenium提供的方法操作更简洁。 起因:   python + selenium 自动化测试写久了发现selenium(webdriver)提供原生的方法并简便,于是,产生了二次封装的想法。想不到太炫酷的名

  • 我目前正在使用Java2D开发一款基于瓷砖的Java游戏。但是,我认为我错过了一些非常愚蠢的东西,或者可能不是,问题是我检查了我的代码数千次,我没有看到任何奇怪的东西。这就是我现在的游戏的印刷品: (灰色瓷砖是砖,绿色瓷砖是草,棕色瓷砖是土) 所以砖块以某种奇怪的方式复制。这是我的关卡代码: 级别被渲染到渲染(Graphics2D)方法中。它是一个抽象类,所以我有一个子类,Level1,如果它是图

  • 此为在原版2048的基础上,添加了电脑AI解题,并稍微修改了UI添加按钮来触发AI。 AI的核心在/js/myAI.js里,相关函数在window.myPlugin里 核心算法是用dfs搜3步后使代价函数window.myPlugin.evalCost期望值最小的走法, 代价函数的设计目的是让块尽量按由大到小顺序堆叠在右上角,并合并。 实验效果是基本能保证到2048,偶尔到4096甚至8192(概率较小)。

  • 《头号玩家》的启发 看过《头号玩家》的朋友们应该都记得在2045年虚拟现实技术和人工智能技术多么的强大,然而虚拟世界对现实世界的影响和冲击也是不容小觑的,万一哪天人工智能控制了人类就像智子控制了基础科学一样那该怎么办呢?当然这有些开脑洞了,言归正传,个人觉得第一个真正的人工智能应该会出现在虚拟世界里,那么最直接的虚拟世界就是游戏世界,而且是网络游戏。 这个系列的设计 最终目标:做一款简单有趣的小游

  • 目前,我正在尝试用Java开发基于2D平铺的侧滚游戏,主要基于David Brackeen的“用Java开发游戏”中的代码和示例 目前地图文件的大小为100x100个图块(每个图块为64x64像素)。我已经将系统配置为仅显示玩家可见的图块。Graphics系统由ScreenManager类管理,该类返回当前BufferStrategy的图形对象,如下所示: ScreenManager.java 来

  • 我正在用Java创建我的第一个游戏。游戏是大富翁。我在纠结如何设计游戏,使其基于回合的结构模型(管理玩家回合)。我想允许一个单一的人控制和一个或多个人工智能控制的玩家玩游戏。 我的具体问题是,我不知道是否要实现一个游戏循环,这意味着一个循环可以管理玩家和与大富翁游戏直接相关的变量,(想想这样的事情,比如提示每个玩家进行他们的回合,增加回合到下一个玩家,或者从每个玩家那里获得骰子滚动--依次)。我指

  • 所以我有(gridLayout),每个JXButton都有一个图标,一个播放器所属的片段,并且有一个。 我目前正在努力使战略游戏(两个球员-我处理两者)。我设置了图标,碎片和一个碎片应该如何移动。 现在我希望让它轮流播放。 我的思想播放器2件当播放器1转动时隐藏。 和应该改变图标时,播放器2。 如果这两种方法看起来还可以,那么我的问题在于如何实现转向。

  • 使用Cocos2D, 模仿QQ连连看写的一个连连看游戏Demo,有声音效果。 [Code4App.com]