gpt4 book ai didi

design-patterns - 如何设计游戏服务器的通信 channel

转载 作者:IT王子 更新时间:2023-10-29 06:03:12 25 4
gpt4 key购买 nike

我打算设计一个游戏服务器。我希望它可以承受非常重的负载、可重用、灵活,但易于编程,我想在这些方面取得平衡。

我决定用nodejs和redis,protocal的数据格式是JSON,websocket

我有web开发经验,但对游戏服务器开发一窍不通,我注意到游戏服务器是非常实时的,消息不是点对点的,而是pub-sub channel ,

nodejs、redis、json是设计通信 channel 的好选择,websocket是否被大多数浏览器支持?

可能问题太多了,唯一的问题是如何设计游戏服务器的通信 channel ?

最佳答案

首先,下次使用真正的标记,以便人们真正找到您的问题。

关于实际问题,是的,Node.js 非常适合多人游戏,尤其是 WebSockets...但由于最近发现代理服务器配置错误的安全问题(实际上是这不是 WebSocket 的错,而是每个人和他们的妈妈都对此感到 panic 。

详情:
http://hacks.mozilla.org/2010/12/websockets-disabled-in-firefox-4/
http://blog.pusherapp.com/2010/12/9/it-s-not-websockets-it-s-your-broken-proxy

同时...

如果您想要延迟小于 100 毫秒的游戏,您可以使用 Flash Sockets 作为后备。

此外,JSON 一个坏主意。发送游戏数据非常臃肿,当我用 Node.js 创建我的第一个多人游戏时,我所做的是创建 BiSON .这就像 JSON 的替代品,它不支持 100% 的 JSON 功能,但它致力于小尺寸的编码数据速度。

因此,如果您愿意尝试使用 WebSockets 或在不久的将来使用 Flash 套接字,那么您应该看看我制作的两个游戏:

https://github.com/BonsaiDen/NodeGame-Orbit (策略游戏 á la Eufloria)
https://github.com/BonsaiDen/NodeGame-Shooter (小行星/几何大战倍数交叉)

但请记住,根据您的游戏类型,您需要的不仅仅是发送消息,特别是如果您想要延迟补偿等。

关于design-patterns - 如何设计游戏服务器的通信 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4441007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com