ABOUT \ EMAIL \ TWITTER \ RSS \ ARCHIVE
Vector Graphics - Part 1, Intro

Over the weekend I decided to start the research stages of a hobby project.  By the end of the day on Sunday, after collecting a ton of data and brainstorming exactly what I wanted to do, even writing a post that I decided not to publish, which outlined many of the goals for the project, I was overwhelmed and disenchanted.  What I wanted to do, the amount of time and effort was just daunting; way too much work for one man to tackle, on the weekends.

Come Monday, sitting at my desk, I gained some optimism for the project.  My mistake was that I was trying to fit the entire turkey in my mouth at once and it just lead to me choking on it.  What I needed to do was carve it up and take it one piece at a time.  Maybe rip off a leg and start gnawing away at it.  Don’t even think about the rest of the bird until you have finished that first leg.

So, the first leg is going to be vector graphics research, starting with SVG, Scalable Vector Graphics.  SVG is a standard defined by W3C, the World Wide Web Consortium.  Here’s the briefing:

SVG is a language for describing two-dimensional graphics and graphical applications in XML. SVG 1.1 is a W3C Recommendation and forms the core of the current SVG developments. SVG Tiny 1.2 is the specification currently being developed as the core of the SVG 1.2 language (comments welcome). The SVG Mobile Profiles: SVG Basic and SVG Tiny are targeted to resource-limited devices and are part of the 3GPP platform for third generation mobile phones. SVG Print is a set of guidelines to produce final-form documents in XML suitable for archiving and printing.

Being a W3C standard, it has web development in mind.  However, I’m looking to use it to define 2D graphic resources in a game engine.  Being XML, it can be easily parsed and interpreted in any environment, on any platform, all you need to do is write the parser and the engine to interpret the different Vector pieces and manipulations.

So, that’s going to be my first step with this pet project of mine.  Right now I’m reading through the SVG documentation, attempting to become an “expert” on the subject, or at least get an idea of what it’s all about.  After I feel comfortable with the standard I plan to start working on the parser and interpreter.  I need to create a basic windows application in order to test and debug the interpreters output.  So, I’m currently researching this as well.  There’s several ways I can take this.  Qt? wxWidgets? Java? C# .NET?  The last two are probably eliminated as Java and C# are the languages that I spent the most time in the last 3 years.  I’m either looking to get back to doing some C/C++ or trying something different, maybe Python.  We’ll see.

I’m going to make this a mini-series of posts on Vector Graphics and my development.  So, the next post will have more information and opinions on the SVG standards and where the research took me.

Update

This side project idea is fizzling for me.  For one, I’m pretty swamped, but the other reason why I have lost some motivation is that I’m finding a lack of forward progress in vector graphics at this time.  Other than Flash, the rest of the vector graphics efforts are being pursued half-heartedly at best.  Maybe I’ll pick it back up a few months down the line, at that time maybe there will be some better support for things like OpenVG and the SVG standard at that time.  I was hoping to rely on open standards to create a vector graphic game engine, not actually have to implement these standards myself.  Don’t get me wrong, I would love to tackle implementing APIs for all my needs, but as with most of the world, who has the time to do everything by themselves.  If you were searching the web for Vector Graphics and it lead you to this post, check out this question I posted on Stackoverflow.com.  For how short the list seems, it is pretty comprehensive at the time of this post.