I took the time yesterday to record a small video of the current state of the Game & App editor for Stage3D I’m working on at the moment.
The framerate is poor (old computer) but you’ll get the idea. Also it doesn’t look very professional, it took me some time (too much) to figure out a couple of things and also solve a couple of “dropped frames” issues with Premiere… all of that made me do it as fast as I could.
But let’s get to business.
This is a video of a very early alpha stage of WorldGameMaker. I’m currently in the process of re building it. I had a quite stable version before this one but as the architecture of ND2Dx has changed quite a lot, I had to rethink the way the editor manages its resources, the nodes and the components. Also, I changed the file format from xml to a byte format as it is much smaller and faster to load (especially on mobile devices).
Why Flash ?
Well, because I think it is the best, most mature and features packed multiplatform tool at the moment. Stage3D offers a quite decent performance boost on desktop and mobiles.
Why not HTML ?
I need to concentrate on one platform but I do really keep HTML in my mind. I’ll just see how things evolve as I would really like to keep flash as its main target.
And Haxe ?
Also thinking about this one but I think more people are still into AS3 at the moment.
If you’re not familiar with the notion of “component” then I’ll quickly explain what it does.
ND2Dx, the framework this editor is based on, uses components to add “behaviors” to objects.
The most basic object of all in ND2Dx is a Node2D. It renders nothing on screen and does nothing more than holding data representing its color, position, transformation, association to a parent and a list of children (other nodes).
In order to render something on screen, we need to add a special behavior to a node (Node2D object) that will take care of that feature. It is handled by a component (TextureMeshRendererComponent in that case) that uses the position, transformations and color data of its parent node to render the desired texture and mesh on screen.
A node can contain any number of components. A component can do anything: AI, physics, render something on screen, record something, move objects, etc… and the same component can be added as many times as you want on a same node.
This is a much more flexible approach than having objects extending other objects as we only add the exact bits of behaviors that we need, no more, no less.
And as for the performance of such an approach, you can check this link or this older performance benchmark (keep in mind that the current version of ND2Dx is faster than the performance showed in that last link), it clearly shows that it can be very efficient.
In this video, you’ll see
- how the editor looks like so far
- how a scene and its nodes are managed
- the properties panel/inspector
- the resource panel
- how to create a node and add it to the scene
- how to load a texture and its atlas
- how to add a component to a node
- make a node show something with a component and a texture
- how to load a font style xml and use it to render bitmap fonts (with a component)
- how to make an animated texture and render it
- how to add several components to a node
Features to come
- a very flexible GUI system (with scale3, scale9 and scale5 textures)
- a custom mesh renderer
- a custom mesh editor
Thanks for watching !