nd2dx_on_github

ND2Dx on GitHub

1 Flares Twitter 0 Facebook 0 Google+ 0 Pin It Share 1 Email -- Filament.io 1 Flares ×

Hello,

this simple post for announcing that ND2Dx is now available on GitHub: https://github.com/NoRabbit/ND2Dx.
It is still in its very early stages but I’m already using it in professional productions.

A couple of concepts to grasp in order to understand how ND2Dx works:

  • Uses linked list for node traversal: increases speed (from Rolf)
  • A node (Node2D) doesn’t render anything anymore, you need to use instead a Mesh2DRendererComponent component.
  • Component system: add functionalities via components by attaching them to any Node2D (more flexible, increase re-usability and structure of code).
  • Mesh2DRendererComponent: component that is necessary for rendering a mesh on screen (it takes a material and a mesh and can be extended to create more complex renderer (post processing effects, particles, …).
  • Mesh2D: object that holds the vertex data. Can now be reused for every object that requires the same data (less memory usage)
  • Materials: holds the shaders data and is responsible for rendering (except for batching) (can be extended to hold other kind of data like a Texture2D -> Texture2DMaterial). I tried to make it reusable for every object that needs to render the same thing on screen but it kind of gets complicated as sometimes a node can be affected by the material (Texture2DMaterial sets the original width and height of the node it is attached to)
  • Unified Textures: Texture2D is still a texture but can also be an atlas (and can contain other atlases -> kind of recursive)
  • Use of a RenderSupport object for rendering (allows for more flexible and simplified batchings techniques).
  • Finite State Machine: structure logic into states composed of actions (increase structured code, flexibility and re-usability).
  • Simplified creation of Atlas and animated textures.

Other things I’m working on at the moment:

  • improving a couple of things here and there. I’m still not sure if I should add a way of using batching anywhere we want or if it should be left to the developer to decide…
  • Removing / adding unnecessary things that I forgot from the old ND2D.
  • An animation system.
  • An IDE for editing scenes and all its objects just like in Flash (codenamed WorldGameMaker)
WorldGameMaker (ND2Dx IDE)

Screenshot of the current version of WorldGameMaker, an IDE for ND2D.

Above is a screenshot of the current state of WorldGameMaker, an IDE that I coded a couple of years ago (I think) for a big project (SoundQuest for Sony Mobile – check the link for more information and screenshots of WorldGameMaker). It is build upon a modified version of ND2D. That screenshot was actually taken from another project I worked on but which got canceled 1 week after its release (we’ll never know why… it was for a bank… ;))

You can see the animation system at the bottom of the screenshot and a couple of other windows that allow you to edit object properties, assets, textures and animated textures.

I intent to modify it in order to make it run with ND2Dx.

That’s it for the news. Have a good day.

 

1 Flares Twitter 0 Facebook 0 Google+ 0 Pin It Share 1 Email -- Filament.io 1 Flares ×

2 Comments

  1. Diego

    Great job, thanks.

  2. Paul Ollivier

    Amazing

Leave a Comment