Post-project

May 09, 2006 13:19

Hey, all. This is what I hope will become a continuing series. You see, every now and again, I have a project that I work on for a while. Then, for one reason or another, it ceases to be interesting, and I cease working on it. Generally, when this happens, I kind of wander about for a while, thinking I should do more on it and not being enthused about it, and drift into another project.
I think instead, when I cease to be motivated by a project, I should examine what I've done, where I left the project, etc.
So, on to this project. Jess gets a german gaming magazine, http://en.wikipedia.org/wiki/GameStar, every month, and it often comes with a free game (generally one that's ceased to be comercially viable in it's own right, but that the publisher has a sequal coming out for). In this case, it was Singles: The Game. The game is somewhat NSFW (the website isn't), and somewhat interesting, and certianly extremely hackable. So, naturally, I decided to start hacking -- reverse engeneering the file format for the 3d graphics, and making a viewer for them. This turned out to be fairly interesting -- I managed to write a Parse::RecDescent grammar for the human-readable (vaugely) form of the 3d graphics format fairly quickly. Reverse-engeeenering the non-human-readable form took longer, and that's where the really fun graphics are. Writing the binary parser for it was even harder -- I went through three iterations, because they kept being slow as all get-out due to copying the data around in large strings. I wish I'd asked for advice on how to do that, or searched cpan again for modules to do it, because after mentioning how difficult it was, and floating the idea of writing my own library to make it easier, I was pointed at audreyt's Parse::Binary, which looks quite nice.
The actual viewer, however, is at something more of a loose end. It's just too slow to be usable for looking at the human forms, and the visualization of some materials is still off, possibly because I've never figured out what certian parts of the format are supposed to do. The slowness, however, is going to be very hard to get rid of -- some of it seems to be down to flaws in OpenGL::Simple, but part of it is probably me not knowing how to use it very well.

geek post-project graphics 3d

Previous post Next post
Up