Tools for game development

On this page, you can find links to our game development tools articles, which eventually aim to cover frameworks, compilers, and debugging tools.

asm.js

asm.js is a very limited subset of the JavaScript language, which can be significantly optimized and run in an ahead-of-time (AOT) compiling engine for much faster performance than your typical JavaScript performance. This is, of course, great for games.

Emscripten

An LLVM to JavaScript compiler; with Emscripten, you can compile C++ and other languages that can compile to LLVM bytecode into high-performance JavaScript. This is an excellent tool for porting applications to the Web! There is a useful Emscripten tutorial available on the wiki.

Firefox Profiler

The Firefox Profiler lets you profile your code to help figure out where your performance issues are so that you can make your game run at top speed.

Toolchain for developing and debugging games

How does this differ from normal web app debugging? What specialist tools are available? A lot of this is going to be covered by Will in tools, but here we should provide a kind of practical toolchain tutorial for debugging games, with links to Will's stuff:

  • Basic tools overview
  • Shader editor
  • Performance tools (still in production, estimated early 2014)

Web Technologies

Web technologies in game development and their function
Function Technology
Audio Web Audio API
Graphics WebGL (OpenGL ES 2.0)
Input Touch events, Gamepad API, device sensors, WebRTC, Full Screen API, Pointer Lock API
Language JavaScript (or C/C++ using Emscripten to compile to JavaScript)
Networking WebRTC and/or WebSockets
Storage IndexedDB or the "cloud"
Web HTML, CSS, SVG (and much more!)
Fetch API

Send and receive any kind of data you want from a Web server like downloading new game levels and artwork to transmitting non-real-time game status information back and forth.

Full Screen API

Full screen gameplay.

Gamepad API

Use gamepads or other game controllers.

HTML and CSS

Build, style, and lay out your game's user interface.

HTML audio

Easily play simple sound effects and music.

IndexedDB

Store user data on their own computer or device.

JavaScript

Fast web programming language to write the code for your game. To easily port your existing games Emscripten or Asm.js

Pointer Lock API

Lock the mouse or other pointing device within your game's interface.

SVG (Scalable Vector Graphics)

Build vector graphics that scale smoothly regardless of the size or resolution of the user's display.

Typed Arrays

Access raw binary data from within JavaScript; Manipulate GL textures, game data, or anything else.

Web Audio API

Control the playback, synthesis, and manipulation of audio in real time.

WebGL

Create high-performance, hardware-accelerated 3D (and 2D) graphics. OpenGL ES 2.0.

WebRTC

Real-Time Communications to control audio and video data, including teleconferencing and transmitting other application data back and forth between two users like chat.

WebSockets

Connect your app or site to a server to transmit data back and forth in real-time. Perfect for multiplayer gaming action, chat services, and so forth.

Web Workers

Spawn background threads running their own JavaScript code for multicore processors.