我开始了我的第一个node.js演示工作,该演示使多个人可以在同一html画布上控制一个字符。左上角会出现一个字符,您可以使用箭头键四处走动。
由于我只是将输入发送到服务器,然后将其中继给所有客户端,而无需执行其他任何操作,所以我最终意识到客户端很容易失去同步。
关于同步网络游戏,我做了很多阅读,但是有些事情让我有些困惑。据我了解,游戏应该在服务器上运行,并且应该向游戏状态的客户端发送“快照”。
让我感到困惑的是服务器端。服务器是否应在绘制画布上的所有内容的同时运行实际游戏?还是只做除绘画之外的所有事情,只运行更新,然后每X毫秒发出一次游戏状态?
在我的客户端上,我正在使用requestAnimationFrame进行循环。如果情况是服务器只是运行了带有游戏逻辑的循环,我是否只是尝试将requestAnimationFrame与setInterval匹配在服务器上?这是真正让我失望的部分。我应该如何在服务器上创建游戏循环?
感谢您抽出宝贵的时间对此进行研究