Wall Worm, Still Squirming
It's been around a year and a half that I've been working on Wall Worm. It's about time for the first blog entry. Although I've been using the WW forum (and other forums) to share tidbits, news and direction... I've been thinking it might be good to offer something a little more substantial and coherent. So here's a start.
Gulliver Thoday is a talented level designer who has become a friend of mine over the last year or two. I finally dragged him into using 3ds Max sometime last year and he hit the ground running. He's certainly been picking up Max a lot faster than I did when I first opened it up over a decade ago.
Gulliver recently co-authored (with FireWavezZ) a map called de_atlantis in a Gamebanana mapping contest. (Gulliver's mapping tag is Gmaps). You'll see in the credits they were kind enough to list me as having helped out with the modeling... but in reality all I did was answer a few questions. The caliber of the map is high... and I am happy they were able to utilize Wall Worm to help finish the project.
Not suprisingly, de_atlantis won first prize in the contest! Great job Gulli!
In other news, I was watching a series of videos on the Autodesk 3ds Max Youtube channel about MassFX this week. I was happy that one of my favorite developers (Michael Little) was mentioned along with his script Brickerizer in an official Autodesk training video:
When I started Wall Worm, I never really expected to turn it into what it is today. Originally, I just wanted to get out of writing QC files and shortcuts to Studiomdl (and already, I know that many of the users of Wall Worm don't even really know what the first half of this sentence even means! But those who've been making models, textures and other assets for Source for a while know what I'm talking about.) Now you can use 3ds Max and Wall Worm to create almost every visual aspect of a Source level.
And I still have a fairly long list of ideas to add to Wall Worm (a list that seems to grow, rather than shrink, even as I check items off of it). The next new tool I expect to release is an Overview/Radar map function: just move a camera in Max to where you want your overview, press a button and compile. Done.
Like always, I appreciate ideas, opinions and suggestions. Convince me that a new feature will save time building assets for Source, and there is a good chance I'll add it.
I do have to admit that there is a common set of requests that many users have asked for that are less likely to come to be—import functions are not priorities of mine. I have had repeated requests for functions to import SMDs, VTA and VMFs into robust Max formats.
There are already plenty of SMD Importers. Wunderboy and Cannonfodder have built them. Commonly, users have asked to have more robust importers that will automatically convert a Source character into a skinned Biped/CAT rig and/or facial animations into morphed meshes.
A VMF importer would have wider appeal as there are more people making levels than animated models, and it would give level designers a way to bring levels into 3ds Max that are half-finished.
Due to how commonly I've been asked to add these, I know that they would save some time and effort for some of you. But I have to admit that the likelihood that I will tackle any of these is slim... and I apologize for insinuating otherwise to a handful of you who have repeatedly asked about them. You have to keep in mind that I work on this in my spare time; furthermore, these requests don't really lie inside the main impetus for Wall Worm—making it easier to create original content. I would rather users simply create things from scratch as much as possible.
Of course, I'd probably feel differently if I had a large collection of assets I personally wanted/needed to import... But I don't. And I constantly feel like time is shrinking... so I have to prioritize. My priorities are building tools for creating things inside of 3ds Max... not the other way around.
Up to this point in Wall Worm's development, I've had the opportunity to collaborate with some talented and intelligent people. I wanted to share my appreciation.
Foremost are the other developers that many of you may already know about: Neil "Jed” Jedrzejewki (AKA Wunderboy), Michael Little (developer of Convexity) and Cannonfodder. All three have been tremendously helpful to me. I have remained in regular contact with Neil and Michael... though Cannonfodder is a little more enigmatic and hard to reach.
I have added some functions into Wall Worm that overlaps the functions in these developers' exporters (Wall Worm now has internal implementations of SMD, VTA and VMF Exporters). I want to make some official statements on why I did this and how I hope Wall Worm users interpret it.
First, the SMD/VTA Exporters. SMD and VTA files are simply text files that you need to compile models into the MDL format. In fact, they are now officially superseded by other formats, but are still valid formats for compiling.
For the last few years, the only way to get your 3ds Max models into Source has been to use either Wunderboy's or Cannonfodder's exporters. Both work well. But both have one common problem: because they are DLLs, they need to be recompiled each time the 3ds Max SDK changes. That normally happens every couple of versions of Max. It is why no one could export SMDs form 3ds Max 2012 when it first came out—we had to wait for Wunderboy and Cannonfodder to recompile the plugins.
Recompiling plugins isn't always simple, either. Wunderboy and Cannonfodder had to read up on changes to the SDK—as things worked differently. So those of us wanting to move on to 2012 had to 1) wait and 2) harass these legends to hurry up. Some of us may be overly enthusiastic about that prospect (I'm guilty)... and it's easy to forget that they are normal guys with real lives to attend to... and the reward is often minimal.
Adding a MAXScript alternative into Wall Worm avoids the problem of the compiled plugins. Even though future versions of 3ds Max will inevitably break the SDK and the plugin SMD/VTA exporters, you will still be able to export models with Wall Worm in the meantime. (According to Ken Pimentel's announcement yesterday, 3ds Max 2013 will already, in fact, break the SDK from 2012).
There are other benefits to the MAXScript updates. The main other benefit is that I can add features at my own pace without having to constantly harass Wunderboy to accommodate them—which is why there are some features inside Wall Worm that only work if you are using the WW SMD Exporter. I do hope that Wunderboy continues to feel enthusiasm to develop his exporters; he has already added all of the features I've added to the WW Exporter in his beta 1.7 build... but it has been in beta for a while now... and with Max 2013 right around the corner, I'm half expecting him to put it off some more.
Remember, the compiled plugin will always be faster than the MAXScript version. So there are still reasons for everyone to encourage updates. So... remember to show Wunderboy some appreciation... and remember to send him a Pay Pal donation before asking for updates!
Now regarding the VMF Exporter. This was a function I really didn't expect to build at all since one of my favorite plugins (Convexity) already has a VMF Exporter. But although Convexity already has that, it hasn't accommodated any of the Wall Worm structures (models, displacements and sky textures). I had been hoping for a long time that Michael Little would add this to Convexity... but eventually I had to come to grips with the reality that there wasn't much incentive for Michael to put the effort into it.
So I built the VMF Exporter (with a lot of help from some friends). Building the VMF Exporter was a lot more work than I expected. Exporting the geometry and entity info was trivial; exporting the UVW information (texturing) of the world geometry, however, turned into a several-months-long ordeal. I read and re-read the VMF documentation on the Valve wiki. I went back and forth between 3ds Max and Hammer; I started asking in various forums about understanding the problem; I even emailed Valve.
I couldn't figure it out.
I enlisted other developers. Wunderboy, Kostadin "Miauu” Kotev and other developers started scratching their heads over the problem. I even, eventually, asked Michael Little to share the answer (he was busy at the time but insinuated he might help even though it was stepping on his toes a bit)...
I eventually dragged my friends Gulliver "K@rt” Thoday and Andrew Penry into the arena. Within a week of that, Andrew solved the problems I was facing.
So thank you Andrew! And thanks to everyone else who took the time to consider it.
Of course, this has led to a common question in private emails: Does this mean I am replacing Convexity?
No. Even though I am now using the Wall Worm VMF Exporter exclusively, I still use Convexity and I still encourage all Wall Worm users to get it. The VMF Exporter is only one small aspect of Convexity. It has many tools that are indispensable! The floor plan tools are ingenious; the library shapes are great; the wall properties and wall side-view editor are great time-savers. And the entity tools are necessary if you don't want to do them inside Hammer.
I love Convexity! You should too!
Many of you may know that Autodesk has a website devoted to allowing us (the users) to share our ideas and opinions regarding features for adding to 3ds Max. I want to share some of these with you so that you can consider voting for some ideas that I think would benefit all Wall Worm users.
Of course, there are many other great suggestions on the feedback site. These are ones that Wunderboy and I have submitted.