JavaScript和HTML5游戏:从愤怒的小鸟到ZX Spectrum

最近,HTML5 / JavaScript游戏领域发生了一些爆炸。 浏览器游戏的受欢迎程度迅速增加,开发人员开始寻找一套方便使用的API和其他工具。 罗伯·霍克斯(Rob Hawkes)热衷于赞扬HTML5和JavaScript及其在浏览器游戏中的应用。 Rob是Mozilla的视觉程序员,作家和技术布道者,在开发人员社区中领导Mozilla工作的游戏方面。 他在5月份在墨尔本举行的Web Directions Code上作了闭幕主题演讲,向我们展示了HTML5和JavaScript游戏的惊人发展。

嗨,罗布。 告诉我们您的开发背景。

我从事网络开发已有13年了。 我学习了有关HTML和CSS的点点滴滴-我对Web设计更感兴趣,但是后来我了解到您可以在服务器端开发中做相当强大的事情,因此后来发展为PHP。 一旦我知道如何创建我认为的表格,现在,您将如何访问该数据?

每个人都从使用表单开始学习PHP……

对! 能够将数据发送到某物真的很酷。 因此,我去了该行业工作了几年,主要从事前端开发。 我对媒体很感兴趣,并且对JavaScript非常感兴趣,从那时起,我意识到我对真正制作网站的兴趣不大,而是学习了技术并将其推向极限。 我一直对游戏制作非常感兴趣,并且为了学习它的工作原理而疯狂地做一些事情,所以在我上大学时,我使用HTML5做了大量工作,尤其是canvas

在早期,您肯定一直在与canvas混为一谈。

实际上, canvas是在我开始之前就已经存在了。 苹果使用它创建了他们的仪表板小部件。 它始终在WebKit中使用,尽管它从来没有在其他浏览器中真正稳定过-至少从来没有有趣过。 没有人真正做过很多。 但是当我碰到canvas我认为它真的很酷。 我进入了一个好时机–确实没有关于它的书,但是随之而来的是机遇。 我是少数正在研究它的人之一。 除此之外,我还参与了JavaScript API的试验。

我认为自己既不是设计师,也不是开发人员-位于中间。 我喜欢视觉编程。 诸如游戏制作和canvas之类的东西非常完美,因为您可以将核心开发与一些真正的视觉前端体验结合在一起。 这就是我对Mozilla的关注; 网络游戏开发方面-和Boot2Gecko ,这是我们正在研究的移动设备项目。

那么,什么使您对HTML5 / JavaScript游戏感兴趣? 你是大玩家吗?

我一生中一直有游戏-我有ZX Spectrum,游戏机……

哇! 您是ZX Spectrum的粉丝吗?

我父亲不喜欢电脑,但是出于某种原因,他认为买电脑是个好主意。 而我只是对放入卡带的想法着迷,这款游戏就出现了! 我的意思是,我当时还很年轻,但我仍然记得-Duck Hunt和所有这些疯狂的游戏。 然后,当我进入PC游戏时,这是很长一段时间以来我生产力的尽头! 但是游戏对我来说一直很有趣。 Flash和JavaScript之类的技术使我意识到,很酷,我现在可以制作游戏。 然后,一旦您开始创建游戏,它就会打开一个全新的可能性领域。 就像我刚创建一个网站时的那种感觉-我创建了那个网站! 您将在游戏开发中学习到很多不同的技术-输入,视觉图形,声音-并且在构建标准网站时并不总是会获得这种体验。 使用游戏,您总是将事情推向极限。

因此,如果我对HTML5 / JavaScript游戏开发感兴趣,那么我能教给自己的第一件事是什么?我会去哪里?

掌握JavaScript; 与语言相关的标准内容。 但是,一旦您熟悉了JavaScript,就可以看看一些图形API,例如Canvas API。 Canvas是一个很好的API。 在碰到它之前,我真的不知道如何在浏览器中绘制图像而不创建图像。 还可以查看音频API。 HTML5中的多媒体功能非常有趣。

看一些游戏引擎。 您可能不一定想从头开始学习它们,但是有很多游戏引擎可以让您无需完全了解基本知识即可启动并运行。 像Crafty这样的东西,我相信它是澳大利亚的引擎,并且是免费的。 然后有一个非常不错的游戏,价格为99美元,它被称为Impact ,这是一个非常有据可查的出色游戏引擎。 如果您想使用JavaScript来创建游戏,但并不一定要在实现中根深蒂固,那么这些引擎是一个很好的入门方法。

如果您真的想精通游戏开发,请学习如何使用requestAnimationFrame工具制作动画,该工具可让您优化JavaScript中的循环。 当您将其与Canvas API结合使用,并说要在屏幕上移动一个块时,从那里跳到使用键盘输入并不是很大的转变。 从那里到您要携带的地方。

因此,您似乎仍然需要对基本JavaScript有所了解。

对。 我的意思是,有jQuery风格的游戏库-Crafty和Impact等引擎有点像那样。 但是它们并不像jQuery那样抽象。 如果您想做一些更复杂的事情,您仍然需要编写JavaScript。 但是,如果您只想进行基本的动画处理(例如将图像作为精灵插入并在其中移动),则可以使用Crafty。 问题是您没有完全了解幕后发生的事情。 在网络之外,如果您要制作游戏,则可以使用Flash或Unity ,这仅仅是因为它为复杂的动画和物理方法提供了一种抽象方法。

不过,对我而言,了解JavaScript意味着我可以从头开始创建游戏。 是的,这可能很困难,并且可能需要一段时间,但是从长远来看,这是值得的。 如果您至少可以了解它的基础知识(例如循环,数组和对象之类的东西),那么当您想进一步推动它时,您将非常感激。

HTML5和JavaScript似乎在逆向游戏(例如策略游戏,平台游戏和Pong等旧游戏的复活)中爆炸了。 您是否看到它进入其他更复杂的交互式项目?

换东西很酷。 HTML5游戏处于一个非常简单的阶段,因此复古游戏非常完美-它们不需要太多的功能,它们主要是2D的,并且很容易创建。 Flash游戏很大时也是一样。 开发人员无法停止使用JavaScript来创建更身临其境的游戏体验。 我们开始在WebGL中看到这一点。 许多人开始使用硬件加速之类的技术来制作更接近于iOS上的游戏的游戏,甚至包括3D游戏。

Pong很棒,但是并没有推动太多技术的发展。 甚至《 愤怒的小鸟 》也不会把它推得太多。 我见过人们在WebGL中创建Quake 4 ,并且运行平稳。 我们需要看到更多这类游戏,以帮助将网络合法化为现代游戏的平台。 我们拥有创造合适游戏的技术和力量。 通过适当的游戏,我的意思是您会在PC游戏中看到什么。

我们现在开始看到公司和开发人员都朝着这个方向倾斜。 我们需要创建一个针对网络打造的网页游戏。 现在,我们看到了互动游戏的兴起,但是我们没有看到太多专门为网络创建的游戏。 我希望看到利用网络优势的游戏,同时也意识到设备的局限性。 仅仅因为您可以在两个平台上制作相同的游戏,并不意味着它应该完全相同 。 而且我认为网络本身就有机会成为游戏平台-一个独特的目标,而不仅仅是放置标准游戏的另一个地方。 游戏开发人员掌握了这些内容后,我认为我们会看到一些非常有趣的内容。

目前,网络上的游戏实际上只是在复制其他平台-这些游戏是静态的,并且它们并没有真正使用网络提供的任何功能,例如社交功能或连接其他API的能力。 所有这些东西都是网络固有的,我们正在网站中使用它,但是如果在游戏中使用它会发生什么呢?

开发人员在浏览器游戏中所做的很多事情都涉及到挖掘过去,这不一定是一件坏事-但是您能看到概念和想法正在扩展吗?

那将是我的梦想。 现在,我认为我们对HTML和Web作为游戏平台不公平。 我们正在将其与以前的平台进行比较; 因此,例如,我们要从iOS移植游戏-我们以HTML格式在网络上运行了《 愤怒的小鸟》 ,但从来没有为此而创建。 我们带来了成功的原因。 这不公平; 我们将网络平台与为其构建的本机平台进行了比较。 当然,本机更好—它是为触摸控制以及某种编程语言和技术而构建的。

我们绝不会通过将网络限制为我们之前所做的事情来让网络蓬勃发展。 我们可以释放网络的力量,并尝试一些不像通常玩的游戏那样受限制的游戏,例如,我们在浏览器的一个小盒子中看到了游戏。 没有理由将游戏作为网站的一部分放在一个小盒子里–它可能是网络的一部分; 您可以在网上追逐游戏。 没有理由不能在Twitter上玩游戏。

我希望随着人们对网络游戏理念的热情,我们会看到新游戏的爆炸式增长。 JavaScript API是为Web构建的。 这是非常基本的技术; 建立Web套接字连接和几个事件,您就可以实时向Web服务器发送和接收消息-从那里开始制作多人游戏并不是什么大的事情。

您如何将这些想法推向市场?

这是我们在Mozilla试图解决的问题。 这是我们通常从游戏开发人员那里得到的问题之一-“听起来不错,但是如果我不想免费赠送我的游戏怎么办?” 人们已经习惯了DRM和代码保护,并且他们进入了网络,而且一切都是开放的。 源代码就在那里。 因此,我们有两个问题要解决。 一:我们如何说服人们相信开放技术是一个好主意? 我认为这是一个容易解决的问题,因为如果您担心自己的游戏被盗,那么我认为网络不适合您。 仅仅因为您可以用HTML编写游戏并不意味着这是您游戏的最佳平台。 还有一些方法可以通过减少代码量来减轻这些麻烦,这些方法可以帮助开发人员更轻松地发布他们花费了很多时间进行的代码开发。

第二个问题是市场营销:您如何销售游戏? 如果您不能维持生计,那么至少作为一家公司,毫无意义地进行游戏。 而且,您可以走上一条路线,在该路线上,您不必担心如果人们不付款就阻止人们进入您的游戏,但是您可以采用捐赠模型。 另一方面,如果您想将人们拒之门外而实际上将他们拒之门外,则可以这样做。 我们正在Mozilla上开发开放式Web应用程序API,使您能够提供需要在游戏开发者服务器上验证的收据。 我们正在寻找拥抱代码开放性的方法,而不是阻止人们查看源代码,而是在一个可以说的观点上说,您为此游戏付费了吗? 如果没有,那么您将不会获得完整的体验。

这不是魔术子弹。 如果这只是他们付钱购买的单人游戏,那么一旦他们拥有了所有源代码,接手并采取人们对网络技术的工作,就无法阻止某个人。 我高度怀疑网络游戏是否会比其他地方的游戏受到更多盗版。 盗版游戏不仅有源代码,还有很多。 如果您有服务器端组件,那么您将得到保护,这就是收据系统可以进入的地方。如果您知道除非有人访问您的服务器,否则游戏无法进行,您可以控制这种体验。 如果他们窃取了前端代码,则他们仍然无法玩游戏,因为他们没有掌握您的服务器端代码;如果他们可以进入您的服务器,那么您将完全遇到另一个问题。

我认为通过网络上的游戏获利绝对没有问题-现在的问题是我们还没有取得巨大的成功。 这是鸡到蛋的事情—人们在等待成功,而成功并没有到来,因为人们在等待。 我们需要有人加紧努力。

它是网络,因此您不必像以前那样出售游戏。 您也许可以通过游戏中的付款来赚钱,因此您仍然可以拥有免费的游戏体验,但可以控制人们在游戏中体验到的东西-玩家达到的水平,他们拥有的装甲或道具。 一旦我们完全了解了可能性,我们就会研究如何将其货币化,特别是现在我们正在吸引像EA这样的大公司参与进来-如果有人知道如何赚钱,那就是那些家伙。 而且我认为独立开发者将在此之后效仿。 这并不像在iOS上那样简单,但是他们已经有了巨大的领先优势。 网上有很多方法。 报纸已经开始考虑引入收费墙……

哪些不一定有效。

就是这样,您应该锁定内容吗? 这不违背网络吗? 还有其他更适合网络的赚钱方法吗? 也许这就是问题的答案-不是,“除非有人付费,否则我如何阻止人们玩我的游戏?”而是“我如何利用网络擅长的东西从这款游戏中获利?” 也许那不是从玩家那里得到钱,而是从赞助商那里得到。 我很想知道我们一年后的状况。 我们可能会看到一堆成功的游戏赚了很多钱。

From: https://www.sitepoint.com/html5-gaming-forget-angry-birds-we-want-webgl-awesomeness-2/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值