Skip to main content

Disrupt Engine — Asset Pipeline Format Mapping

Source: OCR of WDL dev pipeline reference (wdl_format_info.txt), cross-referenced with community findings.

The Disrupt engine converts authoring formats into runtime binary formats during the build process (PreparePlatformData64.exe). Here is the mapping from source/authoring format to compiled/runtime format.

Format Conversions​

Authoring FormatRuntime FormatDescription
material.xml.material.binMaterial descriptors (TAM v7 binary, magic 0x004D4154)
.mac + .markup.mab + .markup.binAnimation clips — MAC (source binary) + markup (XML events) compiled via CMarkupCompiler to MAB (Oodle-compressed runtime) + markup.bin (10-byte header)
.seq.cseqCutscene sequences (QES binary format)
_move.xml_move.binMovement/locomotion data
_markup_markup.binUI markup data
.1ft.xIfPhysics fixture data
.tree_xml / .impostor.xml.binVegetation tree + impostor data
.bik.bik / .biklightBink video (light variant for pre-rendered sequences)
.fba / .animset.dpaxAnimation blend trees / animation sets
-dpds_dpdxDepload dependency data (compiled)

Resource Class Registry (WD2 editor strings)​

Extracted from WD2 memory dumps (noah Gooder, Dec 2018). These define the engine's internal resource type system — which source extensions map to which compiled runtime extensions:

Resource ClassSource ExtensionsTarget ExtensionNotes
CActorDialogPackResource(none).stimuli.dsc.packDialog stimulus packs
CAnimationTrackCollectionResource.animtrackcol.xml.animtrackcol.rmlAnimation track collections
CBinkResource.bik.bikBink video (passthrough)
CFuzzyLogicTableResource.fzl.xml.fzlFuzzy logic tables
CGeometryResource.glm .dae .gamex.xbg3D models — GLM (text), DAE (Collada), GameX (binary) are all geometry source
CMaterialResource.material.xml.material.binMaterial descriptors
CModelResource.model.modelModel descriptors (bind XBG + material)
CMoveResource.move.xml.move.binMovement/locomotion data
CNomadResource.impostor.xml.impostor.binVegetation impostors
CNomadResource.tree.xml.tree.binVegetation trees
CPhysResource.hkr.hkxPhysics (Havok) — optional .gamex source
CPhysResource.tree.hkr.tree.hkxVegetation physics
CSequenceResource.seq.cseqCutscene sequences (deps: .naseq .liseq .auseq .fxseq .prseq)
CSkeletonResource.skel.xml.skeletonSkeleton definitions
CSoundResource(none).bnkSound banks
CStateMachineResource.gosm.xml.gosm.xmlGame object state machines (passthrough)
CTextureResource.png .dds .hdr.xbtTextures
CWorldLoadingUnitResource.data.fcb.data.fcbWorld loading units (passthrough)

Editor Indexer Types​

The engine scans for assets via ToIndex entries in the build pipeline:

Indexer TypeExtensionsFolderPathNotes
GLMToIndex.glmgraphicsGeometry source files
HkrToIndex.hkrgraphicsHavok physics
TextureToIndex.pnggraphics;ui;editorTexture sources (SmallMax=16K, BigMax=4M)
NomadToIndex.tree.xmlgraphicsVegetation
EntityToIndex.xmlworlds;missions;entitylayersWorld entities
ResourceFileToIndex.daegraphics;editor\scenesCollada geometry (XmlInvokeDep)
ResourceFileToIndex.gamexgraphicsGameX binary geometry
ResourceFileToIndex.luadominoLua scripts
ResourceFileToIndex.markupgraphics;animationsAnimation markup (TriggerKey=MarkupToAnim)
ResourceFileToIndex.ddsgraphics;ui;editorDDS textures
ResourceFileToIndex.seq .naseq .anseq .liseq .fxseqsequencesCutscene sequences
ResourceFileToIndex.skel.xmlgraphicsSkeleton XML
ResourceFileToIndex.animtrackcol.xmlanimationsAnimation tracks
ResourceFileToIndex.stimuli.dscdialogDialog stimuli
DominoToIndex.dominodominoDomino scripts
StateMachineBlobToIndex.xmlengine\scripts\game\objects\pawn\stateMachinePawn state machines
XmlDepToIndex.xmlgraphics;editor\scenesXML dependencies (FileExtensions: glm;hkr;gamex;dae)

Key insight: .dae and .gamex are alternative geometry source formats — same CGeometryResource class as .glm. The GLM text parser should handle all three with format detection (GLM = text tabs, DAE = Collada XML, GameX = binary).

Other Asset Categories​

CategoryNotes
Road/splineGeometry + loft (graphics/physics)
Sound banks.bnk / .spk audio containers
Character customizationGraphickit parts, clothing definitions
Lua scriptsCompiled to bytecode (not source — game reads compiled)
World/terrainTerrain chunks, navmesh, world generation
Specialized Havok variantsPhysics data (collision, ragdoll, vehicle)
AI/world systemsBehavior trees, spawn tables, traffic patterns

Key Notes​

  • .fx shader source is NOT compiled — the game reads compiled shaders from shadersobj.dat, not .fx source from shaders.dat
  • .material.bin uses TAM v7 — magic bytes 54 41 4D 00 (little-endian). Beta builds used v5 big-endian (00 4D 41 54)
  • .cseq cutscenes are QES (Quake Engine Sequence) binary format — 307 files in WD1 unpacked data
  • Lua scripts are compiled to bytecode at build time — decompilation required for editing
  • Depload (_dpds → _dpdx) is the dependency preload manifest — see Depload Format