HTML and CSS Reference
As a game engine, Impact is optimized primarily for 2-D scrolling platformers, but any type of game can
theoretically be built with the engine. Using it for other genres simply means that you end up writing more code.
As long as you keep within the confines of image-based sprites, Impact can nicely abstract away from the de-
tails of HTML5 specific rendering issues provided you keep to the basic image sprites and tile maps it supports.
Spaceport.io ( http://spaceport.io ) is a hybrid engine that supports vector graphics running on HTML5 (as well
assets from .SWF files that are run through a converter.
If you have existing ActionScript 3.0 games, you can run them through a converter to get you most of the
The big selling point for Spaceport.io is its similarity to Flash's API, which can help a lot of Flash-based
game developers make the leap, and its support for Flash and vector graphics in its asset development pipeline.
One of the major drawbacks for HTML5 game development in its current state is that animations are generally
handled by spritesheets of bitmapped graphics, leading to single-layer, canned animations.
From a licensing standpoint, Spaceport.io is free to start developing in, but after you publish your game com-
mercially, the engine requires a 10% revenue share.
In addition to the two commercial engines previously described, there are also two IDE-based engines
(GameMaker HTML5 and Scirra's Construct 2) that can output mobile-playable HTML5 games. These are both
applications that you need to download and install and then build your game inside of.
GameMaker has a custom scripting language called GameMaker Language (GML) used for scripting ele-
ments, whereas Construct 2 prides itself on enabling users to build games without programming using mostly
drag-and-drop. Both engines support 2-D scrolling action games best, but again, they can be used to build just
about any type of game you like.
Using an Open-Source Engine
On the open-source side of things, HTML5 engines have proliferated as well. Although there are too many to
cover in a single book (let alone in a single chapter), there are a few worth mentioning because of their popular-
ity and their support for mobile HTML5 gaming.
Crafty.js ( http://craftyjs.com ) is a lightweight HTML5 engine based entirely around the idea of components and
entities. At under 90k Minified and Gzipped with no dependencies, it has a small footprint.
Instead of defining classes, you simply create entities and add components onto them. Components, as
you've seen in Quintus, can add additional functionality as well as trigger and respond to events.