Introducing XEdit2D


For some XNA experiments of mine, I wanted to generate the XML asset files automatically and so I started exploring different possibilities. After searching for a while, both paid solutions like TorqueX 2D or freely available ones, I was quite unhappy with the solutions out there. So, I decided to start working on my own. This is how XEdit2D started, and then became my first published open source project.

My ideas were simple: import images, transform them into animations or tilesets, combine animations into a character sheet, use tilesets as starting point for a map editor. Now, making choices for the interface was not as simple. I want the user to be able to do many things and at the same time have a simple interface. The first attempt can be seen above. 




So, there is an image tab, the user can load images into an image list and see them as thumbnails. One or more images will be selected and can be transformed into animations. After choosing how many frames are there per image, each image will be transformed into an animation and displayed into the Animations tab. A similar workflow would be followed to add animations to a character.

After doing this I had an interesting idea: why would I use a traditional interface (image lists, toolbars, icons and tabs) when I could do much better than that?! I think a more visual interface could be more useful and fun at the same time. So I started shifting my ideas towards a Diagram-like interface (something similar to a UML editor), where the user would build a graph and connect nodes to build and combine data.

I started working on it and what came out can be seen below:

I think this is a much better design, since each node would be a standalone UserControl and the main Diagram manager would handle them and the connections between them. The nodes can contain all the functionality to process inputs and offer subcontrols to see the data and interact with it.

I still need to figure out some issues with the design, such as: how to fit more animations inside a single node or how to add functionality (like an option panel) to arrows. I will post a demo video later about it. For now the project can be found on google code at:

Note: the sprite images used in the screenshots above can be found and bought here: