Greatest JavaScript Engines for Better JavaScript Game Developments

In previous JavaScript article tutorial, jsB@nk showed you a good training practice to make JavaScript game - Making Simple RPG Game with JavaScript and Crafty - a JavaScript tutorial with full details and instructions to make a simple completed JavaScript game, you can read that making game JavaScript tutorial if you want to try one.

And today in this JavaScript article tutorial, jsB@nk is going to present you a list of 70 greatest JavaScript engines/frameworks to make JavaScript-based web games, these JavaScript engines are listed into the categories such as general JavaScript game engines/frameworks, 3D JavaScript game engines, JavaScript physics engines, animation JavaScript engines/frameworks, sound JavaScript libraries, canvas JavaScript libraries and WebGL. Please go to the inner post-page for details.


Sampled by © JavaScriptBank.com

Javascript is not only welcomed by the web developer or designers, but also more and more mobile device(Such iPad, iPhone, Android etc) oriented developers, we can easily build many amazing games with HTML(5) + Javascript + CSS. Below is a list of JavaScript Game Engine for serious developers, include general, 3D, Animation, Canvas, Math, Color, Sound, WebGL etc. Hope they will be helpful for your work!

Hot news: Unlock iPhone 4S

1. General JS Game Engine

 


Akihabara is a set of libraries, tools and presets to create pixelated indie-style 8/16-bit era games in Javascript that runs in your browser without any Flash plugin, making use of a small small small subset of the HTML5 features, that are actually available on many modern browsers.


BDGE is a game engine written in Javascript that uses HTML5 Canvas and Audio to create in-browser games.


Canvex is an experimental browser-based FPS game engine in the HTML <canvas> tag, which be believed to work in the following browsers, on any operating system and with no external plugins.


Cocos2d-javascript is a 2D game/graphics engine based on cocos2d-iphone but designed to run in the web browser. It uses the latest features available in HTML 5 allowing real-time rendering of 2D graphics without the need for plug-ins such as Adobe Flash.

 


Crafty is a lightweight, modular JavaScript game engine to easily produce high quality games. Includes a large variety of components such as animation, event management, redraw regions, collision detection, sprites and more. Go to Making Simple RPG Game with JavaScript and Crafty for an example

 


Diggy is a DHTML Game Engine (DGE).


FlixelJS is direct port of Flixel from AS3 to Javascript (HTML5/Canvas). 

 
 


GameJS is a library for writing 2D games or other interactive graphics applications for the HTML Canvas. GameJs already provides sprites, sprite groups (and collision detection between any of the two), font rendering, image handling, an event loop with keyboard/mouse support as well as resource preloading, AStar search, javascript server integration with RingoJs and more.

GameJs is a lightweight library, which is actually a port of the popular PyGame to JavaScript, that uses HTML canvas element.

It is a simple framework that allows writing the games as CommonJs modules.


Gamma is a new Javascript library which can be used to create 2.5D platform games for a web browser using the power of HTML, JavaScript, CSS and WebGL.

 

This JavaScript library can be used to create 2.5D platform games with the power of HTML, JavaScript, CSS and WebGL.

It comes with various classes to ease the development process including the ones for shapes, characters, enemies and more.


gameQuery is a jQuery plug-in to help make javascript game development easier by adding some simple game-related classes. It’s still in an early stage of development and may change a lot in future versions. The project is hosted on GitHub (it was hosted on Google Code before) and a twitter page where you can follow the daily progress of the development.


gTile is a browser based game engine entirely in Javascript and DHTML. A two dimensional tile based view has been chosen for simplicity and accessibility. Game play is achieved through rich interactions and behaviors of game objects, rather than fancy graphics or animation.

The engine is perhaps best suited to creating adventure and roguelike style games, but may also be used to create 2D virtual world representations of communities and geographical locations.

 


Impact is a JavaScript Game Engine that allows you to develop HTML5 Games in no time. Games created with Impact require no browser plugins or any software installations – just a modern browser that supports the Canvas tag.

 


The Isogenic Game Engine is a project to create a fully-featured modern game engine written entirely in Javascript, running on all the latest web browsers and utilising either HTML Canvas or standard HTML elements as the draw space.


The Javascript 2D Game Engine (for want of a more exciting name), is more or less just that. It’s a 2D engine I’ve developed, in javascript, with the primary purpose for creating games. It models shapes as rigid bodies, which can collide and be influenced by forces. Runga Kutta 4 is used to produce (fairly) stable integration for springs and and charge.

Now at version 4, the 2D engine now uses HTML 5′s canvas tag, and Google’s ExplorerCanvas to get it working in IE. The canvas is fairly widespread these days, so it should be supported fairly widely.


This is a free game engine developed for programming browser based games.  It uses the Javascript language and CSS (Cascading Style Sheets) to dress up the page.  They run pretty reliably together.  Use this engine to create your own game.  This project is intended for beginners, wanting to learn how to program video games.  Better if you’re a web designer that knows some CSS.


Brent Silby has built upon the official 2.09 version of the Gamelib released by Scott. He says his improvements are:

  • properties for sprites such as jumping, falling, fallspeed, etc.
  • tile handling for backgrounds and platforms. It’s basically the same as the sprite module, but (of course) the tiles are not updated on each cycle to save speed. "This is incomplete but I have used it in my games," he says.
  • the old V2.09 gamelib modules have been kept in a separate folder

 


jGen is a game engine build in JavaScript,

 


jsGameSoup is a Free Software framework for making games for the web using Javascript and HTML5. Abstract away some of the complexity of developing Javascript games for multiple browsers. Currently runs under new versions of Firefox (Gecko), Safari/Chrome (WebKit), IE 6.0 and higher. Doesn’t depend on any proprietary technologies like Flash or Silverlight.

 

The library comes with cross-browser event handling (mouse, keyboard and touch).

It has polygon, box and circle collision detection, sprite management and networking (ajax) abstraction layer.


js-verge is a javascript game engine largely based on (and importing file assets from) the VERGE game engine.


Propulsion is a JavaScript game development framework for the HTML5 canvas element.Some features of Propulsion include:

  • Support for any type of two dimensional game development.
  • Code patterns that are simple, yet robust and make sense for use with JavaScript.
  • A clear separation between different parts of the framework.
  • Support for collisions between any convex polygons.

Propulsion is licensed under the MIT License.


Rosewood is a 2D Javascript gaming engine for all your browser-based gaming needs, without the flash.


ryanwilliams is a re-implementation of cocos2d for the Web using HTML5 and JavaScript.


Sarien.net interpreter is 2D Adventure JS game engine based GPL license.


clanfx is a 2D, tile-based Javascript game engine developed using Javascript and CSS. It currently works in Firefox, Epiphany and Opera browsers. Features include many animated sprites, spell effects, buildings, tiles/textures and basic game AI.


GMP is a fast, free, javascript game engine, dual licenced under GPLv2 and MIT licenses. It’s small, simple, and easy to learn and use.

GMP is a JavaScript game engine that fits good to creating sprite-based, 2-D games and it can easily power most retro-style arcade game designs or puzzles like Sudoku.

It has a ready-to-go, self-booting game loop. Mouse and keyboard inputs can be used easily.

The engine is well-documented and the major fallback can be the lack of integrated sound support.


The Render Engine is a cross-browser, open source game engine written entirely in JavaScript. Designed from the ground up to be extremely flexible, it boasts an extensive API and uses the newest features of today’s modern browsers.

A cross-browser engine which is very flexible and comes with an extensive API.

It uses object-pooling to reduce garbage collection.

Abstraction around the Canvas DOM element and any DOM element exists to standardize access to the capabilities of 2D rendering.

Box2d is the physics engine integrated, has support for touch inputs and much more.

LimeJS


It is a HTML5 game framework for building games that'll feel native and work fast in modern touchscreens and desktop browsers.

LimeJS is created with Closure Library built by Google and comes with functions/classes to control the timeline, events, shapes and animations.

Also, the framework has full support of sprite sheets (you can collect all images inside a single file).

Jaws


A 2D game library powered by HTML5 which supports canvas and ordinary DOM based sprites through the same API.

It has a satisfactory sprite constructor for a higher abstraction for the characters.

Jaws makes handling keystrokes easier, providing string-identifiers for each key and anywhere in the code, you can instantly check if a key is pressed down.

Tom’s Halls – A JavaScript Platform Game Engine


Tom’s Halls is a JavaScript platform game engine. Version 3.0 of Tom’s Halls basically "completes" the game – literally, as there is now a game-won sequence. Game-wise the playing area has been increased to 41 screens, various new retro sprites make an appearance, and many of the existing screens have been tweaked and revised.


Unity 3 is a game development tool(JS background, include commercial  and free version) that has been designed to let you focus on creating amazing games.


Vegalib is a library and other related tools for creating games using Vexi.


xc.js is a framework for HTML Canvas games in Javascript. It’s simple and fun to use and you can even try it out right here in your browser.

But that’s not all. xc.js also runs on other platforms. You can write your games in Javascript and run them in all sorts of cool places (like on your phone!).

It is a very fresh framework and not as mature as others in the list.

At the core of xc.js, the concepts are scenes, nodes, actions, and events.

Sound support, Box2d and networking are the features to be mentioned in the "to-do-list" of the framework.

2. Some 3D JavaScript Engine


The Canvas 3D JS Libary (C3DL) is a JavaScript library that will make it easier to write 3D applications using WebGL. It provides a set of math, scene, and 3d object classes that makes WebGL more accessible for developers that want to develop 3D content in browser but do not want to have to deal in depth with the 3D math needed to make it work.


CopperLicht is a JavaScript 3D engine for creating games and 3d applications in the webbrowser. It uses the WebGL canvas supported by modern browsers and is able to render hardware accelerated 3d graphics without any plugins.


GLGE is a javascript library intended to ease the use of WebGL; which is basically a native browser javascript API giving direct access to openGL ES2, allowing for the use of hardware accelerated 2D/3D applications without having to download any plugins.

The aim of GLGE is to mask the involved nature of WebGL from the web developer, who can then spend his/her time creating richer content for the web.

 


JS3D is a library which allows you to have interactive 3d objects on your website, such as the spinning cube at the top of the page. The 3d effect is created using actual text, try selecting the text on the cube above! This is different from the approach of, for instance, these folks, who have made a better quality renderer, which is much more processor intensive. To see more functionality scroll to the demo section.


WebGL implementation of O3D is an open-source JavaScript API for creating rich, interactive 3D applications in the browser. Originally built as a browser plug-in, this new implementation of O3D is a JavaScript library implemented on top of WebGL.


Pre3d is a Javascript 3D rendering engine.


Sandy is a Flash 3D engine, available in 3 versions: AS2, AS3 and haXe(to JS).


SpiderGL is a JavaScript 3D Graphics library which relies on WebGL for realtime rendering.

SpiderGL provides typical structures and algorithms for realtime rendering to developers of 3D graphics web application, without forcing them to comply with some specific paradigm (i.e. it is not a scene graph) nor preventing low level access to the underlying WebGL graphics layer.


three.js is a javascript 3D engine. The aim of this project is to create a lightweight 3D engine with a very low level of abstraction (aka for dummies). Currently the examples are the documentation. Be aware that the API may change from revision to revision breaking backwards compatibility.

3. JavaScript physics engine


This is a port of Box2DFlash 2.1a to JavaScript . I developed an ActionScript 3 -to- JavaScript converter to generate the code.

There already exists a port to JavaScript called Box2dJs, but it’s not up-to-date and you have to import a big amount of JavaScript files in every project, whereas my version is stored in a single file.

4. Animation JavaScript Framework


The sprite.js framework lets you create animations and games using sprites in an efficient way. The goal is to have common framework for Desktop and mobile browsers.

sprite.js has been tested on Chromium, Firefox, Android emulator and Opera.

5. Sound JavaScript library


Using HTML5 and Flash, SoundManager 2 provides reliable cross-platform audio under a single API

  • 100% Flash-free MP3 + MP4/AAC where supported. Works on iPad, iPhone iOS 4
  • Seamless flash fallback for MP3/MP4 content, if needed
  • HTML5/Flash API switching is transparent, handled internally
  • WAV + OGG playback possible via HTML5, if supported
  • See useHTML5Audio for implementation details
  • This browser’s <HTML5> vs. Flash support (best guess): 

    6. Canvas JavaScript library


    ArtisanJS is a JavaScript library that aims to make in-browser drawing very, very easy.


    Burst is a javascript vector animation engine for the HTML5 Canvas supporting SVGs, Blender3D objects, timelines, easing, command chaining and callbacks


    CAAT: Canvas Advanced Animation Tookit CAAT in essence is a multi-instance director-based Scene graph manager.


    canto.js is a small JavaScript library that improves the HTML5 Canvas drawing API to support features such as:

    • method chaining
    • relative coordinates
    • polylines
    • SVG path commands
    • turtle graphics
    • easier specification of drawing attributes


    CAKE is a JavaScript scene graph library for the HTML5 canvas tag. You could think of it as SVG sans the XML and not be too far off.


    CamanJS is an attempt at providing a simple to use interface for dynamically manipulating images completely in JS. It strives to provide much of the basic functionality you would find in something like Photoshop. By this I mean, image contrast, brightness, levels, saturation, etc.


    Wrapper for HTML5 Canvas Context 2D properties and methods, enabling chaining.

    It’s intended to be simple, small and not add new functionalities besides method chaining, it doesn’t overwrite the native prototypes/objects and can be used interchangeably with native Context2D methods/properties, works just as a wrapper to native calls.


    canvg is a Javascript SVG parser and renderer. It takes a URL to a SVG file or the text of an SVG file, parses it in JavaScript, and renders the result on a Canvas element. The rendering speed of the examples is about as fast as native SVG.


    Doodle-js is An Animation Library for JavaScript. Some of the features:
    • Use the Canvas drawing API with sprites and a scene graph.
    • Event handling and dispatch for objects.
    • Nodes maintain transforms, bounds, and other useful properties.
    • If you’re coming from ActionScript 3, you’ll feel right at home!


    The new Canvas element in HTML5 is powerful, but it can be difficult to work with. It has no internal concept of discrete display elements, so you are required to manage updates manually. The Easel Javascript library provides a full, hierarchical display list, a core interaction model, and helper classes to make working with Canvas much easier.


    gury.js is a jQuery inspired canvas utility library.


    Fabric.js is a framework that makes it easy to work with HTML5 canvas element. It is an interactive object model on top of canvas element. It is also an SVG-to-canvas parser.

    Using Fabric.js, you can create and populate objects on canvas; objects like simple geometrical shapes — rectangles, circles, ellipses, polygons, or more complex shapes consisting of hundreds or thousands of simple paths. You can then scale, move, and rotate these objects with the mouse; modify their properties — color, transparency, z-index, etc. You can also manipulate these objects altogether — grouping them with a simple mouse selection.


    A basic HTML 5 canvas drawing library for those familiar with the java.awt.Graphics class in Java. It also comes with a JavaScript implementation of the game Breakout to demonstrate using the library.


    The Layered Canvas Library (LCL) is a javascript library that helps manage objects on the Canvas element. The LCL implements a two tier layer manager that creates and contains items within it. The layer manager attaches mouse events to each item contained, and allows the user to define handlers for each event, per item.

    The layer manager also allows for each layer contained to be promoted, or demoted over another layer. The layer manager, and each layer, and item contained, is defined with a draw function. The draw function executes user defined code to draw the item, layer, or each layer contained consecutively.


    This library provides functionality to manage and interact with the content of a html5 canvas element. It emulates layers and items that can be manipulated and managed and provides mouse-events to the items.

    This library is inspired by Michael Camden’s layered-canvas-library but I made this one a little more compact, skipped some features, added some and tried to streamline the way the lib is interacted with. It is built utilizing many features of the MooTools javascript framework which is responsible for reduced filesize, great OOP and flexible events.


    Pixastic is a JavaScript library which allows you to perform a variety of operations, filters and fancy effects on images using just a bit of JavaScript.


    Processing.js is the sister project of the popular Processing visual programming language, designed for the web. Processing.js makes your data visualizations, digital art, interactive animations, educational graphs, video games, etc. work using web standards and without any plug-ins.

    You write code using the Processing language, include it in your web page, and Processing.js does the rest. It’s not magic, but almost.


    Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web. If you want to create your own specific chart or image crop and rotate widget, for example, you can achieve it simply and easily with this library.


    Stackblur is a Javascript / Canvas based implementation library.


    Toxiclibs.js is a javascript port of Karsten Schmidt’s Toxiclibs for Java and Processing. Toxiclibs.js works great with the Processing.js visualization library for but is not dependent on it. It can be used with other libraries such as Raphael.js, Three.js or by itself.


    Unveil is a data exploration and visualization toolkit that utilizes data-driven software design.

    7. WebGL


    WebGLU is both a set of low-level utilities and a high-level engine for developing WebGL based applications. WebGLU is designed such that a developer can focus on the end result with a minimum of fuss and code, but doesn’t hand hold developers who want more control. This is achieved by exposing the raw GL object and also many lower-level functions for working with it and the WebGL API.

    8. Color


    color.js can be used in any ECMAScript environment as it does not make use of the DOM. color.js is very useful on the server-side and the client-side, The color.js CSS module defines all of the standard CSS colors for use in color.js.

    9. Math


    Sylvester is a JavaScript library designed to let you do mathematics with vectors and matrices without having to write lots of loops and throw piles of arrays around.

    It includes classes for modelling vectors and matrices in any number of dimensions, and for modelling infinite lines and planes in 3-dimensional space. It lets you write object-oriented easy-to-read code that mirrors the maths it represents.

  • Language
    Translate this page to English Translate this page to French Translate this page to Vietnamese

    Recent articles
    How to open a car sharing service
    Vue developer as a vital part of every software team
    Vue.js developers: hire them, use them and get ahead of the competition
    3 Reasons Why Java is so Popular
    Migrate to Angular: why and how you should do it
    The Possible Working Methods of Python Ideology
    JavaScript Research Paper: 6 Writing Tips to Craft a Masterpiece
    Learning How to Make Use of New Marketing Trends
    5 Important Elements of an E-commerce Website
    How To Create A Successful Prototype For Your PCB


    Top view articles
    Top 10 Beautiful Christmas Countdown Timers
    65 Free JavaScript Photo Gallery Solutions
    Adding JavaScript to WordPress Effectively with JavaScript Localization feature
    Best Free Linux Web Programming Editors
    Top 10 Best JavaScript eBooks that Beginners should Learn
    16 Free Code Syntax Highlighters by Javascript For Better Programming
    Top 50 Most Addictive and Popular Facebook mini games
    More 30 Excellent JavaScript/AJAX based Photo Galleries to Boost your Sites
    Top 10 Free Web Chat box Plug-ins and Add-ons
    The Ultimate JavaScript Tutorial in Web Design


    Free JavaScript Tutorials & Articles
    at www.JavaScriptBank.com