TDP :: Data Architecture:: Rawdata

Version 1.0 - Jean-René Bédard - 17/12/2004 - Initial

The Rawdata contains all the source scenes, textures, materials, maps(vmf), sounds and code used to produce the gamedata.
The Data Pipeline describes how the rawdata and gamedata are tied together.


Here is the root of the Rawdata located in “C:\troydp”

“C:\troydp” Contains the batch files to start the Source tools :

run_hammer.bat Start Hammer, the map editor for the Source engine with the setup for troydp. Loads .VMF files
run_hlmv.bat Start HLMV, the model viewer and tester for the Source engine. Loads .MDL files
run_mod.bat Start Troy : Divine Playground in dev mode.
run_studiomdl.bat Start StudioMdl, the model compiler from .QC and .SMD files to .MDL models lodable by the engine.

“C:\troydp\src Contains Source code (Code Architecture)



“C:\troydp\mapsrc
Rawdata Maps
The "mapsrc" directory contains source Hammer maps

.VMF Hammer map (run_hammer.bat)
.VMX automaticly generated by Hammer

After the map is compiled using the Vbsp tool, the BSP files goes in the gamedata ("troydp/maps")

Note: Vrad will create a BSP, LIN, LOG and VMF into the gamedata after compiling the VMF in the rawdata. Please, only check-in the VMF that is in the rawdata and the BSP that is in the gamedata. The LIN file is a pointfile loadable in Hammer and is usefull to visibly find leaks inside a level.

Map contraints :
number of units 1 unit = 1 cm.
Maximum x,y,z = +/-16635 units
number of brushes tbd
props

Overview of Prop Types (Number in level :)
prop_detail: 10 0000's
prop_static: 1000's
prop_dynamic: 100's
prop_physics: 10's-100's
prop_ragdoll: less than 10

cubemaps

Cubemaps
- usage : NPC or player : 64 units above the ground
- usage : static world geometry : 16 units away from all brushs surfaces

3D skybox 1:16 scale

It's important to understand that Doom3 or Unreal2 engines both display drastically more polygons onscreen at any given time than Half-Life 2 does. A massive portion of the latter game's prettiness comes from some seriously topnotch texture work. The Brushes are flat-out quake3 style bsps, so no .bsp maps should contains detailed static brushes. Those should be models instead and visually enhanced with high-resolution textures and materials with specific shaders (normal, bump maps, specular effects).

Optimisations and must-reads:
- PVS : Improving Performance and Controlling Visibility.
- Avoid leaks at all cost : Leaks Explained (causes, Pointfile .lin).
- Command console for optimizing : Optimizing and Checking Your Map (+showbudget).

“C:\troydp\materialsrc


Rawdata Materials
The "materialsrc" directory contains .tga texture/map and the textfile to compile it into .vmt/.vtf

.TGA TGA file (16, 24 or 32-bits in depth).
They must be 2D and a power of 2 pixels per dimension (1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 or 2048 pixels)
.TXT Editable textfile used to compile the material. Must be the same name as the .tga. The material creation procedure

All the materials shared between maps(BSP) are put in the directory “materials/maps”

The materials for models are put in categories such as player, weapon, vehicles. The files are then put in the directory corresponding to the name of the model.

After the material is compiled using the Vtex tool, the VMT and VTF files goes in the gamedata ("troydp/materials") into the same directory as in the rawdata.

Material contraints :
characters Maximum : 5 materials per character.
Normal mapping and specularity on metalic parts is recommanded for characters to enhanced details.
face maximum : 512x256
rest of body maximum : 1024x1024
See the materials in "models/humans" as an exemple.
weapons

maximum : 512x512.
Depends largely on the weapon type/size. The important thing is to be carefull with VRAM usage (not using huge textures for a little model).

props maximum : 512x512
Depends largely on the props type/size. The important thing is to be carefull with VRAM usage (not using huge textures for a little model).
Bump mapping recommanded for large props.


For weapons, we must respect this naming convention for models and materials :
p_(weapon) "player" model, weapon you see in hands of other players.
v_(weapon) "view" model, weapon as it looks in your own hands
w_(weapon) "world" model, weapon as it looks when lying on the ground

“C:\troydp\modelsrc
Rawdata Models
The "models" directory contains the source scene and the SMD, QC and QCI files.

The models can be modeled/animated with different packages and then be exported as SMD files.

.MAX 3D Studio Max 6.0 and up. Character Studio 4.0 and up for rigging.
The official SMD exporter is coming soon from Valve. For now there's PerPixel's SMD exporter for 3dsMax. It support the Physique modifier on editable mesh, but not on editable poly. Please compress your scene.
.SCN XSI | Softimage for Half-life 2 (free). http://www.softimage.com/products/exp/HL2/
.MB Maya 6.0 and up binary scene. To install the SMD importer/exporter for maya, copy the content of "\Valve\Steam\SteamApps\User\sourcesdk\maya\4.5" to your folder "Documents and settings\UserName\My Documents\Maya\6.0" where UserName is your PC's login.

Important documentation on models : Modeling Overview

.SMD Files exported from the modeling package. 3 kinds of SMDs :

Reference SMD Model informations : mesh, skeletal structure, textures, vertex skinning, no animation its the default pose.
Naming convention : (model).smd
Physbox SMD Volume for collision detection, convex hull, vertex skinning.
Naming convention : (model)_phys.smd
Animation SMD Animation data that matches the skeletal model.
Naming convention : (model)_(animation name).smd

For one animated model, there may be one Reference SMD and one Physbox SMD but plenty of Animation SMDs. Its important to respect the naming convention described above.
.QC A table of content for model projects. Complete list of the asset (SMDs and Materials) needed by StudioMdl to produce the finished model.
Also, QC files are basic scripts used to trigger effects (glows, particles), animations and sounds for a given model. QC file Commands.

Naming convention
: (model).qc
.QCI Only for animated character models.

Documentation on Rigging and Physboxes and Ragdolls

Afterward, the model files (SMD, QC, QCI) are compiled using StudioMdl (Compiling Models Basics) to output the resulting files (MDL, VTX, PHY, VVD). They go in the gamedata ("troydp/models").


Model contraints :
Since we are a multiplayer mod, we have to respect polygon constraints because it may be a lot of units on screen at the same time. Normal mapping is favorised rather than a high polycount on every models.

character Polygons : maximum 4000.
Bones : maximum 56. (15 for the Ragdoll)
Hit boxes : maximum 20.
Attachments :
maximum 10.
p_(weapon) Polygons : maximum 700.
This number will be lower for melee weapons.
v_(weapon) Polygons : maximum 3000. (Including the hand(s)).
Bones : maximum 30. (15 for the Ragdoll)
Hit boxes : maximum 10.
Attachments :
maximum 5.
w_(weapon)

Polygons : maximum 700.
This number will be lower for melee weapons.

props Polygons : maximum 4000.
This number will be lower for smaller props.
As a rule of thumb, you shouldn't model individually any props smaller than 1" cubed.

HL2 Polycounts :
Soldiers: 4682, Police: 3852, Resistance: 4976, Zombie: 4290, Helicopter: 6415,
Strider: 6444, Alyx: 8323