1 分钟阅读 作者:EAT team

有 AI 版的 Evony 机器人吗?计算机视觉和 OCR 如何驱动现代自动化工具

Evony 机器人里的“AI”是什么意思:用计算机视觉识别界面和按钮,用 OCR 读取数字和计时器,再由调度器决定下一步做什么。不需要聊天机器人。

本文由机器自动翻译。以英文版本为准。 阅读英文版

有,而且是在真正重要的意义上:现代 Evony 机器人用的计算机视觉和光学字符识别(OCR)技术,正是如今很多人所说的 AI 背后的技术。它查看游戏截图,识别其中的按钮、图标、卡片和数字,然后决定下一步点哪里。它不是聊天机器人,也不会用大语言模型来玩游戏。下面就来说说 Evony 机器人里的“AI”到底做了什么,以及为什么这种设计在每次游戏更新后依然能用。

问题:机器人只能看到像素

模拟器只给机器人两样东西:截图,以及发送点击的方式。没有任何菜单可以问“有集结开着吗?”。机器人必须自己看图判断,每分钟几百次,而且屏幕会随着每个弹窗、每个活动横幅和每次游戏更新而变化。这是一个感知问题,而感知正是计算机视觉擅长的。

第一层:识别界面和按钮

第一件事是知道自己在哪:主城、地图、集结列表、酒馆,还是某个弹窗。机器人有一个参考图库,里面是游戏中按钮、图标和文字标签的小截图,并把它们与当前截图做匹配。当集结卡片上的“Join”按钮高置信度匹配时,机器人就知道这里有一张集结卡片,也知道该点哪里。同样的技术可以识别集结卡片上的 Boss 图标、喂龙界面、Wheel of Fortune 的扇区、黑市商品,以及每日循环中涉及的其他几百种东西。

有两个细节让这件事比听起来更难。游戏在低配设备上渲染得更模糊,所以在高配电脑上截取的参考图,在笔记本上可能匹配度较低,因此每个界面的匹配阈值都要据此单独设定。另外游戏每次更新都会更换美术资源,所以维护机器人的一部分工作,就是每次补丁后重新截取参考图,并在各个模拟器上测试。

第二层:读取数字和文字

知道部队界面已经打开还不够,机器人还需要读出行军时间、兵力数量、体力、地块等级和集结的剩余名额。这就是 OCR:机器人裁剪出数字所在的区域,再用文字识别器去读。有了 OCR,集结机器人才能拒绝没有空位的集结,采集机器人才会选 6 级地块而不是 4 级地块,调度器才能知道一支部队会在 14 分钟后回城,而不是靠猜。

在游戏字体上做 OCR 本身就是一门手艺。带描边、彩色背景和极小字号的数字会让通用识别器犯糊涂,所以每个界面的裁剪区域都经过调校,读出的结果还要做合理性检查(体力读数为 9,000 是读错了,不是奇迹)。

第三层:决定做什么

感知回答的是“屏幕上有什么”。调度器回答的是“接下来该做什么”。它为每个账号保存任务列表、任务优先级和计时器:采集部队会在已知的时间回城,Boss 按已知的时间表刷新,活动建筑按日历开放和关闭,每日任务在固定的时刻重置。调度器选出下一个任务,把屏幕交给该任务的逻辑,任务再用第一层和第二层去执行,并在派出部队等有风险的操作之前先做检查。

应用的活动日历就在这一层,包括社区上报的活动实际结束时间,模拟器轮换也在这一层决定哪些账号现在运行、哪些等待。

为什么不用大语言模型?

语言模型擅长处理语言。玩 Evony 是一个感知和时机问题:看一个界面、读一个数字、在一秒内点击、整夜重复而不跑偏。视觉流水线可以在你自己的电脑上可靠而便宜地完成这些事;让语言模型参与循环会很慢、很贵,而且在识别 Join 按钮上并不更强。语言模型有用的地方在机器人周边:文档搜索、客服支持,以及帮助维护人员的工具。在循环内部,靠的是视觉、OCR 和调度器。

这对你作为用户意味着什么

  • 和屏幕有关的设置很重要。 分辨率、图形模式和游戏版本都是视觉层的输入,所以设置指南写得那么具体。
  • 更新是常态。 游戏打补丁后,参考图和裁剪区域会重新截取;机器人的更新就是修复。在更新发布之前,请保留之前的游戏版本。
  • 检查是功能。 派出部队前的检查,以及对 OCR 读数的合理性检查,能避免一次读错让你损失兵力。

想亲眼看看它如何工作,可以创建免费账号,下载应用,然后在运行时观察日志:每一行都是机器人在告诉你它识别到了什么、决定了什么。

常见问题

Evony 机器人用 AI 吗?

它用的是计算机视觉和 OCR,这些都是 AI 技术:它识别截图中的按钮和界面并读取其中的数字,再由调度器决定下一步做什么。它不会用聊天机器人或大语言模型来玩游戏。

ChatGPT 能替我玩 Evony 吗?

实际上不行。玩这个游戏是感知和时机问题:识别界面、读数字、在一秒内点击,还要整夜不停。你自己电脑上的视觉流水线可以可靠地完成这些;语言模型会很慢、很贵,而且识别按钮也不更强。

为什么游戏更新后机器人会失灵?

因为它是靠游戏的外观来识别游戏的。当更新改变了美术、布局或字体,部分参考图和 OCR 裁剪区域就会失去匹配,直到重新截取为止。所以标准建议是:在机器人更新发布前,保留之前的游戏版本。

机器人会读取游戏内存或网络流量吗?

不会。我们的应用像玩家一样,通过模拟器使用截图和点击来工作。那些注入游戏客户端或与其服务器通信的工具,每次补丁都会失效,而且是最快被封号的途径。

在您自己的账号上试试

创建免费账号,下载 Emulator Automation Tool 或 ESB-TKR,并按文档操作。技术支持在 Discord。