此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

游戏开发工具

在本页面中,你可以找到我们关于游戏开发工具的文章链接,这些文章旨在最终涵盖各类框架、编译器和调试工具。

asm.js

asm.js 是 JavaScript 语言的一个严格子集,它可以被高度优化,并在一个预编译(AOT)引擎中运行,从而获得比典型 JavaScript 快得多的性能。这对于游戏开发而言无疑是极好的。

Emscripten

一款能将 LLVM 编译为 JavaScript 的编译器。借助 Emscripten,你可以将 C++ 以及其他可编译为 LLVM 字节码的语言,编译成高性能的 JavaScript。这是将应用程序移植到 Web 平台的绝佳工具!其 Wiki 上有一份实用的 Emscripten 教程。

Firefox Profiler

Firefox Profiler 可以让你对代码进行性能分析,以帮助你找出性能瓶颈,从而让你的游戏全速运行。

用于开发和调试游戏的工具链

这与常规的 Web 应用调试有何不同?有哪些专用工具可用?其中大部分内容将由 Will 在工具部分介绍,但在这里我们应该提供一个实用的游戏调试工具链教程,并附上 Will 的文章链接:

  • 基础工具概览
  • 着色器编辑器
  • 性能工具(仍在开发中,预计 2014 年初发布)

Web 技术

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

可以从 Web 服务器收发任意类型的数据,例如下载新的游戏关卡和美术资源,或来回传输非实时的游戏状态信息。

全屏 API

实现全屏游戏体验。

Gamepad API

使用游戏手柄或其他游戏控制器。

HTML 和 CSS

构建、设计并布局你游戏的用户界面。

HTML audio

轻松播放简单的音效和音乐。

IndexedDB

在用户的计算机或设备上存储数据。

JavaScript

用于编写游戏代码的高性能 Web 编程语言。 要轻松移植现有游戏,可使用 Emscripten 或 Asm.js。

指针锁定 API

将鼠标或其他指针设备锁定在游戏界面内。

SVG(可缩放矢量图形)

构建能够平滑缩放的矢量图形,不受用户显示器尺寸或分辨率的影响。

类型化数组

在 JavaScript 内部访问原始二进制数据;可用于操作 GL 纹理、游戏数据或其他任何数据。

Web 音频 API

实时控制音频的回放、合成与处理。

WebGL

创建高性能、硬件加速的 3D(和 2D)图形。基于 OpenGL ES 2.0。

WebRTC

通过实时通信来控制音视频数据,包括电话会议以及在两个用户之间来回传输聊天等应用数据。

WebSocket

将你的应用或网站连接到服务器,以实时地来回传输数据。非常适合多人在线游戏、聊天服务等。

Web Worker

为多核处理器生成运行自己 JavaScript 代码的后台线程。

将原生游戏移植到 Web

如果你是一名原生开发者(例如使用 C++ 编写游戏),并有兴趣了解如何将游戏移植到 Web 平台,你应该进一步了解我们的 Emscripten 工具——这是一款能将 LLVM 编译为 JavaScript 的编译器,它接收 LLVM 字节码(例如,使用 Clang 从 C/C++ 生成,或从其他语言生成)并将其编译为 asm.js,从而可以在 Web 上运行。

可以从以下资源开始: