Plans for Sprite Vortex

Nov 9, 2010 at 10:30 AM
Edited Nov 9, 2010 at 11:08 AM

Hey Rafael!

How is it going? What is plans for Sprite Vortex development? I like it very much but it will be unuseful until some good export format will be implemented. Please do not leave your project, it is very close to be a really great tool!

BTW, I'm going to start working on Vortex engine these days and there are a lot of improvments are coming!

P.S. It would be great to put some texture samples into your downloads.

Nov 9, 2010 at 10:57 PM
Edited Nov 9, 2010 at 10:58 PM

Hey i saw that you came back ! I've been involved with other projects but i didn't forget Sprite Vortex ! I'll come back to it i've just been a bit mentally blocked these days . I have to make some modifications before i begin implementing an export format model to import directly  in the engine. My idea is to export a file.sprite or something like that , that have texture or textures, and xml definition inside. This file may be a simple zip. Next step would be making importers for Vortex and XNA. What do you think ?

Nov 10, 2010 at 1:17 AM
Edited Nov 10, 2010 at 1:35 AM


I love your tool, currently i'm developing a little game and my artist is very interested in use your tool.

Do you have plans to support other texture formats ?

Can you add to XML file format, a file_name attribute, without the complete path? I belive it can be very useful to people that work in different computers.

In my xml file, the float decimals appear with the european separator "," (I'm spanish), are you using the System.Globalization to save the floats? Be careful, in Xbox 360 and WP7 is a source of problem if you don't use the serialiazer.

In any case, congratulations for the tool!

Nov 10, 2010 at 2:18 AM

Thanks for your interest ! 

About texture formats you mean image formats ? Right now it reads PNG , JPG, GIF and BMP files and saves as PNG . It isn't good enough yet , and the program uses alpha channel to cut sprites. Since PNG is one of the best formats when dealing with transparency i made it so it converts to PNG internally. But this process is not perfect , i have to look into this.

About the XML file i'll see about the file path and the decimals. Right now i'm not using System.Globalization since i didn't even know about it when i wrote the code. I'll fix this too . Thanks.

Nov 10, 2010 at 7:23 AM

I guess the best step forward for export format will be really simple XML format without bundling into special file. Vortex2D.NET is going to support resource bundling soon. It has Vortex.IO.ResourceFile which works transparently with file system, assembly embedded resources and will work with resource package files as well (it means multiple XML and textures can be bundled into one file).

I'd like to have relative image path (relative to XML file location) in document. Also it would be great to have options to sprite/animation names in XML.

In Vortex/XNA you just do something like this:

AnimationCollection collection = new AnimationCollection("sprite_vortex.xml");

Animation animation = collection["myAnimation"];


Sprite sprite = animation.CurrentSprite;

The other, very desired moment - an ability to save separate sprite layout and names. Having this functionality will really simplify life of developers. In this case SpriteVortex will be best tool ever for wide specter of game developers.

Sprite sprite = collection.Sprites["mySprite"];

Lets discuss it more when you come back SpriteVortex dev.

Nov 10, 2010 at 2:10 PM

Great ideas thnx. Hum relative image path , ok.  For better understanding could you post an simple example XML with the format that you described ? Just that i can get what you mean by the separate sprite layout. I'll resume dev on Sprite Vortex today , now i'm motivated : )

Nov 10, 2010 at 2:28 PM

Okay, let me put format of XML a bit later.. from home.

'Separate sprite layout': currently you have a good tool for markup sprites, but primary aim is creating animation sequences from these sprites. It is pretty good. But game assets also consist of single sprites, simple sprite sequences which are used for GUI, icons etc. I guess adding functionality to export individual sprite position, size together with animations will be a good step forward.

Nov 10, 2010 at 2:42 PM

Ok i see now. I'll make some refactoring and change some things on other parts and then i'll see this.

Nov 10, 2010 at 8:26 PM
Edited Nov 10, 2010 at 8:27 PM

I meant something like that:


<?xml version="1.0" encoding="utf-8"?>
	<Texture File="PNG\OOCL3.png">
		<Animation Name="Animation 0" FrameRate="20" Loop="True" PingPong="False">
		  <Frame Num="0" X="59" Y="167" Width="89" Height="63" OffSetX="0" OffSetY="0" Duration="0,05" />
		  <Frame Num="1" X="67" Y="25" Width="111" Height="95" OffSetX="0" OffSetY="0" Duration="0,05" />
		  <Frame Num="2" X="183" Y="154" Width="67" Height="65" OffSetX="0" OffSetY="0" Duration="0,05" />
		<Sprite Name="spriteName" X="183" Y="154" Width="67" Height="65" OffSetX="0" OffSetY="0" />


Please think about how it can be built into your tool?..

Also I'm thinking about more global resource tool, which includes SpriteVortex functionality: different options for assembling/markup textures, sprites, sprite collections, animations, shaders, audio etc... But it is 3 month project and I'm not sure is it worth even start it.

Nov 10, 2010 at 11:11 PM

This format looks good. Right now all frames of Sprite Vortex are Sprites of a  Texture, where each animation is composed of sprites of a single texture since multiple textures doesn't make much sense, don't know. The sprites are not named they have only an internal ID. I could put an option to name frames , would it be good that way ? The XML could stay like you described or put an atribute "name" in each frame.



Nov 18, 2010 at 2:07 PM

All done ! New version is out

Nov 30, 2010 at 8:01 PM

Great Rafael. It's a great job and a great tool.

I believe that you can improve the tool adding the parameter "Filename" to the "Texture" tag. Maybe it's a redundant info but it's so useful to great teams that works with differents paths. I propose something like that:

<Texture Path="PNG\OOCL3.png" Filename="OOCL3.png"/>

I want to ask you too, if you have plans to add a button to load your XMLs with the tool. We need this feature to use the tool and, if you need help to develop sprite vortex, I can help you if you want.

Nov 30, 2010 at 8:14 PM

Hey, thanks :) Ok i'll add Filename for texture : )

About the XML load yes i do plan to add it. It will be in 1.3 . 

I gladly accept any help to keep improving Sprite Vortex! Your suggestions and Alex's were and are being invaluable to me, thanks, so keep em coming ! :D

Nov 30, 2010 at 8:38 PM

Thanks to you for the tool.

I have experience in videogame and software development. If you want, I can help you to fix the bugs.

When you'll release the 1.3 version we'll start to use the tool. Good luck!

Nov 30, 2010 at 9:53 PM

OK, thanks : ) 

Dec 1, 2010 at 5:49 PM

Hey guys, on my thinking about the best way to implement the XML loading on the app i came with this new and unified format for the animation XML what do you think ? 


	<Texture Path="Data\Megaman.png" Name="Megaman.png" >
		<Sprite Name="Sprite1" Id="1">
		<Animation Name="Idle" FrameRate="20" Loop="True" PingPong="False">
				<Frame SpriteID="1" OffSetX="0" OffSetY="0" Duration="1" />

Dec 1, 2010 at 6:40 PM

Rafael, this XML format is really great! Lets do it! I'll include it in Vortex just after it will be complete!

But one thing you missed: close <Texture> tag.. is it wrapping <Sprites> and <Animations> ?

Dec 1, 2010 at 7:06 PM
Oh, yeah it's like this , thanks: 
<Texture Path="Data\Megaman.png" Name="Megaman.png" /> 

Great than i'll change the format. And about the SpriteMap only export ? 
Do i keep it or remove it away because with this new format you can also reference individual sprites. What do you think ?
Dec 1, 2010 at 7:56 PM

This new format contains everything user need. I think usage in client code will look like this: 

SpriteSheet sheet = new SpriteSheet("spritesheet.xml");
Texture sheetTexture = sheet.Texture;
Sprite sprite = sheet.Sprites[1]; //get by id
Sprite sprite2 = sheet.Sprites["name"]; //get by name
Animation anim1= sheet.Animations["animName"]; //get by name

Dec 1, 2010 at 8:02 PM

Yeah i asked because there's two  main use cases : 

1. You want to reference individual sprites  on spritesheet(use as a resource asset or something)

2. You just want to make character animations

So the way you described seems good to this purpose

Dec 1, 2010 at 8:06 PM

Yep, until both of main purposes are simple it is better to keep it in one file. Waiting for new format. Going to add it as demos in new release!

Dec 1, 2010 at 8:47 PM

ok i have now it all planned ... it will be over soon : )

Dec 1, 2010 at 9:23 PM

The new XML format is much better, congratulations.