Archive for November, 2006

Stuck Valve

Wednesday, November 15th, 2006

Not so much a blog update, as an open letter to Valve. It’s pretty wordy, so you can skip to the bottom to see some pictures if you like.

Dear Valve,

I’ve been working with your tools/SDK since they were first released (and, in the case of Hammer/Worldcraft, since….forever). I’m used to how they work. I can practically use Hammer in my sleep. I’ve even built up an actual workflow for modelling and texturing. And that’s where the problem lies.
Courtesy of RoboBlitz, I recently had the chance to sample the delights of Unreal Engine 3 – or more specifically, the tools. The first thing that struck me is how…integrated it all is. There’s an in-built browser for all the assets. The map editor is there. The script editor is there. The texture tools are there. It’s all there, in one package. It also uses non-obscure file formats. Want to import a mesh? Export it to ASE from your modelling package, then import it straight into UnrealEd. Textures? Import them straight in – even PSDs.
Now here’s where UnrealEd really starts to shine. Let’s take an example of importing a model to be used as a static mesh, importing the texture, then placing it in-game.

Source:

1) Export model to Valve’s SMD format (3 times – reference mesh, idle animation and separate collision mesh)
2) Write .qc file to define the model. Here’s a simple example:

// Output .MDL
$modelname ship1/hangar_column.mdl

$staticprop

$scale 1.0

// whole body
$body “Body” “hangar_column_ref”

$cdmaterials “models/ship1/”
$surfaceprop “metal”

// sequences: all sequences are in $cd
$sequence idle “hangar_column_idle” loop fps 15

//$keyvalues { “prop_data” { “base” “metal.medium” } }

$collisionmodel “hangar_column_phys.smd” {
// Mass in kilograms
$Mass 200
$concave
}

3) Compile model

4) Export texture to Valve’s VTF format (thanks to a third-party plugin for Photoshop. Otherwise, export to TGA and convert to VTF)
5) Write a .vmt file to define the material that the model is using (of which the texture is just a part). Example:

"VertexLitGeneric"
{

“$basetexture” “models/ship1/hangar_column_1″
“$selfiilum” 1
// “$bumpmap” “models/ship1/hangar_column_1_normal”
“$envmap” “env_cubemap”
“$envmaptint” “[ .2 .2 .2 ]”
// “$model” 1
}

I feel that I should point out here that I have got used to this way of doing things. These VTF, VMT and QC files have a relationship that can be extremely confusing at first. Having an incorrect reference in just one of the files, or having them in the wrong directory, will lead to the dreaded Purple Checkerboard Texture Of Death (i.e. the engine can’t find the texture to apply to the model)
6) Open Hammer, find model in browser, place in map and save.

7) Compile map
8) Wait for map to compile (Not strictly a step in its own right, but anyone that’s used to Hammer knows what I mean)
9) Load game, load map.
10) Admire work.

Easy, isn’t it? Now let’s try it with UE3.

1) Export model to ASE format
2) Export texture to TGA format (for argument’s sake)
3) Open UnrealEd, open browser
4) Import mesh, import texture (which can be done simultaneously)
5) Create material using visual material editor:


6) Apply material to model


7) Place model in map
8) Play map in editor.

Only two less steps in total, but several orders of magnitude less work. Even taking into account the fact that you’re more likely to copy and paste your QC and VMT files around, changing the relevant details, the Source tools are decidedly…clunky.

The learning curve on your tools, Valve, is atrocious. The lack of integration is appalling, and you won’t win any awards for ease-of-use (command-line tools? What year is this again?).
Now don’t get me wrong – I love Source, and I think you’re doing fantastic things with the engine. But you are neglecting the tools. We had a major SDK update this year that fixed a lot of problems with Hammer, and added some new features. You even added an in-editor lighting preview (briefly) and a visual logic editor (again, briefly). I just wish that you’d look at UnrealEd and see what I’m talking about. I’m certain that your in-house productivity would go up. It would absolutely benefit the modding community.
Being realistic, I doubt that map compiles are going to go away any time soon. But there are things that are quite possible, such as integrating the texture/modelling tools into Hammer, and that would be fantastic.

(more…)

Haulage

Friday, November 3rd, 2006

Just a little interim update. I’ve posted a series of screenshots and descriptions of the process of modelling and texturing the freighter to be used in the demo. Click!

And in unrelated news, the Zombie Master team have released some videos of their upcoming Half-Life 2 mod (disclaimer: I made the maps). Worth watching, even if I am enormously biased….Go!