我一直想知道的东西,特别是因为它让我在小时候开始编程,是视频游戏机器人的工作方式吗?我确信有很多不同的方法,但是MMORPG的自动化呢?甚至是FPS型机器人?
我在谈论玩家自制的机器人。
答案 0 :(得分:46)
要“游戏”游戏,您需要能够以编程方式执行两项操作:检测游戏中发生的事情,并为游戏提供输入。
检测游戏中发生的事情往往是两者中的难点。执行此操作的一些方法是:
将输入事件生成回游戏通常是更容易的任务。一些方法包括:
请注意,在游戏中运行“僵尸程序”通常会违反游戏的使用条款,并可能导致您被暂停,禁止或更糟。在某些司法管辖区,这可能会受到刑事处罚。这是使用游戏内置脚本功能的另一个好处;如果它被设计成游戏软件的一部分,那么游戏发行商很可能不会禁止你使用它。
答案 1 :(得分:11)
我自己写了一个简单的MMORPG机器人。我用了AutoHotkey。
所以我所做的就是在屏幕上搜索敌人的名字(存储为带有游戏字体的图片),脚本点击它下方的几个像素进行攻击。如果它太低,它还会跟踪健康栏和盆。
非常琐事。但我知道一个使用AutoHotkey制作的WoW机器人。我see很多其他人有同样的想法(我的不是魔兽,但也可能是非法的。)
More advanced techniques不会直接捕捉屏幕read the game's memory。你必须做很多逆向工程才能完成这项工作。当游戏更新时它就会停止工作。
答案 2 :(得分:5)
个人如何日常工作?
这是游戏中的AI解决的问题。
您希望您的实体做什么?编码您的实体来做到这一点。如果你想让你的怪物追逐玩家的化身,怪物只需要面对化身然后向它移动。当怪物进入合适的距离时,它可以选择咬玩家头像,这个选择可以像AmICloseEnough(monster, player);
一样简单,也可以更复杂甚至随意。
FPS中的机器人很难做到正确,因为它很容易让它们变得完美但却不那么容易让它们变得有趣。例如。他们总能确切地知道玩家的确切位置(gPlayer.GetPosition()
),因此每次都能轻松击中玩家。使机器人像人类一样移动需要一些“艺术”。
答案 3 :(得分:0)
它被称为AI(人工智能)并且实际上并不难以复制,游戏编程语言中的一组规则和命令将起到作用。例如,FPS机器人可以通过获取玩家身体的坐标并设置敌人机器人的枪来瞄准该坐标并在一定范围内开始射击来工作。
答案 4 :(得分:0)
对于FPS风格的机器人,您可以查看虚幻开发工具包。据我了解,这有很多实际的游戏源代码。
答案 5 :(得分:0)
与输入仿真一起使用的屏幕抓取通常是最安全的游戏方式而不会被抓住。很多人(包括我自己)多年来都没有这么做过。
此外,为了在检测游戏中发生的事情和提供输入之间添加额外的步骤,一些游戏需要进行大量计算才能决定向游戏提供何种输入。例如,有一个游戏,我必须计算攻击敌人时发送的船只数量,这是基于我拥有的船只数量,船只的类型,以及它是谁和什么样的敌人。计算通常是“简单”部分,因为您通常可以使用几乎任何编程语言来完成此操作。
答案 6 :(得分:-1)
我认为机器人是各种游戏/赌博行业的真正杀手。黑客使用机器人代表他们玩游戏,这对其他没有陷入弊端的人提出了严重的信任因素。正如Ryan所说,最聪明的机器人使用屏幕抓取,但我不同意他的观点,即无法抓住屏幕抓取机器人。有多种屏幕抓取防护服务,包括ShieldSquare。
免责声明:我是ShieldSquare的联合创始人之一