CSS JavaScript Other
Latest commit 75eec67 Feb 20, 2017 @parasyte parasyte Update CHANGELOG
Permalink
Failed to load latest commit information.
examples rename `setFrameOffset` to `setRegion` Jan 12, 2017
media [#792] further clean-up and fix to examples Jun 9, 2016
plugins/debug version bump and license update Jan 18, 2017
scripts update the node.js version to fix the travis task Nov 8, 2016
src [#871] Fix falling and jumping flags when gravity is reversed Feb 21, 2017
tasks [#768] documentation update to clarify anchor point and coordinate sy… Feb 21, 2017
tests new method to multiply a vector by the invert matrix Feb 15, 2017
.editorconfig Cleanup examples [ci skip] Jul 24, 2015
.eslintrc.json Revert "[#828] fix the travis build task" Nov 8, 2016
.gitattributes Rock 'nl' Roll :) Mar 22, 2013
.gitignore [#644] Add a gh-pages grunt task to update the gh-pages branch. Sep 25, 2015
.project pulling version 0.9.0 Jul 8, 2011
.travis.yml Add Travis environment for node.js 7 Nov 9, 2016
AUTHORS update to the contributors list since version 3.0.0 Feb 13, 2017
CHANGELOG Update CHANGELOG Feb 21, 2017
Gruntfile.js prevent eslint from parsing non .js file from the debug folder Nov 27, 2016
MIT-LICENSE version bump and license update Jan 18, 2017
README.md Enabled HTTPS on melonjs-builds Feb 13, 2017
bower.json [closes #690] Release non-versioned build files Jun 27, 2015
index.html add missing examples in the index html page Feb 2, 2016
jsdoc_conf.json version bump and license update Jan 18, 2017
package.json version bump and license update Jan 18, 2017
sourceFiles.json [#777] merge me.Animation into me.Sprite Sep 8, 2016
testSpecs.json [#868] Fix the bug in Number.prototype.round() and add a bunch of new… Feb 9, 2017

README.md

melonJS

Build Status Inline docs

A fresh & lightweight HTML5 game engine

melonJS

Copyright (C) 2011 - 2017, Olivier Biot, Jason Oster, Aaron McLeod

melonJS is licensed under the MIT License

About melonJS

melonJS is the result of our enthusiasm & experiments with Javascript, and currently features :

  • A fresh & lightweight 2D sprite-based engine
  • Standalone library (does not rely on anything else, except a HTML5 capable browser)
  • Compatible with most major browsers (Chrome, Safari, Firefox, Opera, IE) and mobile devices
  • Device motion & accelerometer support
  • High DPI & auto scaling
  • Multi-channel HTML5 audio support and Web Audio on supported devices
  • Lightweight physics implementation to ensure low cpu requirements
  • Polygon (SAT) based collision algorithm for accurate detection and response
  • Fast Broad-phase collision detection using spatial partitioning
  • 3rd party tools support for physic body definition (PhysicEditor, Physic Body Editor)
  • Advanced math API for Vector and Matrix
  • Tween Effects
  • Transition effects
  • A basic set of Object Entities (to be extended)
  • Object Pooling
  • Basic Particle System
  • Basic animation management
  • Standard spritesheet and Packed Textures (Texture Packer, ShoeBox) support
  • A state manager (to easily manage loading, menu, options, in-game state)
  • Tiled map format version +0.9.x integration for easy level design
    • Uncompressed Plain, Base64, CSV and JSON encoded XML tilemap loading
    • Orthogonal, Isometric and Perspective tilemap support
    • Multiple layers (multiple background/foreground, collision and Image layers)
    • Multiple Tileset support
    • Tileset Transparency settings
    • Layers Alpha settings
    • Rectangle, Ellipse, Polygon and Polyline objects support
    • Tiled Objects
    • Flipped & rotated Tiles
    • Dynamic Layer and Object/Group ordering
    • Dynamic Entity loading
    • Shape based Tile collision support
  • System & bitmap fonts
  • Mouse and Touch device support (with mouse emulation)
  • Built-in support for CocoonJS and Ejecta
  • Asynchronous messaging support (minPubSub)
  • Basic GUI elements included
  • Customizable loader

Using melonJS

For your first time using melonJS, follow these tutorials :

When starting your own projects, checkout the boilerplate

Note that due to the cross-origin request policy implemented in most browsers (that prevents from accessing local files), you will need to either disable this security check (see the tutorial), or better use a "personal" local web server like the grunt connect task that is used for building melonJS (see below for building melonJS).

Building melonJS

To build your own version of melonJS you will need to install :

  • The Node.js JavaScript runtime and npm package manager
  • The Grunt task manager

Once the Node.js package manager has been installed (using the installer from their website), you need to install build dependencies and Grunt CLI (Command Line Interface), by doing the following :

Open a Terminal or a Command Prompt and type the following :

$ [sudo] npm install -g grunt-cli

Next you need to install the melonJS dependencies, by typing :

$ cd melonJS
$ npm install

Once this is done, you can build melonJS :

$ cd melonJS # if not already in the melonJS directory
$ grunt

Both plain and minified versions of the library will be available under the "build" directory.

Building the documentation

Here is how you can build your own copy of the docs locally :

$ cd melonJS # if not already in the melonJS directory
$ grunt doc

The generated documentation will be available in the docs directory

Testing

The recommended way to test is to use the serve task:

$ grunt serve

Then navigate to http://localhost:8000/ in your browser. Stop the server when you are done by pressing Ctrl+C in the terminal.

To run melonJS tests in node simply run the following:

$ grunt test

This will run the jasmine spec tests with the output displayed on the shell. This however, is not recommended because the tests are run by PhantomJS in this mode, and there are a lot of known bugs and unsupported features in the version of WebKit shipped with PhantomJS.

WIP Builds

melonJS uses Travis-CI for automated testing and build uploads. The latest build artifacts can be downloaded from the melonjs-builds bucket.

Questions, need help ?

If you need technical support, you can contact us through the following channels :

For any other non technical related questions, feel free to also send us an email.