首页 > web前端 > js教程 > JS和HTMLGAMING:从愤怒的小鸟到ZX频谱

JS和HTMLGAMING:从愤怒的小鸟到ZX频谱

William Shakespeare
发布: 2025-02-25 18:56:13
原创
819 人浏览过

JS and HTMLGaming: From Angry Birds to ZX Spectrum

关键要点

  • HTML5/JavaScript游戏领域发展迅速,开发者可用的API和工具日益丰富。
  • Mozilla视觉程序员和技术布道者Rob Hawkes强调了HTML5和JavaScript在浏览器游戏中的潜力,并指出这些游戏的复杂性日益提高。
  • 有兴趣学习HTML5/JavaScript游戏开发的开发者应该首先熟悉JavaScript和图形API(如Canvas API和Audio API)。 Crafty和Impact等游戏引擎也很有用。
  • HTML5和JavaScript促使复古游戏复兴,未来有可能带来更复杂、更身临其境的游戏体验,尤其是在WebGL等技术的支持下。
  • 网络的开放性给游戏的盈利模式带来了挑战和机遇。开发者需要探索各种策略,从游戏内付费到赞助,才能使游戏盈利。

HTML5/JavaScript游戏领域最近发展迅速。浏览器游戏越来越受欢迎,开发者也开始发现了一套方便的API和其他工具。 Rob Hawkes热衷于赞扬HTML5和JavaScript及其在浏览器游戏中的应用。 Rob是Mozilla的视觉程序员、作者和技术布道者,负责Mozilla在开发者社区中游戏方面的相关工作。他在5月份在墨尔本举行的Web Directions Code大会上发表了闭幕主题演讲,向我们展示了HTML5和JavaScript游戏正迅速发展得多么出色。

你好,Rob。请告诉我们你在开发方面的背景。

我在网络开发领域工作了大约13年。我学习了一些HTML和CSS的知识——我更感兴趣的是网页设计,但后来转向了PHP,那时我了解到可以在服务器端开发中做一些非常强大的事情。一旦我知道如何创建一个表单,我就想,现在,如何访问这些数据?每个人学习PHP都是从表单开始的……对!能够将数据发送到某个地方真的很酷。所以后来我在业界工作,主要从事前端开发,做了几年。我对媒体产生了兴趣,并开始深入研究JavaScript,从那时起,我意识到我并不那么热衷于制作网站,而是更热衷于学习技术并将其推向极限。我一直对游戏制作非常感兴趣,喜欢拿一些东西做一些疯狂的事情来学习它的工作原理,所以在大学期间,我做了很多HTML5方面的工作——尤其是canvas。

你一定是在canvas早期的时候就开始捣鼓它了吧?

实际上,canvas在我开始之前就存在了。苹果公司用它创建了他们的dashboard小部件。它一直都在WebKit中,尽管它在其他浏览器中从未真正稳定下来——或者至少它从来都不有趣。没有人真正用它做过什么。但是当我遇到canvas时,我觉得它真的很酷。我是在一个很好的时机开始的——当时关于它的书籍很少,但它也带来了很多机会。我是为数不多在深入研究它的人之一。除此之外,我还参与了JavaScript API的实验。我认为自己既不是设计师也不是开发者——处于两者之间。我喜欢视觉编程。像游戏制作和canvas这样的东西是完美的,因为你可以将硬核开发与一些真正直观的界面体验结合起来。这就是我在Mozilla的工作重点;网络的游戏开发方面——以及Boot2Gecko,这是我们正在进行的一个移动设备项目。

是什么让你对HTML5/JavaScript游戏感兴趣的?你是一个游戏迷吗?

我的生活中一直都有游戏——我有一台ZX Spectrum,游戏机……

哇!你是ZX Spectrum的粉丝吗?

我爸爸不太喜欢电脑,但出于某种原因,他认为买一台是个好主意。而我却被插入磁带后游戏就出现了的想法深深吸引住了!我的意思是,我当时还很小,但我仍然记得——《打鸭子》,以及所有那些疯狂的游戏。然后当我开始玩PC游戏时,我的工作效率就下降了很长时间!但游戏对我来说一直都很有趣。像Flash和JavaScript这样的技术让我意识到,太酷了,我现在可以制作游戏了。然后一旦你开始制作游戏,它就会打开一个全新的可能性领域。这就像我第一次制作网站时的那种感觉——我创造了它!你可以在游戏开发中学习许多不同的技术——输入、视觉图形、声音——而你在构建标准网站时并不总是能获得这种体验。在游戏中,你总是将事物推向极限。

所以如果我对HTML5/JavaScript游戏开发感兴趣,我首先应该学习什么,然后应该往哪个方向发展?

掌握JavaScript;标准的语言相关内容。但是一旦你对JavaScript感到满意,就可以看看一些图形API——比如Canvas API。Canvas是一个非常好的API。在我遇到它之前,我真的不知道如何在不创建图像的情况下在浏览器中绘制东西。还可以看看Audio API。HTML5中的多媒体功能非常有趣。看看一些游戏引擎。你可能不一定要从头学习它们,但是有很多游戏引擎可以让你快速上手,而无需完全理解基础知识。比如Crafty,我相信这是一个澳大利亚的引擎,而且是免费的。然后还有一个非常好的引擎,售价99美元,叫做Impact——一个非常棒的游戏引擎,文档非常完善。如果你想用JavaScript创建一个游戏,但又不一定想太深入地了解实现细节,那么这些引擎是一个很好的起点。如果你真的想深入了解游戏开发的来龙去脉,学习如何使用requestAnimationFrame之类的工具进行动画制作,这可以优化JavaScript中的循环。当你将它与Canvas API结合起来,比如让一个方块在屏幕上移动时,从那里使用键盘输入就不是什么难事了。从那里开始,你想把它带到哪里就带到哪里。

所以看来你仍然需要很好地理解基本的JavaScript。

对。我的意思是,有一些类似jQuery的游戏库——像Crafty和Impact这样的引擎有点像那样。但它们不像jQuery那样抽象。如果你想做一些更复杂的事情,你仍然需要编写JavaScript。但是如果你只想做基本的动画——比如将图像作为精灵引入并四处移动——你可以用Crafty做到这一点。问题是,你并没有完全了解幕后发生的事情。在网络之外,如果你想制作一个游戏,你可以使用Flash或Unity,因为它抽象了一种方法来处理复杂的动画和物理效果。但是,对我来说,了解JavaScript意味着我可以从头开始创建游戏。是的,这可能很难,可能需要一段时间,但从长远来看是值得的。如果你至少能理解它的基础知识——for循环、数组和对象,等等——那么当你想要进一步推进事情时,你就会真正感激它。

HTML5和JavaScript似乎导致了复古游戏的爆炸式增长——策略游戏、平台游戏,以及像《Pong》这样的旧游戏的复活。你认为它还会走向其他方向吗,比如更复杂、更具交互性的项目?

复古游戏这方面很酷。HTML5游戏正处于一个相当简单的阶段,所以复古游戏是完美的——它们不需要太多的能力,主要是在2D,而且很容易创建。Flash游戏盛行的时候也是如此。没有什么能阻止开发者使用JavaScript来创造更具沉浸感的体验。我们开始看到使用WebGL的情况。很多人开始创建更接近你在iOS上看到的那些游戏——甚至包括3D游戏,使用诸如硬件加速之类的技术。《Pong》很棒,但它并没有过多地推动技术;即使是《愤怒的小鸟》也没有过多地推动技术。我看到有人在WebGL中创建了《Quake 4》,而且运行流畅。我们需要看到更多这样的游戏,以帮助将网络确立为现代游戏的平台。我们现在拥有创建真正游戏所需的技术和能力。而我所说的真正游戏是指你可以在PC游戏中看到的那些游戏。我们开始看到公司和开发者朝着这个方向发展。我们需要创建为网络而构建的网络游戏。现在我们看到的是互动游戏的复兴,但我们没有看到太多专门为网络创建的游戏。我希望看到更多利用网络优势同时又意识到设备限制的游戏。仅仅因为你可以在两个平台上制作相同的游戏并不意味着它应该完全相同。我认为网络有机会成为一个独立的游戏平台——一个独特的目标,而不仅仅是放置标准游戏的另一个地方。一旦游戏开发者掌握了这一点,我认为我们会看到一些非常有趣的东西。现在网络上的游戏实际上只是在复制其他平台——游戏相当静态,而且它们并没有真正使用网络提供的任何东西,例如社交功能或连接到其他API的能力。所有这些都是网络固有的,我们正在网站中使用它,但是如果我们在游戏中使用它会发生什么?

许多开发者在浏览器游戏中所做的事情往往涉及挖掘过去,这并非一定是坏事——但是你能看到概念和想法的扩展吗?

那将是我的梦想。现在我认为我们对HTML和网络作为游戏平台是不公平的。我们将它与以前的平台进行比较;例如,我们正在移植来自iOS的游戏——我们在网络上运行HTML版本的《愤怒的小鸟》,但它从未为此而创建。我们把它带过来是因为它很成功。这是不公平的;我们将网络平台与它为之构建的原生平台进行比较。当然,原生平台更好——它是为触摸控制、某种编程语言和技术而构建的。我们永远不会通过将网络限制在我们以前一直在做的事情上来让它独立发展。我们可以释放网络的强大功能,并尝试一些不像我们通常玩的游戏那样受限的东西——例如,我们看到游戏包含在浏览器中的一个小方框中。没有理由让游戏必须作为一个网站的一部分出现在一个小方框中——它可以是网络的一部分;你可以在网络上追逐游戏。没有理由为什么你不能在Twitter上玩游戏。我希望随着人们逐渐接受网络游戏的想法,我们会看到大量新游戏的出现。JavaScript API是为网络而构建的。这是一项非常基础的技术;建立一个web socket连接和一些事件,你就可以实时地向web服务器发送和接收消息——从那里制作多人游戏就不是什么难事了。

你如何使这些想法具有市场价值?

这是我们在Mozilla试图解决的问题之一。这也是我们从游戏开发者那里普遍得到的问题之一——“听起来不错,但如果我不想免费提供我的游戏怎么办?”人们习惯了DRM和代码保护,他们来到网络上,一切都开放了;源代码都在那里。所以我们这里有两个问题需要解决。第一:我们如何让人们相信使用开放技术是一个好主意?我认为这个问题很容易解决,因为如果你担心你的游戏被盗,那么我认为网络不适合你。仅仅因为你可以在HTML中制作游戏并不意味着它是你的游戏的最佳平台。并且有一些方法可以减轻这些问题,例如,缩小代码——这些方法可以帮助开发者对发布他们已经花费大量时间工作的代码感到更舒服一些。第二个问题是营销:你如何销售你的游戏?如果你无法谋生,那么至少作为一个公司来说,制作游戏就没有意义了。你可以走一条路,如果你不花钱,你也不用太担心阻止人们进入你的游戏,但你可以使用捐赠模式。另一方面,如果你真的想在他们不为游戏付费的情况下将他们拒之门外,你可以这样做。我们在Mozilla正在开发开放式网络应用程序API,它允许你提供需要在游戏开发者服务器上验证的收据。我们正在寻找方法来拥抱代码的开放性,而不是阻止人们查看源代码,而只是创建一个点,你可以说,你为这个游戏付费了吗?如果没有,那么你就不会获得完整的体验。这不是灵丹妙药。如果它只是一个他们已经付费的单人游戏,那么一旦他们获得了所有源代码,就没有办法阻止他们拿走它并做人们对网络技术所做的事情。我非常怀疑网络上的游戏被盗的程度不会超过其他地方的游戏。盗版游戏比仅仅获取源代码要复杂得多。如果你有一个服务器端组件,那么你就有保护,这就是收据系统可以发挥作用的地方。如果你知道游戏无法玩除非有人访问你的服务器,那么你可以控制这种体验。如果他们窃取前端代码,他们仍然无法玩游戏,因为他们没有获得你的服务器端代码,如果他们可以进入你的服务器,那么你就有另一个问题了。我认为在网络上将游戏货币化绝对没有任何问题——目前的问题是我们还没有取得巨大的成功。这是一个先有鸡还是先有蛋的问题——人们正在等待成功,而成功并没有到来,因为人们正在等待。我们需要有人站出来尝试一下。而且是网络,所以你不必像以前那样销售游戏。你也许可以从游戏内付费中赚钱,所以你仍然可以拥有免费的游戏体验,但可以控制人们在游戏中体验哪些东西——玩家达到的等级、他们拥有的盔甲或能量增益。一旦我们完全理解了什么是可能的,我们就会弄清楚如何将其货币化,尤其是在像EA这样的大公司加入之后——如果有人知道如何赚钱,那就是这些人。我认为独立开发者之后也会效仿。这不像在iOS上那样容易……但他们已经有了巨大的领先优势。网络上有很多方法。报纸已经开始考虑引入付费墙……这些并不一定有效。问题是,你应该屏蔽内容吗?这是否违背了网络的初衷?有没有其他更适合网络的赚钱方式?也许这就是问题的答案——不是“如果他们不付费,我该如何阻止他们玩我的游戏?”,而是“我如何利用网络擅长的事情从这个游戏中赚钱?”也许这甚至不是从玩家那里赚钱,而是从赞助商那里赚钱。我很想知道一年后我们会处于什么位置。我们可能会看到一系列成功的游戏赚了很多钱。

关于HTML5游戏和WebGL的常见问题

什么是WebGL,为什么它对HTML5游戏很重要?

WebGL代表Web图形库。它是一个JavaScript API,允许在任何兼容的Web浏览器中渲染交互式3D和2D图形,而无需插件。WebGL对HTML5游戏至关重要,因为它为开发者提供了创建丰富、高质量图形体验的能力,这些体验可以在各种设备上流畅运行。这为游戏开发开辟了无限可能,因为它允许创建可以直接在浏览器中玩耍的复杂、身临其境的遊戲。

HTML5游戏与传统游戏平台相比如何?

HTML5游戏相较于传统游戏平台,拥有诸多优势。首先,HTML5游戏是平台无关的,可以在任何具有Web浏览器的设备上玩耍,包括智能手机、平板电脑和电脑。这意味着玩家可以在任何地方享受他们最喜欢的游戏,而无需下载或安装任何东西。其次,HTML5游戏的开发通常比传统平台的游戏更快更容易,传统平台的游戏通常需要专门的知识和工具。最后,HTML5游戏可以轻松更新和分发,这使得它们对开发者和玩家都具有吸引力。

我可以离线玩HTML5游戏吗?

是的,HTML5游戏的巨大优势之一是它们可以离线玩耍。这要归功于HTML5的应用程序缓存功能,该功能允许Web应用程序将数据存储在用户的设备上,以便在没有网络连接时使用。这意味着即使您没有连接到互联网,也可以继续玩您最喜欢的HTML5游戏。

HTML5游戏安全吗?

HTML5游戏通常与任何其他Web应用程序一样安全。但是,与所有软件一样,如果设计和维护不当,它们也可能容易受到攻击。开发者务必遵循Web安全的最佳实践,例如使用安全协议、验证用户输入以及定期更新和修补游戏以修复任何潜在的安全问题。

一些流行的HTML5游戏的例子是什么?

如今有很多流行的HTML5游戏,从简单的益智游戏到复杂的多人在线游戏。一些值得注意的例子包括“2048”、“HexGL”和“宝石迷阵”。这些游戏展示了HTML5和WebGL的强大功能和多功能性,并让我们对基于Web的游戏的未来有所了解。

我如何开始开发我自己的HTML5游戏?

开发HTML5游戏需要很好地理解HTML、CSS和JavaScript,以及熟悉WebGL API。还有一些可用的库和框架可以简化开发过程,例如Phaser、Pixi.js和Three.js。此外,还有许多在线教程和资源可以帮助您开始HTML5游戏开发。

我可以将我的HTML5游戏货币化吗?

是的,有很多方法可以将HTML5游戏货币化。一种常见的方法是通过广告,可以通过在游戏中显示广告或提供付费的无广告游戏版本来实现。另一种方法是通过游戏内购买,玩家可以在游戏中购买虚拟商品或服务。最后,一些开发者选择直接销售他们的游戏,无论是通过他们自己的网站还是通过游戏分发平台。

HTML5游戏的未来是什么?

HTML5游戏的未来看起来非常光明。随着Web技术的不断进步以及移动游戏的日益普及,未来我们很可能会看到更多创新和令人兴奋的HTML5游戏。此外,虚拟和增强现实技术的兴起也可能为HTML5游戏开发开辟新的可能性。

HTML5游戏有什么局限性?

虽然HTML5游戏有很多优点,但也有一些局限性。例如,性能可能是一个问题,尤其对于更复杂的游戏而言。此外,并非所有Web浏览器都完全支持HTML5和WebGL的所有功能,这可能会导致兼容性问题。但是,随着Web技术的不断发展和改进,这些限制正变得越来越不那么重要。

我可以将WebGL用于非游戏应用程序吗?

当然!虽然WebGL通常与游戏相关,但它也可以用于各种非游戏应用程序。例如,WebGL可用于创建交互式3D可视化、虚拟导览,甚至增强现实体验。可能性几乎是无限的。

以上是JS和HTMLGAMING:从愤怒的小鸟到ZX频谱的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板