Sunday, May 22, 2016

melonJS 3.1.0 - new cool stuff and other fixes !

A little bit after the small maintenance release that was mostly fixing some issues with Ejecta and the new Apple TV,  we're pleased to announce the arrival of its first minor release version since we started to better follow semantic versioning: melonJS 3.1.0!

Download 3.1.0 here:

Some highlights from the full changelog include:

  • required startup code has been greatly simplified, be sure to check the latest boilerplate
  • tons of improvements on the Audio : improved the API to allow things like changing the play rate or allow streaming audio clip, and also of course includes all the latest fixes/addition from Howler made since 3.0.0
  • me.Color now support the new #RGBA and #RRGGBBAA CSS formats
  • all Ejecta hacks from 3.0.0 have been removed, following the improvements made on Ejecta since then, so be sure to grab the last development version as well
  • fixes when using bare renderable objects in the game world around initialisation and recycling.
  • tons of improvements and fix to the TMX support (latest features from latest versions of Tiled,  regression fixes)
  • fixed a huge regression with pointer events not firing with "floating" regions (you definitely want/need to update to 3.1.0 if you make extensive use of pointer/touch events)
  • fixes to the WebGL renderer (rendering under Safari, TMX clearTile function, compatibility with browser supporting Canvas2DContextAttributes.alpha)

In a few words; bug fixing and new features with no breaking changes; this should be a simple drop-in replacement if you're already using v3.0.x !

Special thanks to everyone who contributed to this release with bug reports on the forum, github, and in our gitter chat. We appreciate all the effort you've put into making melonJS the awesome little community it has become.

So, it's time to update! Do let us know what you're building with melonJS, and don't be shy to ask for help or suggestions. We have some friendly developers in the forum that contribute all the time!

- the melonJS team

Tuesday, February 23, 2016

melonJS 3.0.1 and the new apple TV

Hi Guys,

Following the last major release, I wanted to have some fun time and spent a few days experimenting with Ejecta and the new apple TV ! After a few fixes that are now available in the last 3.0.1 version of melonJS, I managed to get our platformer running on it, and created a quick guide in our wiki (here) that explains the process on how to get your melonJS game working with it :)

Of course it's initially thanks to the amazing work of Dominic Szablewski on Ejecta, but I must say that seeing a pure javascript game running on a TV is pretty cool, especially considering the very small amount of effort that was required to "convert" it ! That's it for today, and if you have yourself the opportunity to give it a try, please provide us some feedback on your experience through our forum  :)

Last but not least, a small reminder on our small giveaway contest, where you can win a license of the awesome Master Spy game, still plenty of time to enter and try your luck !

--- the melonJS team

Thursday, February 4, 2016

Win a free copy of Master Spy !

Hi Guys,

To celebrate the release of the latest 3.0.0 version of melonJS, and thanks to Turbogun, we are giving away 2 licenses of Master Spy ! Master Spy is a stealth-based precision platformer with old school cutscenes, that was initially developed using melonJS, and available through Steam !

If you have not yet heard about it, and if you like challenging stealth games with high quality pixel arts, I strongly encourage you to check it out

Master Spy is an expertly-crafted stealth game blended seamlessly with a precision platformer.” 
4.5/5 – Hardcore Gamer 

So how does it work ? Very simple, to enter to win, post a reply on this post, or on the dedicated forum post here,  and just show us the game you are working on (or start a new one!),  and two winners will then be chosen randomly among the valid entries.

To make it fair though for everybody, here are a few criterias :
- the game should be in a playable state, we obviously don’t ask for a full commercial game, but something more like of a demo/mini-game rather than a prototype, it should have at least a playable level, npc/enemies, scoring system etc…
- you should obviously be the author of the game (1 license per team will be given, if this is a team effort)
- the game shall use melonJS 3.0.0
- it should be something “new” : an active development, or a new creation/remake
- assets used should be free (,, etc…) or an original creation (no rip of copyrighted/commercial content)
- source code should be available (ideally hosted on github).
- game should be playable online (e.g., gh-pages or others)

The contest will run from today through 12:00 a.m. GMT+8 on February 22nd (approximatively 2 weeks, past this weekend) February 29th. The winners will be chosen randomly and will be contacted by email.

so are you ready? 3... 2 ... 1... go !

Monday, February 1, 2016

melonJS 3.0.0 is finally there

Dear melonJS lovers,

After a (too) long time and a couple of release candidates, it's finally time to release a new version of melonJS ! To comply with the philosophy of the semantic versioning we are now following since the last major release, this version has been labelled 3.0.0 as it brings new features without guarantee of any backward compatibility in terms of API.

In this release, we were able to bring long-standing features, but also new ones and numerous fixes to the engine, bringing it a step closer from what developers are expecting from a modern game engine.

The CHANGELOG for this release being pretty long, here is a list of  highlight :
  • compatibility with some 3rd party libraries and SDK (e,g, facebook) has been fixed
  • ES6 compliance has been improved (by relying on more on ES6 functions when possible)
  • vector class improvements; few issues have been fixed and we also added a 3d vector class
  • level loading is now asynchronous and allow for more parameters to be passed to the related callback
  • the gamepad API is finally supported, meaning that you can now use your favorite game controller
  • mouse/pointer event have been optimized and now also use spatial localization/detection
  • default anchoring value is now the center (as opposed to the top-left coordinates previously inherited from Tiled); that makes it more coherent/natural with what is used by default in the "industry"
  • entity and renderables are now positioned respectively to their anchor value
  • renderables are now using a 3d vector for positioning (bringing melonJS a step closer to a "3D" world)
  • you can now define animation delay on a per-frame basis, and specify per-frame pivot points
  • added support for the Physics Body Editor (on top of the already supported PhysicsEditor tool), allowing to define complex collision shapes
  • we added support for the latest version of Tiled, that includes TMX orthogonal maps, or layer data encoding in JSON format
  • more video scaling mode have been added (flex and fill-min)
  • the repeat texture feature (e.g. for scrolling background) has been rewritten to better match the webGL philosophy

Download here:

Also do note that starting from this release, our builds are no more versioned, this allows to provide a more seamless release process.

As usual, the Upgrade Guide lists additional changes, which you will find helpful if you are porting an existing game, and the corresponding updated documentation is available here.

As always, please post any bugs to our issue tracker, visit the forums if you have any support requests, or just come to say hello as we always love to hear about what you are guys doing with melonJS.

Finally, we are trying to add more and more examples that are showcasing specific features of melonJS, with a few of them already available here, but don't hesitate as well to submit any examples you would deem useful to the community.

- the melonJS team

Friday, September 25, 2015

Tutorial : how to use texture atlas with TexturePacker

Similarly to our previous quick tutorial on how to use the PhysicEditor tool, here is today a small tutorial on how to use TexturePacker one, a 3rd party tool to easily generate texture atlas, that can then be later imported in melonJS.

As you might know, using a texture Atlas is one of the best way to optimize project globally as it generally allow to :
  • save memory, by packing all your sprites into a single texture
  • increase your framerate, by optimising the GPU usage
  • make your game start faster, by loading a single texture
Although support for TexturePacker was added in version 0.9.7 which is quite old now, as we are now reaching 3.0.0 for the current development version, we never really wrote any tutorial to show how easy it is to use it, so here it is !

Please see the following link here to access the tutorial on our wiki page.

Finally, do note that melonJS also support texture generated using Shoebox, a free Adobe Air application, through a custom exporter. See our wiki as well for more details.

- the melonJS team

Friday, September 18, 2015

melonJS 2.1.4 for iOS 9

Following the release of iOS9 two days ago, we were informed through our forum that web audio was not working anymore on apple devices. The reason being that iOS9 broke the ability to lift the "user-gesture restrictions" on WebAudio using the touch start event, but luckily Jason quickly figured out that the touch end event still works.

As work are still going on the current 3.0.0 branch, we decided to prepare a quick release to address this issue, and also another fix for a minor issue with Tween object recycling.

More details and download:

Stay tuned for the upcoming 3.0.0 release, you can have a sneak peak by having a look at the current change log here.

- the melonJS team

Sunday, July 26, 2015

melonJS 2.1.3 - Bug Fix!

We were informed of a few bugs and regressions in 2.1.2 right after its release. Rather than turning out a quick release to address those issues, we waited on it a bit. The wait turned out to be a good idea because we were able to discover and fix even more regressions.


Here's the damage:

  • Fixed an issue with decoding audio data on Opera
  • Fixed an audio loop issue on Chrome mobile, and touch event for iOS audio playback
  • Fixed an exception in the Map polyfill
  • Fixed an exception in me.ParticleContainer (introduced in 2.1.2)
  • Fixed TMXLayer opacity when preRender is enabled
  • Fixed ImageLayer opacity
  • Fixed a regression where me.device.getPixelRatio() no longer works when called before (introduced in 2.1.0)
  • Fixed a bug that causes a compile failure with the quad fragment shader on a small number of platforms

Many of these fixes improve stability, and some are just small annoyances that can be worked around. In any case, we recommend users of 2.1.x to upgrade immediately. There are no changes that affect compatibility or behavior.

One final note, we've also fixed some issues with the documentation, including making the shader documentation public with this release, and referencing Texture under its proper namespace. Check it out here: