May. 19, 2008 @ 00:35
Tales of Ham, Jam, SMD importers, Max and more…

Been a while since I made any posts about what I’m up to these days so I thought it was about time I did. Not that I made many before but anyway…

In what little free time I’ve had over the past three months I’ve been hitting the Ham and Jam code pretty hard, doing what feels like a huge amount of coding to try and nail all the bugs we found in our last play test. There’s still some small niggles but if the hlcoders mailing list is to be believed, their inherent SDK bugs and hard to fix and not likely to go away.

Anyway, of the new thing to add was the deploy system for weapons with a bi-pod which, after two false starts, actually works now. The process of doing the deployment and swapping animations wasn’t too hard – it’s just all the other crap you have to deal with like the logic to check if you should be allowed to deploy and limiting player movement, preventing weapon selection, etc.

TF2 Heavy imported into 3DS Max 9

Still, apart from the art asset side of things, game play wise Ham and Jam is really starting to come together and resemble a proper game now.

I’ve been working quite a bit with 3DS Max plug-ins over the past week too and finally found a couple of hours to do some more work on the SMD importer I’m writing for Max 9, 2008 and 2009. I made a bit of a breakthrough today in that I made the first successful test run of the mesh re-construction code and apart from a small few snags at first, it actually works!

TF2 Heavy imported into 3DS Max 9

This may not seem like a big deal, but when you consider how an SMD file stores data it’s actually pretty cool. SMD files store each polygon in your model as a separate un-joined triangle. The problem with importing data like that is you get a huge number of duplicate vertices and your polygons aren’t actually connected together. As a result, you can’t smooth them out or set the normals properly as anyone who’s tried to use the MaxScript importer will know. The code I wrote analyses the data coming in from the SMD and uses some logic to reconstruct the mesh as one continuous mesh rather than separate triangles.

Lastly, you’ll probably of noticed over the last month or so I updated all my VTF tools to support the 7.4 texture version which started shipping with the Orange Box games. It took a while to do, mainly due to VTFLib which they rely on being a bit out of date. Nem usually handles the releases and while the code was there, he’d got really busy and didn’t have a chance to get it out as quickly as usual. Still, not biggy, it’s done now so hopefully everything should handle EP2/TF2 textures just fine now.

That’s all for now. Back to work…

Responses to “Tales of Ham, Jam, SMD importers, Max and more…”


Great work on the smd importer. Hope there is a release soon, I need it to figure out how I can make my own doors that work with prop_door_rotating.

Posted by Phil
Mon, May 19th, 2008 @ 10:19

Can’t wait for the smd importer. CF’s importer has some serious vertex weight bugs.

Posted by Barnz
Mon, May 19th, 2008 @ 13:34

Really Barnz? Care to elaborate so I don’t end up with the same issues?

Posted by Jed
Mon, May 19th, 2008 @ 20:15

I use Max 8 with CannonFodder’s *.smd importer/exporter for Max 7. I usually get this error when I save (export) my work and reopen (import) it. Some weights get messed up.

I remember the time when I was working on a character model from some cartoon (it was a paid job). I had to rig it like 5-6 times, because of the importer/exporter’s weight bug.

Thanks again for the exporter. I’m looking forward to use your new importer.

Posted by Barnz
Tue, May 20th, 2008 @ 23:17

+1 about the importer and the vertex weight problem!
Thanks for your hard work anyway.

Posted by Loke
Wed, May 21st, 2008 @ 09:58

Can you guys describe how the problem manifests itself? I’ve never had a problem importing an SMD with CF’s importer so I can’t be sure what the problem is. One thing I considered is that it doesn’t normalise the weights properly which is something I was going to do.

Posted by Jed
Wed, May 21st, 2008 @ 10:14

As you said, normalisation wasn’t correct with CF’s importer.
If you plan to add that feature, it would be really useful!

Posted by Loke
Mon, May 26th, 2008 @ 15:01

My God! A SMD importer for Max 9? That’s excellent news!
Know that, besides the HL community, you’ll also be helping folks at Taleworlds (Mount&Blade), so thank you so much.

Posted by stefano
Tue, May 27th, 2008 @ 17:29