如何从基于浏览器的游戏Web服务器获取本地应用程序来轮询游戏数据

时间:2012-07-05 19:35:30

标签: c# php javascript webserver

感谢您查看我的问题。

Fist让我说,我对任何类型的Web开发的经验都非常有限。我的强项是嵌入式系统,与他们的Web界面无关。此外,我不是在寻找任何人为我做这项工作。如果有人可以告诉我“是的,这可以做到,这是你将要使用的总体方向和方法,我会很高兴自己学习其余部分。

我感兴趣的是从基于浏览器的游戏的Web服务器获取数据并对其进行局部分析。例如,像Ultima或Ikariam这样的游戏允许您从浏览器播放,显然控件和界面是从托管游戏的服务器更新的。我已经尝试了一些使用greasemonkey java脚本,并且已经看到了从这些游戏中读取数据并修改UI的脚本;但是,这些脚本的性质不允许我将数据提供给本地计算机进行分析。我更喜欢用C#编写我的应用程序,但如果没有.NET解决方案可行,我会接受其他选项。有没有办法做到这一点?我的想法是让我能够登录游戏并在我的应用程序轮询数据(如资源计数或攻击等)或其他内容时打开我的浏览器。或者也许我错过了一些脚本可以写入本地机器的东西。如果您需要更多信息,请告诉我。

再次感谢您的时间!

2 个答案:

答案 0 :(得分:3)

大多数游戏引擎都努力将数据保存在服务器外部的人手中。是的,客户端中有请求者检索信息并在UI上显示,但这始终是基于客户端状态的隔离信息。

这种限制的原因是,如果有人访问了您的提案等数据,那么它也会打开黑客帐户或作弊的大门。毕竟,如果您可以提取数据,您可以操纵它并使您的角色无与伦比。这就抛出了微妙的游戏平衡。即使你说'但我从来没有打算这样做',它也无法打开你获取数据的大门。这对开发者来说风险太大了。

现在,如果一个程序可以“玩”游戏,如果一个人可以,那确实如此。在游戏世界中,这些被称为机器人。机器人使得玩家处于不公平的优势而不是其他合法玩家,因为它只是坐着等待它可以移动而玩家可能在移动之间有一个大的窗口。由于这个原因,大多数游戏网站禁止机器人。代替人类的计算机游戏仍在作弊。

更新:

现在我已经说过,这里有一个网站,可以帮助你做一些你想要做的事情,因为它是专门为从网站获取数据并操纵它而编写的:hacker.org

答案 1 :(得分:2)

如果我理解这一点,您希望以编程方式控制Web浏览器。据我所知,SeleniumRC是此选择的工具。

我知道它比它的轻量级伴侣Selenium IDE强大得多,只有这样,您可以编写与网站的交互脚本,而无需了解其实现的大量内容。例如。您可以根据文本内容找到并单击按钮,而不是文档中的元素ID或位置。

-

如果你想只是嗅探游戏的HTTP流量,那么基于浏览器的HTTP嗅探器(如Firefox的实时HTTP头)即使它是SSL也是如此(如果你使用代理并且流量是SSL,我怀疑游戏服务器将能够检测到它。)

我预测理解HTTP流量要比使用Selenium直接从UI中获取所需数据更难。