我的任务是在JavaScript中开发一个通用多人API,并带有一个Node.js后端。 API的目标是为JavaScript手机游戏开发者提供服务,以便他们可以使用简单易用的API和现有的后端开发多人游戏。
该项目还包括开发实现,Node.js服务器和testing游戏,否则我无法testing它的课程。 所以把它称为整个图书馆的发展是更准确的。
我遇到的问题是试图找出如何提供一个很好的游戏同步机制。 图书馆可以提供房间和连接管理,朋友列表,注册和soforth,因为这些东西在每个游戏中都使用相同的机制。 然而,游戏同步逻辑可以是非常特定于游戏的,并且在通用库和服务器中是绝对不允许的。
我正在使用以下库/框架进行开发:
为了澄清图书馆的目标:
所以对于主要问题:这是可能的还是应该提供一种方法来轻松地投射,多播和广播消息,并将实际的同步机制留给开发人员? 你将如何去呢?
尝试提供除了实时多人游戏的通用消息的投射,多播和广播之外的任何事情都很困难(也可能是矫枉过正)。
你甚至可以通过在websocket服务后面创建简单的键值(string-JSON)空间存储来实现更通用的操作,例如:
通过观察每个客户机中的相同密钥(“/ msg / broadcast”),将其用作广播将是容易的。 有了这样的API,你甚至可以有多个广播频道(如“/事件/广播”和“/聊天/广播”)。 它也可以用于直接通信和存储游戏状态信息(可用于在比赛期间join房间的玩家)。
顺便说一句:你可以看看Google Play游戏服务 。 他们(其中包括)基于回合的比赛的REST API。