I haven't got illustrator - but the example SVG file loaded fine in Inkscape, combining this with "render to texture" would make for a game with potentially a really small download size that could actually render out game assets at any resolution the first time it was run.
Instant solution to retina display problems!
Please @Atilim add Render to texture to the feature list / roadmap
WhiteTree Games - Home, home on the web, where the bits and bytes they do play! #MakeABetterGame! "Never give up, Never NEVER give up!" - Winston Churchill
WhiteTree Games - Home, home on the web, where the bits and bytes they do play! #MakeABetterGame! "Never give up, Never NEVER give up!" - Winston Churchill
I hope I understand correctly.. Do you mean Gideros Illustrator vs. Gideros Shape class?
Theoretically not. - because SvgParser calls different classes (which call also classes and also load their own methods) this raises memory usage, of course. On the other hand you don't have this easy access to Gideros drawing abilities! PS: using classes alway increase the memory usage
Owltwins. Smart design and creative code. »Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
Loading on real devices is also reasonably fast too. The sample scene loads instantaneously on iPad 3 and takes about a second on iPad 1. Your demo video show a delay before the scene appears which might make people think that the parsing is slower than it really is. However, I wonder if saving out the vectors in a simpler pre-parsed format (rather than XML) might allow subsequent starts to be even faster (or as @techdojo says, you could use textures when render to texture is implemented).
I tried modifying the sample SVG file in InkScape and, although the scene loads, all the elements that I moved don't appear correctly in the Gideros Player. I think it must be a scaling issue since the moved elements that I could still see were a larger size.
I suspect you may receive more attention (and donations) if you can make Gideros Illustrator work with InkScape files too. Far more people will have access to this free SVG creator compare with AI (myself included). Regardless, I've sent you a small donation to encourage you to keep up the good work.
@bowerandy The delay in the video comes from ScreenFlow (video capture), but I work constantly on speedup's anyways! - You have to be patient, since it's an early alpha preview I have a lot plans and great ideas.
Also, I plan to support Inkscape at a certain point. For now, exporting with Inkscape is not a big deal at all. Also parsing its svg's doesn't take so much effort to integrate, but Inkscape doesn't include the layer names as group id's, which is a pity. Illustrator does this far more comfortable. Inkscape has its own format. But I'll handle this - you'll see! just keep supporting, donate, spread, review, twitter - and let me do the rest for you
Thank you very much for your ideas and suggestions, they are really appreciated! Every tip on marketing strategy is warmly welcome, too ^.^
I tried modifying the sample SVG file in InkScape and, although the scene loads, all the elements that I moved don't appear correctly in the Gideros Player. I think it must be a scaling issue since the moved elements that I could still see were a larger size.
For fun, I did the same thing and looking at the differences in the svg files, the inkscape svg file uses x,y,width,height attributes, while the adobe illustrator file uses the transform attribute. jack0088's parser only looks at the transform attribute (which is missing in the inkscape file) so it winds up using the default matrix transform (i.e., everything at position 0,0 w/ no scaling). Just playing around I made the following patch to the svg file just to see if that would fix it and it seemed to ...
--- SvgParser.lua 2012-04-17 03:27:20.000000000 -0400
+++ modified/SvgParser.lua 2012-04-18 00:10:52.980648013 -0400
t.Attributes.transform["tx"],
t.Attributes.transform["ty"])
-
+ elseif t.Attributes.x and t.Attributes.y then
+ matrix:setElements(1,0,0,1,t.Attributes.x,t.Attributes.y)end
obj = Bitmap.new( img )-- override obj (from Primitive to Bitmap)
+ if t.Attributes.height then matrix:setM22(t.Attributes.height/obj:getHeight())end
+ if t.Attributes.width then matrix:setM11(t.Attributes.width/obj:getWidth())end
obj:setMatrix( matrix )-- Matrixend
@Magnusviri Inkscape has a good feature (which Illustrator doesn't have) and this is the possibility to edit the svg/xml tree directly inside the editor. I have another idea of integrating it. There isn't just one way of doing it. Besides, I love Illustrator's interface and the usability far more.
The big question on supporting it is how much is needed to know that it will be finished?
What should a user hear/see, to know/believe that it will be finished? - What do you think? Any comments on that question are welcome. I think supporting isn't just about promising and believing. It's about helping people in need - in all conscience. Also a way of showing that you like something and tell to continue the work
I second the idea of having a "simpler" format - maybe even output the data as a JSON file, that way you (or others) could provide a converter for different file formats to your own custom format.
I did a similar thing way back when I wrote a little app that converted windows .wmf meta files to a source code format that I then was able to use as a data table in a flash project - essentially giving me a way to render .wmf objects in flash.
WhiteTree Games - Home, home on the web, where the bits and bytes they do play! #MakeABetterGame! "Never give up, Never NEVER give up!" - Winston Churchill
I like the idea to provide a "standard" format for Gideros Illustrator in order to be able to write converter-classes which handle all sorts of other formats (inkscape.svg, illustrator.svg - later, maybe also the native file formats like illustrator.ai...).
Cool. Thanks for the fresh ideas. Sometimes I miss the forest for the trees :-D
Owltwins. Smart design and creative code. »Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
WhiteTree Games - Home, home on the web, where the bits and bytes they do play! #MakeABetterGame! "Never give up, Never NEVER give up!" - Winston Churchill
@OZApps, good review. But why do you say "current version of GiderosStudio does not have the new iPad resolution to test with as yet"? I thought the retina resolution worked fine on the New iPad?
@jack088, you might want to consider what the distinguishing features are/will be between GI (Gideros Illustrator) and SVG Level Builder. To be honest, before I looked at GI, I hadn't tried SVGLB because I thought it was mainly targeted towards physics and I have no need of that right now. Also, I had assumed that it was a code generator running on the desktop and emitting a Lua code file to describe a scene/physics layout. However now, having purchased SVGLB too, I see that it is very similar to your GI in the way it works dynamically at runtime.
The main differences between the two tools right now appear to be:
1) GI is free but you'd like to receive donations. SVGLB is $40 with a proposed price rise to $130 in future. 2) GI uses Adobe Illustrator while SVGLB uses Inkscape. This is an interesting divergence since, presumably, someone who could afford AI could also afford to pay more than a few dollars for a layout tool. 3) SVGLB has physics and animation extensions now. These are proposed for GI but not available yet. 4) GI seems easier to uses as a pure layout tool since you can directly see your image graphics in place without setting properties. I'm using GI for this right now (having just acquire a trial version of Adobe Illustrator) since I like to be be able to see the true appearance of my screens.
If you are going to go ahead with your KickStarter campaign you might want to consider how you can differentiate GI more from SVGLB, otherwise it might be a hard sell. I'm not trying to be negative - I actually prefer GI for what I'm doing right now, but when/if you add physics to the product the two tools will look very similar, I think.
One suggestion might be to concentrate on the dynamic generation of resolution independent assets as has been suggested by @techdojo and @OSapps above. You might need an intermediate format to speed up subsequent loads; perhaps you could generate Lua code (the way I *thought* SVGLB worked before I bought it) that could be run via LoadString() to build a scene. I imagine this use of LoadString() would be acceptable to Apple providing you don't load code from outside the sandbox.
I didn't/don't want to compete with SVG Level Builder at all - but I was also aware of its similar functionality. Also, when I first started to code it, it was more an experiment, but at some point I decided to share the alpha.
@bowerandy You are right, I have to specify/form/build one or more strengths that are different from SVG Level Builder. Your idea of resolution independent assets sounds good, but isn't SVG-LB doing the same, since it works with svg either. (I assume he draws the shapes from svg through Gideros Shape class and adds physics properties to them.)
I have to think about which format I want to use and how I want to load it, to maybe provide a more dynamic loading and memory management/use.
Owltwins. Smart design and creative code. »Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
Thanks @OZapps for your review. I hadn't ever thought about the file size benefit of using something like this. Somehow I'd always thought of them as just being easy ways to lay out your screen and so on, so paid little attention. Not now
And thanks @jack088 for making this available to try. I'm going to give it a go. I'll also try it with a SVG exported from Xara (which bizarrely will export SVGs but not import them) as that's the drawing package I normally use.
@petec, glad that you could think of another reason for using it. However the problem with SVG is the same as an XML document, each is it's own format, so Inkscape has a different format to AI and I believe the same might be true for Xara, so you might want to check out the compatibility.
2) GI uses Adobe Illustrator while SVGLB uses Inkscape. This is an interesting divergence since, presumably, someone who could afford AI could also afford to pay more than a few dollars for a layout tool.
It's not about the cost of the Adobe's editor or Gideros Illustrator. Also I have not intended to attract people with more money in their pockets. - Honestly said, I wouldn't charge anything, when I had already some money to sit at home and make what I love - but since I need to pay my bills and the maintenance for G.I. ...
My intend was to create a bridge between my favorite editor and my Gideros apps - with the hope, it could help others as well and enhance my&their workflow and make life easier. Also I badly wanted to have an easier access to drawing capabilities of Gideros, since I don't like to write endless lines of the same lineTo and moveTo statements (repetitive code).
I'm not trying to be negative - I actually prefer GI for what I'm doing right now,...
I know, and I very appreciate every of your comments!
Owltwins. Smart design and creative code. »Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
As @bowerandy and @techdojo suggested: I have to implement a "native" exchange-format first, to allow plugins, which will be extending Gideros Illustrator's capabilities to read different files from different graphical editors. You'll have to wait a little...
@bowerandy, @techdojo: any suggestions how to make the integration? My basic idea would be: 1. Each editor (Illustrator, Inkscape,...) has its own Class, which parses the exported file of this editor and returns a lua (or JSON) table with necessary data for Gideros Illustrator. I think there is no need to write this data into a separate file, since I have to parse the svg file each time again anyways, because the user could edit it and the data would change.
2. To load the scene, the app's main.lua must then decide which Class to call (Illustrator, Inkscape,..) in order to reach the right parser. To provide this functionality I would provide a function with two arguments: the class(-name) to load, and the scene-file.svg Example: SvgParser( "Illustrator", "level1.svg")
If no class-name is passed, but only the scene.svg, then the SvgParser tries to find something in the node, which is similar to a header, to identify from which editor this file could be - and then call its Class to parse the data, if this class is present.
I hope you understand my idea of doing it. All recommendations and suggestions are welcome.
Owltwins. Smart design and creative code. »Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
@jack0088, my observation that Xara SVG is incompatible was just reporting the outcome of an idle test out of interest and not a request for Xara to be supported. I suspect that the use of Xara is very minority.
I've got AI so can use that to play with - it's just that AI is not my favourite drawing tool as I am much more familiar with Xara having started with it after a £1 buy at a boot sale that was so long ago it was called Corel Xara.
Comments
Instant solution to retina display problems!
Please @Atilim add Render to texture to the feature list / roadmap
Likes: jack0088, phongtt, ndoss, atilim
#MakeABetterGame! "Never give up, Never NEVER give up!" - Winston Churchill
@techdojo you're right. it's one of the most important features. I'm adding it right now.
Likes: phongtt, techdojo, GregBUG, jack0088, ndoss
@techdojo great suggestion, this would be very useful
»Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
Likes: jack0088
#MakeABetterGame! "Never give up, Never NEVER give up!" - Winston Churchill
does the end result run as fast as if you placed everything on screen yourself?
Theoretically not. - because SvgParser calls different classes (which call also classes and also load their own methods) this raises memory usage, of course.
On the other hand you don't have this easy access to Gideros drawing abilities! PS: using classes alway increase the memory usage
»Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
Loading on real devices is also reasonably fast too. The sample scene loads instantaneously on iPad 3 and takes about a second on iPad 1. Your demo video show a delay before the scene appears which might make people think that the parsing is slower than it really is. However, I wonder if saving out the vectors in a simpler pre-parsed format (rather than XML) might allow subsequent starts to be even faster (or as @techdojo says, you could use textures when render to texture is implemented).
I tried modifying the sample SVG file in InkScape and, although the scene loads, all the elements that I moved don't appear correctly in the Gideros Player. I think it must be a scaling issue since the moved elements that I could still see were a larger size.
I suspect you may receive more attention (and donations) if you can make Gideros Illustrator work with InkScape files too. Far more people will have access to this free SVG creator compare with AI (myself included). Regardless, I've sent you a small donation to encourage you to keep up the good work.
Best regards
Likes: jack0088
Likes: jack0088
Also, I plan to support Inkscape at a certain point. For now, exporting with Inkscape is not a big deal at all. Also parsing its svg's doesn't take so much effort to integrate, but Inkscape doesn't include the layer names as group id's, which is a pity. Illustrator does this far more comfortable. Inkscape has its own format. But I'll handle this - you'll see! just keep supporting, donate, spread, review, twitter - and let me do the rest for you
Thank you very much for your ideas and suggestions, they are really appreciated! Every tip on marketing strategy is warmly welcome, too ^.^
Likes: avo, OZApps
»Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
Those who know InkScape, is it just a vector graphics editor like Illustrator, or does it have more game integration like adding physical properties?
The big question on supporting it is how much is needed to know that it will be finished? This sounds like a job for KickStarter.com.
My apps: http://www.yummyyellow.com
I think supporting isn't just about promising and believing. It's about helping people in need - in all conscience. Also a way of showing that you like something and tell to continue the work Do you think I should try?
---
PS: *VOTE!* Say what you think.
»Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
I did a similar thing way back when I wrote a little app that converted windows .wmf meta files to a source code format that I then was able to use as a data table in a flash project - essentially giving me a way to render .wmf objects in flash.
Likes: jack0088
#MakeABetterGame! "Never give up, Never NEVER give up!" - Winston Churchill
Cool. Thanks for the fresh ideas. Sometimes I miss the forest for the trees :-D
»Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
Likes: pmanna
»Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
#MakeABetterGame! "Never give up, Never NEVER give up!" - Winston Churchill
»Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
Likes: jack0088
Author of Learn Lua for iOS Game Development from Apress ( http://www.apress.com/9781430246626 )
Cool Vizify Profile at https://www.vizify.com/oz-apps
@OZApps :-D :-D :-D so glad, thank you!
»Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
@jack088, you might want to consider what the distinguishing features are/will be between GI (Gideros Illustrator) and SVG Level Builder. To be honest, before I looked at GI, I hadn't tried SVGLB because I thought it was mainly targeted towards physics and I have no need of that right now. Also, I had assumed that it was a code generator running on the desktop and emitting a Lua code file to describe a scene/physics layout. However now, having purchased SVGLB too, I see that it is very similar to your GI in the way it works dynamically at runtime.
The main differences between the two tools right now appear to be:
1) GI is free but you'd like to receive donations. SVGLB is $40 with a proposed price rise to $130 in future.
2) GI uses Adobe Illustrator while SVGLB uses Inkscape. This is an interesting divergence since, presumably, someone who could afford AI could also afford to pay more than a few dollars for a layout tool.
3) SVGLB has physics and animation extensions now. These are proposed for GI but not available yet.
4) GI seems easier to uses as a pure layout tool since you can directly see your image graphics in place without setting properties. I'm using GI for this right now (having just acquire a trial version of Adobe Illustrator) since I like to be be able to see the true appearance of my screens.
If you are going to go ahead with your KickStarter campaign you might want to consider how you can differentiate GI more from SVGLB, otherwise it might be a hard sell. I'm not trying to be negative - I actually prefer GI for what I'm doing right now, but when/if you add physics to the product the two tools will look very similar, I think.
One suggestion might be to concentrate on the dynamic generation of resolution independent assets as has been suggested by @techdojo and @OSapps above. You might need an intermediate format to speed up subsequent loads; perhaps you could generate Lua code (the way I *thought* SVGLB worked before I bought it) that could be run via LoadString() to build a scene. I imagine this use of LoadString() would be acceptable to Apple providing you don't load code from outside the sandbox.
HTH
@bowerandy You are right, I have to specify/form/build one or more strengths that are different from SVG Level Builder. Your idea of resolution independent assets sounds good, but isn't SVG-LB doing the same, since it works with svg either. (I assume he draws the shapes from svg through Gideros Shape class and adds physics properties to them.)
I have to think about which format I want to use and how I want to load it, to maybe provide a more dynamic loading and memory management/use.
»Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
And thanks @jack088 for making this available to try. I'm going to give it a go. I'll also try it with a SVG exported from Xara (which bizarrely will export SVGs but not import them) as that's the drawing package I normally use.
Author of Learn Lua for iOS Game Development from Apress ( http://www.apress.com/9781430246626 )
Cool Vizify Profile at https://www.vizify.com/oz-apps
My intend was to create a bridge between my favorite editor and my Gideros apps - with the hope, it could help others as well and enhance my&their workflow and make life easier.
Also I badly wanted to have an easier access to drawing capabilities of Gideros, since I don't like to write endless lines of the same lineTo and moveTo statements (repetitive code). I know, and I very appreciate every of your comments!
»Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
@bowerandy, @techdojo: any suggestions how to make the integration? My basic idea would be:
1. Each editor (Illustrator, Inkscape,...) has its own Class, which parses the exported file of this editor and returns a lua (or JSON) table with necessary data for Gideros Illustrator. I think there is no need to write this data into a separate file, since I have to parse the svg file each time again anyways, because the user could edit it and the data would change.
2. To load the scene, the app's main.lua must then decide which Class to call (Illustrator, Inkscape,..) in order to reach the right parser. To provide this functionality I would provide a function with two arguments: the class(-name) to load, and the scene-file.svg
Example: SvgParser( "Illustrator", "level1.svg")
If no class-name is passed, but only the scene.svg, then the SvgParser tries to find something in the node, which is similar to a header, to identify from which editor this file could be - and then call its Class to parse the data, if this class is present.
I hope you understand my idea of doing it. All recommendations and suggestions are welcome.
»Gideros Illustrator« - [svg|xml] scene designer using Adobe Illustrator®™ Within one line of code!
I've got AI so can use that to play with - it's just that AI is not my favourite drawing tool as I am much more familiar with Xara having started with it after a £1 buy at a boot sale that was so long ago it was called Corel Xara.