首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flash游戏服务器建议(Node.js、Red5等)

Flash游戏服务器建议(Node.js、Red5等)
EN

Stack Overflow用户
提问于 2011-08-05 06:17:47
回答 3查看 4.1K关注 0票数 8

快速总结:

我们有一个完整的类似俄罗斯方块的flash游戏,准备为多人“连接”。在做了一些研究并问了以下问题后:Flash Sockets, Peer-to-Peer Capabilities,我们得出的结论是,在这个时间点上,如果没有昂贵/可疑的adobe软件/服务(FMS/Cirrus),P2P网络就不可能像xbox/ps3游戏那样处理在线游戏。基本上,如果没有RTMFP协议,flash客户端是不允许成为监听套接字的“主机”的。

需要建议的问题:

有了这个总结,问题是...为俄罗斯方块这样的游戏实现网络基础设施的最佳方式是什么,因为它有相当多的小I/O从一个用户到另一个用户(例如,一次最多4个玩家)。考虑到我们不能将单个玩家指定为主机p2p样式,我们的选择是:

1.)带游戏逻辑的胖服务器,轻客户端根据服务器更新更新显示/插值(Ala Quake)

2.)轻服务器处理胖客户端之间的通信(Ala并发模拟,如RTS游戏)

问题是,当涉及到网络游戏时,我们缺乏经验,因此我们真的希望得到一些关于这些解决方案(甚至其他解决方案)的优缺点的建议。我们的俄罗斯方块游戏并不像发送“攻击线”那么简单,当一个客户清除线来添加到当前战斗的其他玩家时。我们需要更多的实时同步。例如,next tetriminos的列表是一个单一的共享资源,每个人都在为想要的东西而“战斗”。

最后,根据所选择的实现,我想知道是否有人有在游戏服务器上使用Node.js的经验。我假设如果服务器是一个轻量级服务器,只处理客户端之间的数据传输,那么Node将是一个完美的选择。然而,如果游戏逻辑被放在node.js服务器上,我会假设计算的阻塞性质会使Node.js的单线程无阻塞I/O方法变得多余?无论如何,任何关于这个问题的建议都是非常感谢的。

EN

回答 3

Stack Overflow用户

发布于 2011-10-22 11:53:47

完全披露:我是联盟平台的联合创始人。

如果您希望快速启动和运行,我建议使用现有的多用户服务器和客户端框架,例如建议的那些或联合平台(www.unionplatform.com,1000个并发连接免费)。

人们往往低估了制作一个功能齐全的多人游戏所需的基础设施工作量,该游戏具有可靠的大堂系统和配对。如果您是从头开始构建,那么您可能会在连接故障转移和重新连接代码上花费与您在核心游戏物理上花费的时间一样长的时间。

在像多人俄罗斯方块这样的游戏中,我会在服务器上实现权威的游戏/世界逻辑(联合起来,你会使用一个房间模块),并在客户端镜像服务器端的模拟。客户端显示输出,插入服务器端世界,并提供玩家输入。下面是一个使用这种方法的多人乒乓球游戏示例:

http://www.unionplatform.com/?page_id=1229

对于您的情况,联合的一个潜在有用的特性是,除了传统的http通信之外,它还支持javascript websocket。

http://www.unionplatform.com/?page_id=1587

javascript的支持让你可以选择在html5中创建完整的游戏客户端,或者添加本地web浏览器客户端,用于显示统计数据或观看flash中正在玩的游戏。union的协议也有公开文档(http://www.unionplatform.com/?page_id=86),因此您可以用任何语言构建自定义客户端功能。

出于好奇,你的游戏有公开链接吗?

玩得开心!

科林

票数 3
EN

Stack Overflow用户

发布于 2011-09-07 03:06:02

我在SmartFoxServer上取得了一些成功。它对100个以下的并发用户是免费的,但是如果你有更多的用户,你需要购买许可证。

尽管如此,编写服务器端逻辑还是很容易的,管理和部署也很容易。

票数 1
EN

Stack Overflow用户

发布于 2011-08-08 03:05:51

我已经使用Flash Media Server开发了许多多用户应用程序(包括游戏)。就我个人而言,我认为它对你来说太贵了。

我从未使用过Red5或Node.js,但Node.js的套接字连接听起来很有前途。

我还用PHP构建了一个简单的永不结束的套接字,它也可以工作(但不是很好,有点跳跃)我打赌你可以找到更多关于这方面的信息,也许你可以自己开发一些东西,看看你如何不必在用户之间传输太多数据。在web上,有许多使用*SWF*s的PHP套接字的示例,如下面的chat room example on kirupa.com

祝你好运

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

https://stackoverflow.com/questions/6949272

复制
相关文章

相似问题

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