此页面由社区从英文翻译而来。了解更多并加入 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
图形 WebGLOpenGL ES 2.0)
输入 触摸事件Gamepad API、设备传感器、WebRTC全屏 API指针锁定 API
语言 JavaScript(或使用 Emscripten 将 C/C++ 编译为 JavaScript)
网络 WebRTC 和/或 WebSocket
存储 IndexedDB 或“云存储”
Web HTMLCSSSVG(以及更多!)
Fetch API

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

全屏 API

实现全屏游戏体验。

Gamepad API

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

HTMLCSS

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

HTML audio

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

IndexedDB

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

JavaScript

用于编写游戏代码的高性能 Web 编程语言。 要轻松移植现有游戏,可使用 EmscriptenAsm.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 上运行。

可以从以下资源开始: