下一代网页游戏

在过去的几年里,Mozilla 与其他浏览器和行业紧密合作,以 推进网页游戏的发展。我们共同使开发者能够在网页上部署本地代码,首先通过 asm.js,然后通过其继任者 WebAssembly。WebAssembly 现在已在 Firefox 和 Chrome 中可用,很快也将出现在 EdgeWebKit 中,它使浏览器中代码的性能接近原生性能,这对于游戏开发非常棒,并且也对 WebVR 应用程序显示出益处。由于避免了 JIT 编译和垃圾回收,WebAssembly 代码能够提供更可预测的性能。它在所有主要浏览器引擎中的广泛支持为接近原生速度开辟了途径,使得在网页上构建高性能、无插件的游戏成为可能。

“2017 年,Kongregate 看到了从 Flash 向 HTML5 的转变,近 60% 的新游戏使用了 HTML5,”Kongregate 的联合创始人兼 CEO Emily Greer 说。“开发者能够利用 HTML5 技术和工具的改进,而消费者则能够在无需第三方插件的情况下享受游戏。随着 HTML5 的不断发展,它将使开发者能够创建更高级的游戏,这些游戏将惠及 Kongregate.com 上数百万玩家以及更广泛、仍蓬勃发展的网页游戏行业。”

Kongregate 的数据显示,平均而言,大约 55% 的上传游戏是 HTML5 游戏。

我们还可以看到,这些游戏是高质量的游戏,超过 60% 的 HTML5 游戏获得了“优秀”分数(高于 5 分中的 4 分)。

尽管有这种积极趋势,但仍然存在改进的机会。网页是一个不断发展的平台,开发者一直在寻求更好的性能。我们经常听到的一个主要要求是网页上的多线程支持。 SharedArrayBuffer 是多线程的必要构建块,它使多个网页工作线程能够同时共享内存。该 规范 已完成,Firefox 计划在 Firefox 55 中提供 SharedArrayBuffer 支持。

另一个常见的要求是 SIMD 支持。SIMD 代表单指令,多数据。这是一种让 CPU 可以并行化数学指令的方法,可以为诸如 3D 渲染和物理之类的计算密集型需求提供显著的性能改进。

WebAssembly 社区小组 现在专注于通过 SIMD 和多线程实现硬件并行,这是 WebAssembly 的下一个主要演化步骤。在发布 WebAssembly 的第一个版本以及持续合作的势头基础上,这两项新功能都应该在 2018 年初在 Firefox 中稳定并准备好发布。

在过去的几年里,我们在优化运行时性能方面付出了很多努力,并从中学到了很多教训。我们收集了许多这些经验教训,并在关于 将游戏从本地移植到网页 的实用博客文章中分享了这些经验教训,并期待您对其他改进领域的意见。随着多线程支持在 2018 年落地,预计将看到进一步投资于改进内存使用情况的机会。

我们再次感谢游戏开发者、发行商、引擎提供商以及多年来与我们合作的其他浏览器的引擎团队。没有你们的帮助,我们不可能做到这一点 - 谢谢!

关于 Andre Vrignaud

Andre Vrignaud 是 Mozilla 混合现实计划的平台战略主管,他指导 Mozilla 为实现开放、可持续的 3D 网页和生态系统而做出的努力的战略。此外,他还倡导网络中立和隐私。

更多 Andre Vrignaud 的文章……


3 条评论

  1. Andrew Wooldridge

    作为网页游戏领域的思想领袖,我希望你们都能联系到那些构建网页游戏引擎的公司,例如 Unity、Construct2、PhaserJS 和 Gamemaker,以确保他们充分利用最新技术,使他们生成的网页游戏尽可能快、性能尽可能好。如果 Mozilla 创建了一个基线游戏,为其设定了规范,然后每个引擎制造商都可以在自己的引擎中实现这个游戏以进行比较和识别性能问题,那将是极好的。

    2017 年 7 月 20 日 下午 11:59

    1. Andre Vrignaud

      Andrew,我们确实一直在与整个行业的人员合作,包括你提到的许多网页游戏引擎制造商。他们一直是伟大的合作伙伴,你可以看到他们在网页方面的支持。我们是网页开发者,而不是游戏开发者,所以我们更喜欢与游戏开发者和引擎提供商合作,让他们的真实世界产品运作良好(而不是围绕我们可能想出的任何奇怪的游戏式事物进行优化)。但请放心,我们与该行业有着紧密的联系!

      2017 年 7 月 20 日 下午 16:06

  2. WebGL 用户

    您好,

    计划什么时候迁移到 OpenGLES 3.1,这样就可以使用计算着色器了。

    2017 年 7 月 29 日 上午 08:20

本文的评论已关闭。