Sunday, January 21, 2018

melonJS 5.1.0

Greetings melonJS friends !

As announced previously, here we are finally with the latest ES5 release of melonJS

More details on the changelog are available here, but this new 5.1.0 version include the following changes :
  • further improvements to the pointer management, with compatibility improvements for multitouch, but also improve touch detection when any transform is applied to the viewport
  • physic bodies can now be added to any Renderable object
  • improvement to the physic implementation with new function to allow basic Line of Sight implementation
  • fix to me.Sprite object where the sprite bounding box position was not taking in account the sprite anchor point
  • melonJS TMX parser and renderer now supports "Collection of Image" tileset
  • usual update of the audio core

As for the next version, we will certainly keep supporting the 5.x branch in parallel for bug fixing or small improvements, but as communicated in our previous blog post, all new features will be added from now on only on the 6.x branch (starting with ES6 class constructor and ES6 module).

Last but not least, as usual, check our Wiki for further information, the upgrade guide, and of course our forum

That's it for today, let us know what you think, including about your expectations for the next 6.0.0 version !

-- the melonJS team

Sunday, December 3, 2017

melonJS 5.0.x !

Greetings ! 

As the end of the year is almost there, it's finally time to release a new version of melonJS, that we have been slowly cooking on GitHub for months now.... 

As announced previously in anticipation for ES6, we completely dropped support for all legacy browser/devices not fully supporting ES5, which means that we removed all related polyfill and/or deprecated events from melonjs. If for any obscure reasons you still need to run things on these oldies, you can use an es5-shim to provide with the missing ES5 features (and it is actually now also included in our boilerplate). 

More details on the changelog are available here, but this new version include the following changes :
  • usual update to the audio module
  • fix and improvement to fullscreen and orientation features
  • tons of fixes to input management for gamepad, keyboard, pointer and multitouch
  • fix for renderable when applying transform and anchor points
  • new `isKinematic` property allowing to opt-out from collision and input events
  • support for group layers (Tiled 1.0) 
  • massive update in the build process (switch to karma, and use of chrome headless for the test unit) thanks to the help of kibertoad
The platformer example has been improved as well and now features a virtual gamepad for when used on touch-enabled devices. Definitely a good start for those looking at adding one to their game, give it a try here !

Also do note that a 5.0.1 version has been published in the mean time, fixing a couple of regressions, so make sure to download that latter version from here

Don't forget to check our Wiki for further information on how to use melonJS but also all for how to use the third party tools that we support like Tile of course, but also TexturePacker, PhysicEditor, BitmapFont Generator, PhoneGap, Ejecta, and others ! And of course comments and feedback on this last version are welcome through our forum

As this will probably be the last post of the year, we wish you all a Merry Christmas and an 
Happy New Year ! 

-- the melonJS team

Sunday, January 15, 2017

melonJS 4.1.0 and next ...

We had lots of great feedback after the last 4.0.0 version, some good ones about the new features introduced, but as well bug reports, so together with the new year it's time for a new release.

More details can be found in the changelog, but basically 4.1.0 is about the following improvements :
  • Audio : support the latest howler and new things like a seek function
  • Loader : path configuration, memory usage improvements, support CrossOrigin for WebGL
  • WebGL : added error management for NPOT textures, removed the automatic creation of a canvas overlay for standard font (as a reminder, you should not use regular fonts with WebGL, but rather bitmap fonts) which will save you a couple of sweet megabytes.
  • Pointer Event : fixed a bug on device allowing both mouse & touch events, fixed multiple regressions on multi-touch and mousewheel events.
  • Particles : fixed a huge performance regression 
  • Tiled : cleaned-up and exposed the TMX renderers classes, added several utility methods to convert vector and shapes from and to isometric space coordinates.
  • Debug : fixed the show/hide button in the plugin
  • Documentation: improvements, thanks to krojew, as he tracked down several issues or inconsistencies while working on a Typescript version of the library
Known issuethere is currently a limitation in the 4.1.0 release (from the 4.0.0 version), where applying a transformation to a Sprite does not work if added directly to the game world (as opposed to use that sprite as the renderable component for an entity). This can easily be fixed though by setting the sprite `autoTransform` property to true (see the ticket here). Although it seems an easy fix, this has triggered other changes in the engine linked to anchor management and will therefore only be included in the next major version (as it causes changes in behaviour).

Finally, 4.1.0 being a non major release, there is therefore no API changes at all, so you can just replace the previous 4.0.0 version with this one.

Last but not least, a few words about what will happen for the next two major versions coming :
  • melonJS 5.0.0 : this is 2017 guys, ES6 is almost there and we should almost all already be using it ! But as a first step we decided to completely drop support for all legacy browsers (e.g. not fully supporting ES5). So starting from the next major version, all ES5 polyfills will be removed which means that it's definitely time to update your browser if you want to keep using melonJS. If for any obscure reasons you still need to run things on these oldies, you can use an es5-shim to provide with the missing ES5 features.
  • melonJS 6.0.0 : what rhymes with 6 ? yes, ES6 ! as you maybe saw it coming we will then do the same here and will start supporting ES6 browsers starting from the 6.0.0 version (probably gradually, starting for example with the module support). Now we will certainly keep supporting the 5.x branch in parallel, but most of the big new features will certainly be added only on the 6.x branch, but let's see when we reach that point :)
There is no date yet specifically about these two versions, but 5.0.0 will obviously be the next major version, followed by a 6.0.0 later this year as well.

That's it for today ! Once again thank you guys for your support and feedback on melonJS and see you around on our forum or chat !

-- the melonJS team

Monday, November 28, 2016

melonJS 4.0.0 !

Wahooooo 4.0.0 already !

First of all, lots of improvements have been made since the last version, and especially focusing on the matrix and shape implementation, and related bounding box, transformation. This is not maybe super obvious for now, and more will certainley be done around this in the coming weeks, but it enables a lots of cool things like body shapes free transformation (with bounding box automatically resizing accordingly), free transformation for any renderables (which allows for some more cool stuff like rotating a TMX level easily), and also (for later) to use it as a projection matrix for our viewport/camera. 

Then we also have some really awesome great new stuff like finally a proper support for bitmap font (in the sense that we are not limited to fix-size font anymore as previously), support for sub-pixel rendering, and of course the usual batch of bug fixing including a big fix on our debug panel that finally works in WebGL mode :)

This new version should be quite stable already, it has been used for a couple of projects already, and no major issues were detected. We also spend a bit of time improving our automatic test units, in order to improve code quality and limit regressions in newer versions.

Last but not least, API changes are really minimal (see the upgrade guide), the only reason behind the major version bump being the bitmapfont, as a new font data is now required for the constructor, and thus breaking the previous API compatibility.

More details on the changelog and download links here :

Small reminder, don't forget that our Wiki also contains a tons of information on how to use melonJS but also all the third party tools that we support like Tile of course, but also TexturePacker, PhysicEditor, BitmapFont Generator, PhoneGap, Ejecta, and others !

Have fun, and once again we would like to thank you guys, melonJS would not be there without you ! Sure there are certainely things to improve here and there, new features to add, and your support, feedback and even Pull Request for some of you is definetly what keep this whole community ticking every day :)

-- the melonJS team

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 !