网页游戏开发入门

现代 Web 已迅速成为一个可行的平台,不仅可以用于创建令人惊叹的高质量游戏,还可以用于分发这些游戏。

可以创建的游戏范围与桌面和原生操作系统上的游戏相当。借助现代 Web 技术和最新浏览器,完全可以为 Web 制作令人惊叹、顶级的游戏。我们不是在谈论使用 Flash® 在过去完成的简单纸牌游戏或多人社交游戏。我们谈论的是 3D 动作射击游戏、角色扮演游戏等等。由于 JavaScript 实时编译技术的巨大性能提升以及新的 API,您可以构建在浏览器(或 HTML5 支持的设备上)运行的游戏,而无需做出妥协。

HTML 游戏平台

您可以真正将 Web 视为游戏更好的目标平台。正如我们喜欢说的,“Web 就是平台”。让我们看一下 Web 平台的核心

功能 技术
音频 Web 音频 API
图形 WebGL (OpenGL ES 2.0)
输入 触摸事件游戏手柄 API、设备传感器、WebRTC全屏 API指针锁定 API
语言 JavaScript(或使用 Emscripten 编译为 JavaScript 的 C/C++)
网络 WebRTC 和/或 WebSocket
存储 IndexedDB 或“云”
Web HTMLCSSSVG(以及更多!)

商业案例

作为一名游戏开发人员,无论您是个人还是大型游戏工作室,您都想知道为什么将 Web 作为您下一个游戏项目的目标平台是有意义的。让我们看看 Web 如何帮助您。

  1. Web 的覆盖范围非常广泛;它无处不在。使用 HTML 构建的游戏可以在智能手机、平板电脑、PC 和智能电视上运行。
  2. 营销和可发现性得到提升。您不受限于在其他人的应用商店中推广您的应用。相反,您可以在 Web 上以及其他媒体上宣传和推广您的游戏,利用 Web 的固有链接性和可分享性来接触新客户。
  3. 您在重要的地方拥有控制权:付款。您不必将 30% 的收入交给其他人,仅仅因为您的游戏是在他们的生态系统中。相反,您可以按您希望的价格收费,并使用您喜欢的任何支付处理服务。
  4. 同样,您可以随时更新您的游戏。无需焦急地等待批准,让另一家公司隐藏在幕后的某个人来决定您的关键错误修复是今天发布还是明天发布。
  5. 控制您的分析!无需依赖其他人来决定您需要哪些分析,您可以收集自己的分析 - 或者选择您最喜欢的第三方 - 来收集有关您的销售额和游戏覆盖范围的信息。
  6. 您可以以自己的方式更密切地管理您的客户关系。无需再通过应用商店的有限机制来过滤客户反馈。以您想要的方式与您的客户互动,无需中间人。
  7. 您的玩家可以在任何地方、任何时间玩您的游戏。由于 Web 无处不在,您的客户可以在他们的手机、平板电脑、家用笔记本电脑、工作台式电脑或任何其他设备上查看他们游戏的状况。

面向游戏开发人员的 Web 技术

对于技术人员,让我们深入研究 Web 为游戏开发人员提供的 API。以下是一个详细列表,让您了解 Web 能为您做什么

Fetch API

发送和接收您想要从 Web 服务器获取的任何类型的数据,例如下载新的游戏关卡和美术作品,以及来回传输非实时游戏状态信息。

全屏 API

这个简单的 API 使您的游戏能够接管整个屏幕,从而使玩家沉浸在动作中。

游戏手柄 API

如果您希望用户能够使用游戏手柄或其他游戏控制器来操作您的游戏,您需要使用此 API。

HTMLCSS

这两项技术结合在一起,使您可以构建、设计和布局游戏的用户界面。HTML 的一部分是 <canvas> 元素,它提供了一种进行 2D 图形的方法。

HTML 音频

<audio> 元素使您可以轻松播放简单的音效和音乐。如果您需要更复杂的功能,请查看 Web 音频 API 以获得真正的音频处理能力!

IndexedDB

一个功能强大的数据存储 API,用于在用户自己的计算机或设备上维护用户数据。这是一种在本地保存游戏状态和其他信息的好方法,这样就不必每次都需要时都下载它们。它还有助于在用户无法连接 Web 时(例如,在飞机上长时间旅行时)使您的游戏可玩。

JavaScript

JavaScript 是 Web 上使用的编程语言,在现代浏览器中速度极快,并且一直在变得更快。利用它的强大功能编写游戏的代码,或者考虑使用像 EmscriptenAsm.js 这样的技术轻松移植您现有的游戏。

指针锁定 API

指针锁定 API 使您可以将鼠标或其他指向设备锁定在游戏的界面内,这样您就接收坐标增量而不是绝对光标位置,从而更精确地测量用户在做什么,并防止用户意外将输入发送到其他地方,从而错过重要的动作。

SVG(可缩放矢量图形)

使您可以构建无论用户显示器的大小或分辨率如何都能平滑缩放的矢量图形。

类型化数组

JavaScript 类型化数组使您可以从 JavaScript 内访问原始二进制数据;这使您可以操作 GL 纹理、游戏数据或任何其他内容,即使它不是本机 JavaScript 格式。

Web 音频 API

这个 API 用于从 JavaScript 代码控制音频的播放、合成和操作,使您可以创建出色的音效以及实时播放和操作音乐。

WebGL

使您可以从 Web 内容创建高性能、硬件加速的 3D(和 2D)图形。这是 Web 支持的 OpenGL ES 2.0 实现。

WebRTC

WebRTC(实时通信)API 使您能够控制音频和视频数据,包括电话会议和在两个用户之间来回传输其他应用程序数据。希望您的玩家能够在炸毁怪物时相互通话?这个 API 正适合您。

WebSocket

WebSocket API 使您能够将应用程序或网站连接到服务器,以实时来回传输数据。非常适合多人游戏动作、聊天服务等等。

Web 工作线程

工作线程使您能够生成运行自己的 JavaScript 代码的后台线程,以利用现代多核处理器。