And now for something completely different

Graphics aren’t really my forte, but the one part of the game I’m dedicated to making look great is character animation. Months before I started this project, I hit upon the idea of rotoscoping live footage to make the basis of the game’s main character. This technique isn’t new — Jordan Mechner filmed his little brother running and jumping and used it as the basis of Prince of Persia. But I have a distinct graphical style for the main character in mind: low-resolution, but fluidly animated. I haven’t seen that done much in other games, and I’m interested to see how it will turn out.

My plan for achieving this vision is to automate the task of de-rezzing video footage, so that ideally it will need relatively little cleanup to be usable in prototypes of the game. Today I wrote the first part of that algorithm, which will take an image of a silhouette and make it blocky looking. Here it is in action:

The next step is to use a video processing library and do the same thing for every frame of a video. Then we just dress Roark up all in black and film him in front of a white surface, and the software does (much of) the rest. I have pretty high hopes for this technique, since it’s one of the few instantly distinctive aspects of the game.

On another note, developing Windows forms is really easy! I had no idea. Hats off to Microsoft for making the tools so easy to use. Compared to writing any graphical component in a framework like SWT, this is total child’s play. On the whole I haven’t been too sold on the idea that Visual Studio is the greatest development environment known to man, as many people will insist. Honestly, even with Resharper installed, it’s still inferior to stock Eclipse in a lot of ways. It felt like taking a step back tool-wise, even as I got used to using it. The GUI builder was the first time I felt like Visual Studio has a significant, clear edge, and I couldn’t have written this simple GUI in an afternoon without it.

Leave a Reply

Your email address will not be published. Required fields are marked *