Inkscape to the rescue!

You know what, after starting to write a simple editor to be used before the proper animation editor gets finished (not anytime soon..), I started to think – what am I doing? Why to make a crappy editor, while I could use something else to do the job, and way better (yet I hope and believe that the custom made editor will be the most comfortable way of creating the animations).

Once again, Inkscape proved its worth. SVG was relatively easy to parse (except the damn transformation matrix – I wasted hours searching for clues how to decompose the original scaling and rotation from the matrix, finally got it working though..), and the Inkscape layers turned nicely into animation key frames. It requires quite a lot of patience, and my conversion tool is dodgy to say the least, but it will enable the creation of animations for PolyAnim!

So I wasted more hours, and created the very first proper PolyAnim animation, in Inkscape. After seeing the animated dude moving on the screen, I felt very pleased about how it all turned out. :) Rare moments, those. Hell, I even made a video to celebrate the event! ;) In case anyone would want to try the Inkscape route, I also wrote a tutorial about it.

Check out this screen shot from the demo, and compare it to the earlier shot a post or two back.. The biggest dude is the original, the others are rendered using the various render modifiers.

PolyAnim progress..

Well, I've made a logo. See? ;)

Okay, there's a bit more. The core library itself is in (somewhat arbitary) versi0n 0.5. Most of the important functionality is in there already. Anchors and different blending modes are still missing. Read more about the current state of features here.

There's still a big mystery in this project, for I have no idea if the code is fast enough for the intended usage (which is game sprites)! The tests I have made are composed only of a few polygons, which is not very demanding.. Therefore I've started the work on the animation editor, using Qt Jambi. But alas, I have bumped into a severe bug, which unfortunately crashes the Java VM. While waiting for that to be solved (the bug fix is scheduled for the next Qt Jambi patch release), I'm wondering what I'm going to do in the mean time.

Should I hack a quick and dirty editor in Swing? Or work on the other (unimportant) parts of the real editor? Implement more features to the library? I don't know, I'd rather not add more stuff to the lib, because in that case the editor's going to have a lot of catching up to do.. :P Perhaps I could throw together a stress test using lots of random shapes.. Hmm..

Or I could succumb to the goodness that is (J)Box2D, like I momentarily did about a week ago. I made some platformer physics tests with it. Good stuff. :) All this is obviously for a grand purpose: finally making a (platformer) game that's perhaps a bit more than just nice and simple 10-30 minutes fun. That's my intention anyway, we'll see what happens.

Introducing PolyAnim!

I decided to unveil the project I've been working on lately. It's a polygonal (i.e. vector) animation library called PolyAnim, now up at Google Code. First things first: I'm not trying to compete with Flash, this thing is mainly meant as a game sprite replacement. :)

Too bad there's still not anything nice to show yet.. :P The stuff I have so far is a few hard coded animations consisting of couple of triangles and squares, it's not very sexy to look at, mmkay? But all that will change once I get the editor going and can finally make something cool with this thing. So, be patient. ^^

Just to prove I've achieved *something*, here's an ugly screenshot of the test program. I'd say it looks better when it's animating… I mean, really. Hey, it really does.. *sigh*

Getting tired of C++?

I'm starting to notice, that I've been probably spoiled beyond all redemption by the wonders of Java and Python. And by that, I mean the general relaxed feeling when developing, such as not having to deal with memory management* and so on. As I've been working with Java and Python all this spring (plus we use Java at work), now writing C++ for the sekrit projekt(tm) feels cumbersome.. Dealing with const references, virtual destructors, templates and whatnot just doesn't have the same effect for me it once did.. What's happening to me? Am I really getting tired of C++? :(

But wait! There's more.. *bows head in shame*

I've been further tempted to the Dark Side by my very recent interest in Qt Jambi and LWJGL.. :P I mean, what the hell, is there really anything stopping me of doing the sekrit projekt(tm) in Java, using LWJGL and Qt Jambi for the editor (ooops, slipped that out!)? I think not!

So.. Perhaps we hear more about these shocking developments later on. Perhaps.

*) Incidentally, I'm doing my bachelor's thesis on "Automatic Garbage Collection In Programming Languages".. ;)

Intellisense in Visual C++ Express, and getting it working with Qt 4.4

Visual Studio Express editions are nice and free, but Visual C++ 2005/2008 Express seem to be lacking in the code completion (or Intellisense as it's officially known) department. If I recall correctly, in MSVC++ 2003 (version 7.1, that is) Intellisense worked perfectly. When writing new code, Intellisense picked it right away, even without saving the source file. I never had any problems with it.

In MSVC++ 2005 and 2008 (Express editions, I haven't tried the full featured versions – although I doubt they'd work any better..), the code completion has definitely taken a step backward. It just doesn't work as nicely as it did in MSVC++ 2003. It seems to parse the source files quite lazily, and sometimes just doesn't work at all. When given a moment, it works again. I've found out that switching between Release and Debug from the toolbar dropdown causes "Updating Intellisense…" to appear in the status bar. That helps, but it's still not very convenient.

As I recently installed and compiled Qt 4.4, I noticed that Qt classes would not be in the code completion list at all. I included Qt's include-directory to the "VC++ Directories" in Options. That wasn't enough. Finally I got it working by including "$(QTDIR)\src" to the "Source files", and listing all the Qt include subdirectories separately in "Include files".