NODEJS实时游戏数据传输

时间:2015-06-05 20:06:50

标签: javascript node.js html5 socket.io transmission

练习我正在尝试开发多人游戏。我正在使用NODEJS和HTML5画布。要在客户端和服务器之间共享数据,我正在使用Socket.io

我要知道的是如何优化客户端 - 服务器数据传输。

INFO

  • 玩家一直在移动,我必须每1000/60毫秒(60 fps)更新玩家位置。

  • 玩家动作:

    vecX = mouse.x - player.x;
    vecY = mouse.y - player.y;
    vec = Math.sqrt(vecX*vecX + vecY*vecY);

    dx = vecX/vec;
    dy = vecY/vec;

    player.x += dx*player.speed;
    player.y += dy*player.speed;
  • 我尝试了什么?

第一次尝试:

  • 客户端为每次鼠标移动将鼠标位置发送到服务器。

  • 服务器保存鼠标位置

  • 服务器每1000/60毫秒刷新玩家位置(按每个玩家的鼠标位置)并将其检索给每个在屏幕上显示位置的玩家(屏幕只显示地图的一部分)。

    < / LI>

- &GT;问题:滞后很多。

第二次尝试:

  • 客户端将dx和dy发送到服务器以进行每次鼠标移动(而不是鼠标位置)。

  • 服务器为每个玩家检索此dx和dy。

  • 客户通过它的dx和dy移动每个玩家。

  • 服务器通过它的dx和dy移动每个玩家(只刷新服务器端数据)。

  • 服务器每100毫秒检索一次玩家位置(纠正位置)。

- &GT;问题:不同步的数据

0 个答案:

没有答案