0

我即将用猴子语言(跨平台翻译)制作一个回合制游戏。游戏将使用 HTML 5 平台。该游戏将在线进行,玩家可以互相比赛(可以是 2vs2 比赛)。我最近审查了大量的解决方案,我停止了其中的 2 个。旧的 XmlHttpRequest 和新的 WebSocket 似乎处于 W3C 的推荐状态,这相当不错。还有另一种我感兴趣的技术是 PubNub,一种推送服务。该服务实际上将消息推送到所有连接的客户端并且速度非常快..但这会在以后产生成本并且受到您发送的消息数量的限制。我的意思是,1000 个连接和 100 万条消息每月花费 15 美元,然后再花费 100 万美元,然后继续。实际上有3个演员,客户端用猴子 (HTML5) 编写,服务器用 C# 编写,因为我非常了解用于广播消息的语言和 PubNub。客户端只会向服务器发送请求,服务器会将消息中继到 PubNub,然后再发送回客户端。考虑到这些事实,我有两个计划:

  1. 该游戏是用 HTML 5 编写的,但我可以将其移植到其他语言(以 Android 为例)。如果我使用 WebSockets,我就不能这样做,因为我必须获得额外的库来处理这个问题,而且我不想在它上面投入更多的时间。所以我现在将专注于 HTML 5,但移植它始终是一种选择。
  2. 它是一个回合制游戏,所以是的,XmlHttpRequest 似乎适合这项任务,但在什么时候呢?如果我有超过 1000 个连接发送请求,它能够支持它吗?每个回合都是一个独特的请求,但聊天消息也是一个请求和私人消息,也可以获取玩家数据(在您加入任何游戏之前)等。WebSockets 的一个优势是 Http Get 易于制作并且在许多平台上都易于支持所以如果我选择这个,我显然可以走 Android 路线。
  3. 我不想在其他技术上投入比这里所说的更多的时间。
  4. PubNub 最终要花钱,但它对于推送消息非常有效,因此不使用它可能会有风险,并且会迫使我自己做消息中继代码。

所以这是我的4个计划。

  1. 使用 WebSockets 并使用 Alchemy 作为 C# 的 WebSocketServer,我对其进行了测试并且工作得很好,并且后端仍然有 PubNub 演员来中继我的消息。
  2. 使用 XmlHttpRequests 并为请求网关使用简单的 WebAPI。
  3. 两个都去。让客户独立于选择哪种技术。使用 XmlHttpRequest 作为后备并让服务器同时支持这两种连接。PubNub 仍将是这里的中继参与者,它应该使整个东西进行交流。
  4. 使用 WebSockets 但没有 PubNub。

那么你推荐我走哪条路线,为什么?

谢谢!

4

2 回答 2

1

独立游戏和多人在线世界的 PubNub

当您构建一个供人们探索的模拟世界时,建立网络是很困难的。这些模拟经常被考虑。出于所有充分的理由,PubNub 是独立游戏开发者的最佳解决方案。借助 PubNub 的两个简单功能PUBNUB.publish({...})PUBNUB.subscribe({...}). 在您的应用程序中添加网络可让您实现多人游戏等等!在HTML5浏览器、手机、平板电脑等之间实现实时通知。一切都可以从地球上的任何地方发送和接收数据。

WebSockets 或 XMLHttpRequest 或两者兼而有之?

PubNub 为您做出这个选择,自动检测适合您的播放器系统和功能的最佳连接类型。这意味着您的独立游戏将在所有平台上正常运行,包括AndroidiPhoneChrome / Firefox / IE等。这很容易,因此您无需担心到现有各种平台的运输或交付方式。您的团队只需要专注于制作引人入胜且引人入胜的在线多人游戏。

在线独立游戏 - 服务器逻辑

您需要一种方法来安全地收集玩家进度并跟踪您的世界中的行为和后果。您可能还需要跟踪库存和玩家状态。有两个很棒的服务。

咆哮引擎

首先让我推荐http://www.roarengine.com/ RoarEngine 一个在线托管的游戏引擎,它为您提供了一个脚本引擎,通过编写您自己的自定义逻辑来释放您的创造力和无限的可能性。事件、挑战、定时机制,应有尽有。RoarEngine 还通过创建影响玩家状态的物品来提供物品和礼物经济来塑造玩家互动,由可以动态管理的全功能商店、货币和礼物系统提供支持。

解析

我强烈推荐https://parse.com/一个在线云托管服务,它管理你的用户/玩家会话。当您需要一个更抽象、更不适合游戏的在线平台时,Parse 非常棒;它允许您以您选择的方式定义模型和对象。使用 Parse,您无需专注于构建基础架构,而是专注于构建游戏世界状态。

PubNub HTML5 MMO XKCD 多人游戏

我们想展示 HTML5 Indie Games 与 PubNub 一起使用的功能,以实现可实时加入世界各地玩家的广阔游戏玩法。该游戏使用 HTML5 Canvas,多个用户带着气球飞来飞去。如果你被卡住了,你可以点击你的气球人,变成一个幽灵,无缝地穿过风景,不受树木和山丘等凡人障碍的阻碍。然而,在普通的现成游戏服务器上扩展用户存在问题。最大并发一次只能是几个用户,这让许多人想知道 MMO 的 MMO 部分在哪里。与自托管选项相比,PubNub 可以自动执行此操作并且成本更低。正在考虑自托管选项的团队将考虑与维护和托管用于游戏的网络集群相比的成本。

上面的链接向您展示了一个基于 HTML5 Canvas 的实时游戏,该游戏由 PubNub 多人游戏功能提供支持。

于 2012-10-23T18:35:45.987 回答
0

看看http://realtime.co - 它是一个类似于 PubNub 并具有更多功能的实时平台。

于 2012-10-13T00:40:11.620 回答