Tiles with custom heights
Let's get this out of the way right now, because I'm just too excited about it: isometric tiles with custom heights! This opens up a whole new world of gameplay mechanics for your games, you can design crazy maps like this:
But let's slow down a bit and look at how it actually works. First of all, when you create a new tile (or edit an existing one), you have a button to enable Custom Height. This makes it possible to have cube tiles like this:
After creating tiles with custom heights, you can place them normally in your isometric world, like you do with flat tiles. You can still add transitions and details on top if you wish.
Following this, you can use the new height "brush": you set a minimum and maximum height, move your mouse over some tiles, and each of them will be assigned a random height in your chosen range.
Obviously this is all integrated with the rest of the isometric engine and the pathfinding algorithm will take into account tile heights when finding a path. You can pass an extra parameter to wade.iso.findPath to say what the maximum height should be. All characters will avoid tiles that are more than 20 units higher or lower than their current tile. 20 is just the default value of a property of the IsoCharacter behavior (called maxStepHeight) that you can change at any time.
One limitation though: characters and objects are still on a different layer in front of the terrain, so you can't design maps where the terrain would hide an object. Objects are always drawn in front of it, for performance reasons. We are looking into adding an option to let you have characters and terrain on the same layer, removing this restriction, but be aware that it will have a significant impact on performance. Technically this is because it would break the "batching" of the terrain rendering, resulting in many more draw calls and for scenes where the terrain doesn't move and characters are animated (a common case), the terrain would need to be redrawn every frame.
Export to Windows, Mac, Linux as well as Android
When clicking the download button in the editor, you are now given the option to export your project as an executable app on more platforms:
Unlike Android, the script for exporting to Windows, Mac and Linux (that I'm really proud of) runs entirely client-side, i.e. it does everything in your browser without sending any data to our servers: it downloads a template zip file, extracts it, modifies some files, adds all the assets and files for your app, repackages it and puts it into your downloads folder. Magic.
Additive Blending
You can now set each sprite's render mode to Additive, meaning that its colors will be added to whatever is behind it, like this:
This works both in webgl and 2d-canvas mode.
Function highlighting
As suggested by user Jota in the forums, we are now highlighting all the functions that contain some code. Hopefully this will make everyone's lives a little bit easier.
Make WebGL textures at loading time
Because creating WebGL Textures takes some time, currently it is done as and when it is needed: the first time a sprite ends up in the visible area of the scene (even if the sprite is invisible), its associated textures are created.
With WADE 3.1 you can decide, for each scene, to load textures when the scene is loaded. It will increase the loading time, but will also result in a smoother experience while the game is running.
Obviously there are many other little things and bug fixes, so do check the change log if you want all the details.
Let's not forget about the website
Our website gets a few improvements as well: you can now post comments in blog posts (please do, let us know what you think), and you can send and receive private messages (notice the little envelope next to your user name when you're logged in, top-right corner of the page).
Oh, and you can edit your posts. I really wanted an edit button. I cannot stand making spelling mistakes, and when I do make them (often) I must correct them, whatever it takes. On several occasions I actually did this by manually editing database entries from the command line, and it was not fun.
Overall I think it's a nice step forward, but obviously let us know if you find anything that doesn't quite work as expected!