首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游戏服务器的Juggernaut gem

游戏服务器的Juggernaut gem
EN

Stack Overflow用户
提问于 2012-01-14 21:03:29
回答 1查看 425关注 0票数 0

这是关于最新的巨人宝石(https://github.com/maccman/juggernaut)

我在考虑架构,比如说,‘点游戏’。这个元游戏非常简单:每个登录的用户(根据Juggernaut,订阅了频道)都是JS画布上的一个随机颜色的点。用户可以向任何方向移动他的点。就这样。

Juggernaut应该为连接的客户端传输和推送所有数据。

目前,我将架构想象为:

1)客户端将点的坐标和玩家的id ([1,10,299])作为ajax推送到Rails。

2) Rails将此数据推送到Juggernaut

3) Juggernaut将坐标推送回所有监听此通道的客户端。

代码语言:javascript
复制
Juggernaut.publish("coordinates_channel", [1, [10,299]])

问题:

1)当我需要在js canvas上逐像素移动'dot‘对象时,我需要发送太多的AJAX请求。例如,如果我的点每秒移动20个像素,我需要每秒发送20个请求。不能接受。

2)是否应该(例如使用EventMachine )将Juggernaut.publish包装到异步循环中?因为,想象一下1000个客户端(1000个点,以及不断更新坐标的数据流)……

或者也许我在使用Juggernaut gem时搞错了客户端-服务器?你对这个实现有什么看法?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-01-14 21:28:34

WebSockets/长轮询/其他comet技术具有低延迟,您的游戏将会滞后。我见过通过websockets实现的实时游戏,它们要么滞后,要么游戏机制是特定的,比如让玩家移动得非常慢,以解决低延迟问题。经典的AJAX是绝对不可能的。

这里有一些关于改进延迟的参考资料

Valve Source Multiplayer Networking

Unreal Source Multiplayer Networking

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8862381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档