我开始制作多人游戏,但由于我没有经验,我尝试了不同的方法,但我觉得有些不对劲。所以,我真的需要一个关于我应该最好使用哪些平台/工具/语言/技术的建议。我必须说我不相信诸如:Photon、AppWrap、Skiller、Gamooga 等之类的东西。我不相信它们的规模会很大,也不会太贵,或者它们太大(我不是指尺寸,我是指它们有多少我不需要的东西)以满足我的需求。
首先,我将描述简化的游戏会话过程。
- 三名玩家开始游戏会话
- 每个玩家收到一个问题,并应在 10 秒内回答。
- 当玩家回答时,他应该能够看到任何其他玩家(如果有的话)已经给出的任何答案,并且他应该能够在给出答案后立即看到任何答案。基本上,其他客户应该实时收到任何答案,但只有在我们回答之后(以避免作弊)。如果时间到了,那么任何没有回答的人都不会得分,下一个问题会继续进行。
- 决定获胜者并进入下一个问题。N轮后完成游戏会话。
其次,我将解释我考虑的一些要求。
- 游戏应在 iOS/Android/Web 上运行。这让我别无选择,只能基于 HTTP。
- 我寻找我非常喜欢的 Google Cloud Endpoints。它有 iOS/Android/JS SDK,谷歌云平台有谷歌 BigQuery,还有很多其他很棒的东西。但是因为我需要实时回答传递,所以我不知道这是否合适(有 Channel API 但没有适用于 iOS 的客户端 SDK,人们说它不是那么好)。
- 然后我寻找 Node.js 和长轮询(客户端的 AFNetworking),但它很难管理。我需要向客户端提供游戏状态更新(并且我需要发送增量)。这样,我需要单独跟踪每个玩家的所有更改。当玩家连接时,我应该检查是否已经有任何变化;如果是则立即发送;如果不是,则侦听“更改”事件,然后发送。最后代码看起来很尴尬,很难理解,我不知道如何使它正确。有 socket.io 可以让服务器端的事情变得更好,但同样没有用于客户端的 iOS SDK。
我不知道从这里去哪里。任何帮助将不胜感激。