根据我的场景,我应该使用WebSockets或XmlHttpRequest,或者两者兼而有之



我即将用Monkey语言(跨平台翻译器)制作一个回合制游戏。游戏将使用HTML5平台。这个游戏将在网上进行,玩家可以相互比赛(可以是2vs2比赛)。我最近回顾了大量的解决方案,并在其中的两个问题上停了下来。好的旧XmlHttpRequest和新的WebSocket似乎处于W3C的推荐状态,这相当好。还有一项我感兴趣的技术是PubNub,一种推送服务。这项服务实际上会将消息推送到所有连接的客户端,而且速度非常快。。但这会在以后付出代价,并且受您发送的消息数量的限制。我的意思是,1000个连接和100万条消息每月花费15美元,然后再加上100万条信息每月花费1美元。实际上有3个参与者,客户端用monkey(HTML5)编写,服务器用C#编写,因为我很熟悉广播消息的语言和PubNub。客户端将只向服务器发送请求,服务器将消息中继到PubNub,PubNub将返回给客户端。考虑到这些事实,我脑子里有两个计划:

  1. 游戏是用HTML5编写的,但我可以将其移植到其他语言(例如Android)。如果我使用WebSockets,我就不能做到这一点,因为我必须获得额外的库来处理这个问题,而且我不想在上面投入更多的时间。所以我现在将专注于HTML5,但移植它始终是一个选择
  2. 这是一个回合制游戏,所以XmlHttpRequest似乎适合这个任务,但在哪一点?如果我有1000多个连接发送请求,它能支持它吗?每个回合都是一个唯一的请求,但聊天消息也是一个请求和私人消息,也可以获取玩家数据(在你加入任何游戏之前)等。与WebSockets相比,Http Get很容易制作,并且在许多平台上都很容易支持,所以如果我选择这个,我显然可以走安卓路线
  3. 我不想在其他技术上投入比这里所说的更多的时间
  4. PubNub最终会花钱,但它推送消息的效率很高,所以不使用它可能会有风险,并迫使我自己转发代码

所以这是我的4个计划。

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

那么你建议我走哪条路,为什么?

谢谢!

独立游戏和多人在线世界的PubNub当你正在构建一个供人们探索的模拟世界时,建立网络是很困难的。通常会考虑这些模拟。PubNub是独立游戏开发商的最佳解决方案,原因很充分。使用PubNub的两个简单功能PUBNUB.publish({...})PUBNUB.subscribe({...}),在您的独立游戏中启用网络非常简单。在你的应用程序中添加网络可以让你实现多人游戏等等!在HTML5浏览器、手机、平板电脑等之间实现实时通知。任何东西都可以发送和接收来自地球上任何地方的数据。

WebSockets或XMLHttpRequest或两者兼有

PubNub为您提供这一选择,自动检测适合您玩家系统和功能的最佳连接类型。这意味着您的独立游戏将在所有平台上按预期运行,包括AndroidiPhoneChrome/Firefox/IE等。这让它变得很容易,所以你不需要担心到现有的各种平台的运输或交付方法。你的团队只需要专注于制作一款引人入胜的在线多人游戏。

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

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

RoarEngine

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

分析

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

PubNub HTML5 MMO XKCD游戏多人游戏

我们想展示HTML5独立游戏与PubNub一起使用的功能,以实现广泛的游戏性,实时连接世界各地的玩家。这个游戏使用HTML5 Canvas,多个用户带着气球人物四处飞行。如果你被卡住了,你可以点击你的气球家伙,变成一个幽灵,无缝地穿过风景,不受树木和山丘等致命障碍的阻碍。然而,普通现成游戏服务器上的用户规模存在问题。最大并发性一次只能有几个用户,这让许多人想知道MMO的MMO部分在哪里。PubNub使这是自动的,并且与自托管选项相比成本更低。考虑自托管选项的团队将考虑与维护和托管游戏网络集群相比的成本。

  • 现场直播-http://www.pubnub.com/static/pubnub-xkcd/index.html
  • 博客-http://blog.pubnub.com/xkcd-mmo-websocket-scaling-with-pubnub/
  • 源代码-https://github.com/pubnub/pubnub-xkcd

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

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

最新更新