标签: real-time-multiplayer

Javascript多人游戏-用于游戏/物理逻辑的requestAnimationFrame吗?

我正在开发一个基于Javascript的多人游戏。到目前为止,我已经准备好基本的服务器,客户端和网络。

我确实遇到了一个问题,我的播放器在120Hz屏幕上的移动速度比60Hz屏幕快。我已经通过将玩家的移动速度乘以'requestAnimationFrame'的变化时间来解决此问题。

然而; 将动画与逻辑分离是更好的解决方案吗?

如:

//Game loop; Do each 1/60th of a second
setInterval(gameTick, 1000/60);
function gameTick(){
  player.handleKeys();
  enemies.foreach( (enemy) => {
    enemy.update();
  });
}

//Draw loop; match to player screen refresh rate
window.requestAnimationFrame(gameLoop);
function gameLoop() {
    player.draw();
    enemies.foreach( (enemy) => {
    enemy.draw();
  });
  window.requestAnimationFrame(gameLoop);
}
Run Code Online (Sandbox Code Playgroud)

尽管差异可能是“可以忽略的”,但我想避免使用240Hz服务器向服务器“发送垃圾邮件”的播放器,并且要比其他播放器更具优势。

另一方面,对于240Hz显示器;您的键盘输入只有4帧中的1帧会被处理,因此感觉不那么流畅吗?

我要问的原因是,这将是一场竞争性游戏,因此应保持平衡。但是我检查了各种似乎一致同意使用requestAnimationFrame的资源(即使是逻辑;不仅是图形),尽管我对此表示怀疑,并想知道哪个是正确的(和/或用于专业人士)。竞技游戏)。

javascript game-physics real-time-multiplayer

5
推荐指数
1
解决办法
45
查看次数

在 Agora.io 语音聊天功能中,是否可以知道哪个演讲者正在讲话?

我最近开始在我的 Unity 多人游戏中使用 Agora.io 的语音聊天功能。我想在频道中的特定人员开始讲话时立即启动动画本地播放器对象,并在他/她停止时停止动画。

Agora SDK 中有没有什么方法可以调用知道频道中的哪个用户在说话?

unity-game-engine agora.io real-time-multiplayer

1
推荐指数
1
解决办法
1203
查看次数

Photon Unity 中的 CCU 是什么?

我无法理解 Photo Engine CCU 的含义以及如何在我的多人游戏中计算它。

谁能解释一下光子如何计数 CCU。

multiplayer unity-game-engine photon real-time-multiplayer

0
推荐指数
1
解决办法
771
查看次数