如何在多人浏览器游戏中编程快速交互?

时间:2014-03-11 02:17:06

标签: javascript php jquery ajax game-engine

我过去一直在编写很多多人浏览器游戏,需要玩家之间的一些互动,但由于它更多的是关于策略和“构建”游戏,因此交互不是主要问题。

我能用jquery,ajax和php完成所有这些工作:

  1. 有人对游戏的整体内容进行了更改 - ajax会触发一个php脚本,将此更改存储在数据库中。

  2. 你的客户端代码连续运行一个ajax脚本,每次触发一个php脚本搜索数据库进行更改,如果有的话,你会收到通知,或者你的页面的内容(html代码)会根据这些更新变化。

  3. 以下是我所说的一个例子:

    setInterval(function() {    
        $.ajax({
            url: "checkUpdates.php",
            type: "post",
            dataType: "json",
            success: function(data) {
                // do the changes based on the returned data
            }
        });
    }, 1000);
    

    但现在我正在开发以互动为主要因素的游戏。让我们说一下网球,你需要跟踪球员的位置以及他们的动作。 简单的方法是将这些值存储在数据库中,并使用上述功能更新页面内容。但现在这是不可能的,因为如果你快速连续启动ajax函数,那么它将减慢浏览器的速度。另一个问题是,在激活ajax函数和根据结果进行更改之间存在“大”延迟。

    因此我的问题是:

    1. 使用ajax解决此问题有更好的方法吗?一些方法可以克服上述问题(每隔0.1秒触发ajax函数)。

    2. 甚至可以在php和关系数据库中使这个工作,或者你需要使用像node.js / python这样的东西来支持nosql数据库的后端吗? (我想这会更快)

    3. 该领域目前的艺术水平是什么?

    4. 尽管这可能是一个相当广泛的问题,但我没有找到任何严格说提及方法不合适的内容。

0 个答案:

没有答案