JavaScript中是否有用于多人棋盘游戏的框架?

15

我将使用JavaScript开发在线棋牌游戏。我的方法是创建一个客户端,可以独立运行,并且必须强制执行规则。这意味着例如,如果玩家不能打出一张牌,那么他或她甚至不能打出它。这样可以增强用户体验。

这里的想法是添加钩子来发送和接收事件到服务器,并在服务器和客户端之间共享实现游戏规则的代码。我不认为写两次有什么意义。

因此,如果我以“服务器”模式进行游戏,客户端将通过更新服务器来验证我的操作,并向我发送其他玩家的更新。

是否有任何框架可以利用这项工作?

对于服务器端,我的选择似乎是Node.js(不稳定,但一切都是JS,这很好),Erlang + erlang_js,以及可能一些将“编译为JavaScript”的奇怪框架,我不是很喜欢。


1
我自己也处于类似的情况。你如何保持这样一个系统DRY?客户端应该能够独立进行游戏,但服务器最终需要验证所有内容。如果规则发生变化,最好不要同时更改客户端和服务器代码。 - brainjam
1
你有研究过 GWT 吗?它是一种将 Java 代码编译成 Javascript 的工具,可以用于编写客户端和服务器端。 - g.d.d.c
@g.d,GWT 已经在我脑海中浮现出来(可能适合 OP),但我已经决定使用 Python/jQuery 作为我的后端/前端。 - brainjam
请查看以下网址:https://dev59.com/mnA75IYBdhLWcg3wkJ71#3225341 - Dagg Nabbit
@g.d.d.c 对我来说,如果我要在同一种语言中编写服务器和客户端,那么使用JavaScript会更自然。而且我根本不喜欢Java的静态特性,我太习惯支持闭包的脚本语言了。@no 我希望客户端加载一个.js文件并在其中拥有所有逻辑,而不是从服务器发送代码,这是一种不同的方法。我希望我的客户端能够快速响应 :-) - Papipo
@codecaster,这基本上就是我链接的页面所讲述的内容...如何在node.js和客户端之间共享js。请查看我的答案,它很相关。您可以使用单个游戏循环,并在需要进行检查的地方预处理一些东西,例如//#ifdef SERVER//#ifdef CLIENT,然后调用分别与彼此通信的server.js和client.js脚本(我使用了WebSockets,真心希望它成为标准)。 - Dagg Nabbit
2个回答

3
听起来像是Ape非常符合你的要求。它支持JavaScript模块,因此您可以在服务器上运行与客户端相同的代码,并且发送消息也得到了很好的支持(请查看MMORPG和聊天演示)。

太好了!我之前不知道Ape。我不确定是否会使用它,但是我觉得这让我朝着正确的方向前进,非常感谢! - Papipo
不幸的是,APE(非常好用)只能用于向客户端推送内容。 - Papipo

1

我已经使用RingoJs http://ringojs.org 有一段时间了,它非常适合客户端和服务器代码共享。

为了更轻松地编写网络浏览器游戏,我正在开发一个在其之上的薄层:http://gamejs.org


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接