是否可以使用HTML5开发多人游戏?


9

我知道HTML5非常适合网络游戏,但是我真的不知道是否可以与多个用户一起开发在线游戏,保持每个人的同步并处理登录等等。是否有可能做到这一点?

Answers:


7

您不能仅使用HTML5编写它。由于浏览器脚本的安全性限制以及防止作弊,您将始终需要脚本和服务器来处理用户之间的通信。

即使我也有很多人写了多人html5游戏。html5本身的使用可能不是最重要的部分。大部分所需的东西(如果不是全部的话)在html 4.01中也可用。例外是canvas,但是canvas比svg慢,并且svg已经在许多浏览器中可用。

我认为真正引发“ html5游戏”狂热的是能够使用javascript制作服务器端应用程序的能力。这意味着所有客户端程序员都可以突然制作出整个系统,并且在涉及游戏之类的东西时,他们通常是富有创造力的人。更不用说JS非常简单,甚至您的祖母也可以使用它进行编程。也许。

OP发表评论后更新:

浏览器游戏的常见架构是

          Client                                     Server
|-----------------------|                   |---------------------|
View - input/output logic - Communication - Validation - Game World
              |                                              |
   client database (if needed)                    server database (if needed)

或就实际的“语言”而言:

  • 客户端视图:HTML5(可能与angular.js一起使用,尚未通过LOTS测试其运行速度有多快。另请查看raphael.js中的“图形”)
  • 客户端逻辑:JavaScript(jquery / vapor / plain / whatever)
  • 客户端数据库:WebSQL(我想是HTML5“套房”的一部分)
  • 通信:通过socket.io(用于自动检测最佳通信协议的JS库)的JSON(JavaScript对象表示法,本质上是序列化的javascript对象)
  • 服务器语言:也是JS(node.js(如果您在少数几个核心上拥有大量并发用户),也可以使用其他解决方案)
  • 验证:只需确保您的INCOMING游戏数据(来自客户端)有效。不需要检查拨出,甚至不需要检查客户端。假定是正确的。总是
  • 游戏世界:一组经过验证的数据,这些数据会在所有客户进入时重新分配给他们
  • 服务器数据库:ouchdb,mongodb,任何可以为您提供原始json对象的数据库。

你在这。一个仅使用javascript和html编写的完整的互联网游戏。可爱。


我的回答很有趣,能否给我一些建议,说明我应该端到端构建哪些部分(最重要)以及每个部分采用哪些技术,对此感到抱歉,只是想知道如何构建可靠的东西。谢谢!
2011年

1
+1是HTML5的热门话题,但人们认为它主要是4.01功能和JavaScript。我能否请您不要轻易调用JavaScript?它有好处,但是如果您想编写真实的程序,就必须成为一个真正的程序员。JavaScript消除了变量声明和内存管理的繁琐工作,但是它并没有使组织代码以及确定算法和数据结构变得更加容易,并且您肯定需要程序员的思维方式和经验才能完成这些任务。
aaaaaaaaaaaaa

@eBusiness我的简单意思是,它在编程方面是如此的精简,其用例已被记录在案。您总是可以找到所需的教程或函数。而且设置起来很容易(您不需要,它已经在浏览器中了)。
Tor Valamo 2011年

@arrrrgv更新了帖子,并回答了您的问题
Tor Valamo 2011年

1
+1是一个不错的答案,尽管我怀疑HTML5游戏的兴起与服务器端JavaScript有关。严格来说,JS甚至不是HTML5的一部分。我认为正是canvas,webGL,音频和视频以及本地存储等新功能推动了HTML5游戏的发展。当然,它是新的并且被大肆宣传,因此每个人都可以跟上潮流。
bummzack 2011年

3

http://smus.com/multiplayer-html5-games-with-node上查看该文章,以及该文章随附的源代码。请注意,这也使用JavaScript进行联网。


2
请用一个单词写“ JavaScript”,以免造成混淆。
o0'。

有一天,当跨浏览器对Web套接字的支持得到广泛支持时,将不再需要Node.js。
工程师

我不明白为什么对Web套接字的跨浏览器支持会改变对任何浏览器之外的服务器组件的需求。您应该始终编写多人游戏,以便客户端连接到中央服务器,而不是直接客户端到客户端。
2011年

1
另请查看NowJS(nowjs.com
Tim Holt

Web套接字对于任何应用程序本质上都是不安全的,这就是为什么计划的实现被众多浏览器放弃的原因。您不能允许一个环境可以访问“任何地方”并且同时可以从“任何地方”获取输入。
Tor Valamo 2011年
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.