创造游戏中“机器人”编辑本段回目录
两位程序员揭示了在现今极其流行的游戏中,自动化操作游戏人物角色的秘密方法
有时候,正是生活中一些简单的需求激励出了创造发明。对于四年前的克里斯托夫·穆尼(Christopher Mooney)来说,这个需求就是洗个澡。当时,身为南缅因大学的大四学生,穆尼和一群朋友正长时间地沉溺在那款十分火爆的网络游戏――魔兽世界――当中。穆尼不想让朋友们半途而废,将来不得不重新开始,于是,他胡乱将一些编码拼凑了一个程序,让他的角色与队伍行动一致,并可以救助任何需要的人。然后,他离开电脑,洗了个澡提提神。
奇幻的世界:魔兽世界是一款流行的大型多人在线角色扮演游戏(MMORPG),在2008年12月的时候,已经拥有1150万的用户。
图片来源:暴雪娱乐公司
最近,穆尼和同事詹姆斯·卢伊德克(James Luedke)在拉斯维加斯举行的DEFCON 17黑客会议上,展示了这个独创技巧的升级版:通过一系列的程序使游戏中的角色能够自动化运行,直到今天,它一直避开了魔兽世界开发商暴雪娱乐公司的监测。
“玩游戏当然很有意思,但是我熬夜不睡是为了弄明白改变环境和扩展游戏体验的方法。”穆尼说,“过去几年里,我们走的弯路,我们重写的程序,肯定相当于一个全职工作者一年的工作总量。”
该项目被两位程序员戏称为叫做“斩首先知”(Behead the Prophet)(BTH),包括使角色自动化的编码,叫做“助手”。这些称之为“漫游”的自动化程序,在大型多人在线角色扮演游戏中充满着争议,因为它们被用于自动地收集宝物(熟知为“打钱”)的活动。而且,一些机器人程序透过游戏程序设计的漏洞,在其他方面进行欺骗,例如,赋予玩家超快的速度,或者加速进攻能力。
暴雪允许一些第三方的开发人员来创作脚本和游戏插件来增强用户界面。但是公司已经采取措施,来防止第三方的开发人员和黑客通过不被批准的方法,在外部的程序中使用游戏内部的信息。该公司甚至已经创建了一个叫做“守望者”(Warden)的程序,来监测违反规定的程序。
穆尼和卢伊德克争辩说,他们的程序是有益的。他们对“助手”进行编程,只有特定组织里的玩家寻求帮助时,“助手”才会在该角色的指引下进行一定的行动:疗伤,使用魔法,和对敌攻击。
为了避开法律问题和暴雪的监测,穆尼和卢伊德克创建了一个用Lua编程语言编写的脚本,它根据游戏内部所发生的事情来做出决策。该脚本的决策用屏幕上方的一个特定颜色条描绘出来。另一个程序使用这个颜色来决定按下哪一个按键对“助手”角色进行控制。“外部的程序是比较笨,它只知道按下按键,”穆尼说,“所有的能力集中在内部的插件里。”
根据以前对禁止相似的程序所做出的努力判断,暴雪对于这两位的所作所为,很可能会不太赞成。
二月,暴雪在法庭上状告成功,裁定MDY工业公司违反了游戏出品商的保护协定,并且侵犯了游戏版权,因为该公司创造了一个相似的游戏内部辅助程序,使玩家角色可以在短时间内自动运行。该机器人程序叫做MMO Glider,帮助玩家角色自动地进行那些有时候比较繁重的练级和收集物品的任务。
“他们说,我们拥有执照,如果你不遵照执照条款,我们就会拿走你的执照,而你就成为一个侵犯版权者,”华盛顿特区的电子版权组织——公众知识促进会(Public Knowledge)的会员和职员律师耶夫•皮尔曼(Jef Pearlman)说,“这是一个令人担心的模式。”
对于DEFCON会议上的展示,暴雪并没有立即作出回应。
穆尼认为,暴雪与其消灭机器人程序,倒不如开启少量的独立服务器,作为一个游乐场,提供给那些想要对他们的角色进行自动化试验的开发人员和玩家。他说,除了可以帮助减少那些玩家必须杀掉繁多数量怪兽的乏味任务——称作“磨碎(grinding)”的活动——这种分离的环境还可以成为试验新的自动化和机器智能化的好地方。
“确实存在这样一个享受此种游戏体验的开发人员圈子,”穆尼说:“我认为,这对防止暴雪和开发人员们之间的没完没了的争吵,将大有帮助。”