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
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.