2012-07-09 180 views
1

我想建立一个简单的跨浏览器的多人游戏(如国际象棋或纸牌游戏),它将使用套接字与服务器进行通信。基于在线多人游戏的游戏服务器技术?

我有一些Ruby语言的中间知识,但我不太确信它是多客户端服务器的一个很好的解决方案,所以认为Node.js或Socket.io可能是更好的解决方案。我知道Java或C++对于这项工作可能非常棒,但我对它们都不太满意,所以这就是我向服务器端JavaScript方向发展的原因。

我的问题是,你认为什么是像这样的项目的最佳解决方案?什么可能是我将在其上构建整个游戏和通信逻辑的最佳服务器端技术?也许他们的一些组合?对于每种技术的速度,服务器负载,托管解决方案和开发速度的任何评论将不胜感激。

回答

1

如果您对JavaScript感到满意,通过给node.js一个指引,你就没有任何损失:学习曲线将会温和。这是一个非常酷的服务器技术。

节点js的唯一缺点当然不会像java一样缩放。完全一样。对于网络应用来说,这通常很好,因为你可以在前面放置一个缓存层(反向代理),这大大减轻了这一点。我想这对你的应用来说不合理,因为游戏状态会变得太频繁。

虽然节点js可以“缩放”,但可以通过旋转更多的实例。如果一个服务器可以容易地适应多个“游戏世界”,那么这很简单。如果你需要在多台服务器上分割一个游戏世界,那么服务器必须合作。但是,请注意这种情况,它并不像看起来那么简单:它被称为“多主”问题,是饥饿的互联网怪物之一。

+0

可伸缩性不会是一个问题,因为这将是一个小项目,主要是探索性的,并提高我的凭据,所以我现在只是担心不会产生一些内存泄漏,可能会阻塞我的服务器,因为我有一些内存问题在Java之前,我正在使用线程。感谢您的回答,我会再检查一下Node.js并做出决定。 – 2012-07-09 23:45:22

+0

听起来很棒,然后!如果你想主持一项公共服务,我认为亚马逊会在一年前免费提供底层虚拟机。也许这笔交易还在继续。 – aaaidan 2012-07-10 04:18:28

+1

是的,如果你是一个新客户,你可以在“免费套餐”上获得一个虚拟主机:http://aws.amazon.com/ec2/#pricing – aaaidan 2012-07-10 04:26:00