将多人游戏添加到HTML5游戏中


15

我对制作目前具有合作社经验的游戏感兴趣,但是我对在HTML5中实现这一目标的最佳方法感到好奇。

我在使用直线C插槽之前以及在SDL的Net库中进行过游戏。

在基于画布的环境中执行此操作的最佳选择是什么?

目前,我所能提供的要么是AJAX /数据库解决方案(具有高刷新率),要么是实现以某种方式通过套接字集中数据的PHP服务器。


总体游戏玩法将是2.5D平台式的游戏,因此两个客户都需要不断更新玩家的位置,敌人的位置,射弹,环境数据等。


1
当websockets(en.wikipedia.org/wiki/WebSockets)最终确定(并实现等)时,这可能是一个好方法,直到那时,我认为AJAX(没有X,对此不需要XML)可能是最好的方法(我想这仍然不是一个很好的方法)。
Elva

似乎对Web套接字的支持正在迅速下降……
the_e 2011年

您想做个摊位还是游戏?如果你想做游戏;不要打扰html5。

@stefan:为什么不都呢?仅仅因为它尚未最终确定,并不意味着我不能使用它!
the_e 2011年

Answers:



5

看到这个答案

但是,可以使用Flash(如果可用)为脚本提供后备功能,直到WebSocket广泛可用为止。Gimite的web-socket-js是这样的一个免费示例。但是,那时您与Flash Sockets受到相同的限制,即您的服务器必须能够根据请求向套接字端口吐出跨域策略,并且代理/防火墙通常会遇到困难。(Flash套接字是直接制成的;对于没有直接公共IP访问权限的人,他们只能通过HTTP代理离开网络,他们将无法使用。)


3

彗星 ”可能是您可以在此处使用的概括性术语。但是,WebSockets将是一个更理想的选择(当他们很高兴它是安全的时)。


3

答案就是Node.js。我用它开发了一个实时的多人射击游戏,从头到尾花了大约1个月的时间。它提出了一些独特的挑战,因此它需要具有最小的延迟,并且所有参与者都必须在另一个参与者中保持同步才能使该概念起作用。

客户端和服务器端都是用javascript编写的,并且彼此之间共享类/逻辑。在尝试修复错误时,这一点开始计算,因为您不必两次实施所有操作。

游戏已经进行了大约2个月,没有重新启动,已经进行了数千场比赛。

Socket.io是套接字的一种实现,它使用node.js,但是对于游戏而言,Socket.io太过膨胀了。github上还有其他针对node.js的websocket实现,以及使用它的游戏示例。


2

您总是可以只使用AJAX和某种消息队列。ActiveMQ是一个很好的例子。您在服务器上运行ActiveMQ,然后您的JavaScript可以发送和接收消息。只需让每个播放器都有一个唯一的名称,然后向其他播放器发送消息即可。




2

我们一直在开发一个有趣的多人游戏平台。您可以在www.16cubes.com上看到我们的项目-我们提供了一个简单的javascript层来进行对等通信。它在某种程度上基于Comet原理,随着它变得更加标准化,我们计划转向使用websocket。另一方面,我们提供了一些现成的功能,例如自动对手匹配,游戏聊天,facebook好友一键邀请等。

我们有一个演示井字游戏,如果您看到了,可能会更好的主意。是的,您也可以匿名玩。如果您不需要,不需要注册。您需要编写的JavaScript API不到10个,可从www.16cubes.com/documentation获得。

我们正在积极寻求反馈,因此请告知我们好与坏


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.