前言
~~~~~~~~
在此文章中,我将概述利用游戏引擎中的状态机来改变玩家角色的行为。这类漏洞之所以很有意思,主要是因为它还是一种对未来的预兆。时间和同步问题已经成为一个主要问题,但是随着分布式系统和主线程语言变得越来越普遍,同步和状态追踪的问题只会随之变得越来越常见,因为网络游戏设计的方式,它们普遍存在着时间和状态问题。同时,也将展示我在操控游戏过程中所遇到的事情。
工作机制
~~~~~~~~~~~~
网络游戏中的很多行为会导致角色状态的变化。一次叠加2个技能是一种找漏洞的策略,偶尔会引发有趣的结果。在魔兽世界中魔法交互作用的结果会很惊人。例如,在自己宠物身上使用一种“猎豹守护”的魔法,然后让它攻击远处的怪物,紧接着在飞行点搭乘飞行坐骑。所有这些都是魔兽世界中的标准行为,但通过这种方式组合起来,有趣的状态交互发生了,并没有开始自动飞行,而是获得了飞行坐骑的控制权,可以自己驾驶了。
有时,唯一性魔法或技能的交互会引发有趣的状态变化。例如,在加入地面战斗之前,激活猎豹守护,然后在加入地面战斗之后,激活雄鹰守护——可能会一次有了2中buff。这是一个游戏引擎的状态追踪问题,伴随着有趣的效果。在此要说的是,大多数的交互中,意外的状态组合导致了有趣的行为。
有时游戏程序会使用缓冲器来保存不同的状态。如果这些缓冲器没能清空,或是中断联接,有趣的事情就会发生了。记住,只要有网络延迟和时间差,任何事情都可能发生。例如,在QQ西游中,通过“练功石”兑换奖励之后在变身的过程中存在着延迟(事实上,它存在着2个变身),在此延迟的一段时间中,游戏窗口的右上角虽然出现了变身状态图标,但是角色尚未变身。在此之前直接把状态图标取消掉,之后,虽然把状态取消掉了,但角色因为延迟而产生了孙悟空的模样,并随意驾驶坐骑。没有时间限制,除非重新登录、换线或传送即可还原初始状态。
控制着已变身为孙悟空的角色并驾驶飞行坐骑(在变身状态下,不能驾驶坐骑),这本来是不应该发生的。
有时,如果一下子做很多事情来快速切换状态,游戏可能因而发生混乱,游戏规则(如技能时间差)也被打破了。在神泣中,使用战士角色通过快速地依次按下“刺击”(或者旋风斩、肆虐风暴)技能和“主城传送”以及“移动”,能够产生瞬间攻击的效果以帮助玩家节约大量的时间来保护自己。另一个例子是魔兽世界中,使用“狂暴”让战士脱离攻击状态,接着迅速使用“冲锋”(该技能只能在非战斗状态使用)。只要做得够快,就能在和玩家的战斗中几乎一直使用冲锋。
尾声 ~~~~~~~ 事实上,在游戏世界中探索着它们的漏洞也是一件令人愉快的事情。当然,漏洞的利用方式并不完全局限于这些。像竞态条件和状态交互这样时间差相关的漏洞并不是网络游戏中唯一的漏洞类型。其它类型的问题也都存在着。如果你了解游戏引擎和3D构造环境,这些可以更好地帮助你探索其中的乐趣,因为其中一类漏洞与虚拟世界中的空间相关。此外,有些漏洞和缺陷属于大型分布式进程的副作用,有些则和用户界面的问题以及有关信任模型有关。另外还有一些则是因为做了明显不该去做的事。我不得不说,国内网络游戏的管理阶层存在着不足的问题,3D场景制作团队和游戏引擎调试人员并没有得到互动平台的信息,如官方论坛的BUG模版,我对一些网络游戏提出了相关漏洞,并且对于某些3D场景细节的不足之处提起的建议而尚未得到重视(难道是因为账户在论坛中等级低?)。就像穿越火线网游中存在着非常多的几乎令人发疯的漏洞,同样包括游戏内的防作弊踢人机制问题,而官方论坛内已经有着足够多的建议发布者,而作为论坛相关版主,对于发布漏洞问题的人做了什么解释?对于制作团队做了什么解释?版主真的向制作团队报告了吗?已经明确说明了互动的人员完全没有与游戏制作团队的合作。我十分想不明白,这甚至有点类似于中国的政府与农民不能够达到良好的互动渠道,即使有,也是存在着繁琐的曲折和不能得到重视而拖延时间。事实上,只是表面的形式,没什么实际作用!无论是娱乐还是技术等等,一些缺少认真态度所产生问题值得我们思考!
最后,如果你对其它的方案很感兴趣,可以通过Email(Hack01[at]Live.cn)向我告知。
|