我们需要开发一款具有实时性能的多人游戏。这需要在全球范围内工作(美国、欧洲、亚洲的服务器),并支持巨大的流量。使用 Google Cloud 服务进行托管。
我们正在考虑像 Jam with Chrome、Chrome Maze 或 Cube Slam 这样的参考。
游戏 :
- 2 名玩家挑战比赛
- 我们需要同时显示2名玩家的进度
- 每场比赛可能持续大约 30 到 45 秒
主办:
我们显然会在 AppEngine 上托管网站,自动扩展,但正在考虑两种实时服务器解决方案:
使用带有 Compute Engine 的 websocket 服务器
就像他们使用 Chrome、Maze 等为 Jam 所做的那样。
开发我们自己的 websocket 服务器(技术待定),部署在欧洲、美国、亚洲的数据中心,处理扩展,它们之间的同步,计算服务器上的延迟问题和客户等。
但这在技术上很有挑战性,因为我们的时间很短,而且现在还缺少一个管理员系统和网络人员。或者使用 Channel API
我们理解它不是 websocket 平台,实时性能较低。
但这对我们和我们拥有的时间来说会更加简单和安全。
所以,我们也想了解更多。
无论如何,我们认为我们可以在前端使用一些图形技巧,让它看起来像实时的,但这真的取决于我们是否有 100~500ms 或 500ms~10s 的延迟。
一些问题 :
- 不同解决方案的延迟范围值是什么样的?
(带有 Chrome 的 Jam 使用 GCE 获得了 100 毫秒,Channel API 可以达到几秒钟吗?) - Channel API 服务器如何处理高流量,扩展如何工作,延迟会变得非常高吗?(没有关于频道文档的信息?)
- 如果法国的人和美国的人一起玩,连接到不同的服务器,等待他们同步,如何处理?
- 有什么建议或经验可以分享吗?
- 有什么有趣的阅读或观看吗?(看到一些但不是很精确)
- 还有其他解决方案吗?
感谢您的任何帮助评论!
编辑:
- 只有 2 个玩家连接在一起,可能来自不同的世界区域,不需要广播。
- 我们可以找到一些前端技巧来避免服务器端处理。这是两个玩家之间的比赛,所以我们实际上只需要比较他们的进度,真正的获胜者决议并不那么重要,因为没有真正的东西可以获胜,这更多是为了好玩。