【问题标题】:Server for a game like blobby volley像blobby volley这样的游戏服务器
【发布时间】:2012-07-21 09:46:05
【问题描述】:

我制作了一个在线 HTML5 游戏,比如 blobby volley(两个果冻正在打排球)。我在 php 上有一个 websocket 服务器。游戏以 50 fps 运行。这是它如何工作的示例:我按下右箭头按钮,我的客户端将moveForward 标志设置为true 并将消息发送到服务器。服务器将消息传输到另一个客户端,这个客户端处理它。当客户端处理keyup 时,它会做同样的事情,但会将moveForward 标志设置为false。 问题是服务器将消息传输到客户端需要一些时间,因此当 keyup 事件触发时,果冻立即在一个客户端上停止,但仍在另一个客户端上移动,并在一秒钟内停止。有什么方法可以让它更加同步?

【问题讨论】:

    标签: php javascript html websocket


    【解决方案1】:

    您可能想尝试在游戏中省略服务器,使其成为浏览器之间的点对点通信。

    我没有这方面的个人经验,所以我能给你的最好的方法是链接到this question。似乎大多数浏览器最近都添加了对 WebRTC 的支持。

    【讨论】:

    • 是的,对 WebRTC 的支持已添加到浏览器中,但现在它没有数据通道。他们很快就会添加它,而这正是我所需要的。
    • 很高兴我能帮上忙。如果你在这里写下它是如何为你工作的,那就太好了,一旦你使用它。
    【解决方案2】:

    您可以只传输位置而不是传输动作,这样会更准确,但我猜仍然会有一点延迟。

    【讨论】:

    • WebRTC DataChannel 已在 Chrome Canary 中实现。我已经学会了如何设置 p2p 连接,下一步是将所有代码添加到游戏中 - 例行工作。
    猜你喜欢
    • 2012-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多