WorldGameMaker: preview of a game/app editor for Flash and Stage3D with ND2Dx

it’s been a very long time since my last post ! I’m still working on the game/app editor using Stage3D with ND2Dx and this is exactly why I’m writing this post, to give you a little preview of the current progress.
Without further delay, here is a screenshot of what it currently looks like :

You’ll find a hierarchy panel on the left, the main view in the center, the properties panel on the right of the view and the assets panel on the far right.

It contains pretty much all the very basic things an editor should contain (except from undo/redo mechanism): you can click on a node and move it around, change its properties (position, scale, alpha) as well as the properties of each component it contains.

But one of the big thing I wanted to show here is the DynamicMaterial that I just added into ND2Dx and which allows you to easily create your own shaders and edit its constants right into the editor (just like Unity in fact)
You can see it in the properties panel, under the Mesh2D Renderer Component.

There will be different ways of using a custom shader, the simplest of all is by using a xml that looks like this:

You’ll notice a “properties” node that represents all the textures and constants the DynamicMaterial will send to the GPU with the shader data. The cool thing about it is that you will be able to edit those properties straight from the editor.
What you can see on the screenshot is sort of a displacement map shader that uses a texture (the 2nd one) to displace another texture (the 1st one). A couple of constants are used to change the level of displacement (“Fade”) as well as to animate the displacement from bottom to top (“Speed”).

Currently I’m implementing the panels that will allow you to manage your animated textures as well as your bitmap fonts.

And also… I’ve made a lot of changes in ND2Dx: DynamicMaterial and a resource based system: textures, shaders, atlases, animated textures, … all of them are now a sub type of a “resource” and can be loaded via different manners (straight from code, via a remote url or file, …) allowing (for example) for streaming and managing them more easily and in a centralized way (ex: a scene doesn’t need some resources that another scene was using: simply unload them and reload them when you need it)