Skip to content

Other licensed 3D engines ​

Besides the id engines and Unreal, several engines were sold to other studios in the late 1990s and early 2000s. Each has well-known file formats that modders documented.

GoldSrc ​

Valve built GoldSrc for Half-Life (1998), starting from the Quake engine and adding parts of Quake II's code and its own systems.

  • hl.exe loads the engine from hw.dll (hardware rendering: OpenGL or Direct3D) or sw.dll (software rendering).
  • The game logic is in two native DLLs: hl.dll (the server: monsters, weapons, rules) and client.dll (the client: the HUD, prediction, effects). Mods replace them. The Half-Life SDK, released by Valve, contains their source code.
  • Maps are BSP version 30 with external textures in .wad files (WAD3). Models are .mdl with skeletal animation.
  • Scripted sequences, triggers and entity connections are in the map's entity list as text.
  • Xash3D FWGS is a compatible engine reimplementation that runs the original game DLLs.

LithTech ​

Monolith Productions made LithTech for Shogo (1998) and Blood II (1998), then licensed it. Later games include No One Lives Forever (2000) and Aliens versus Predator 2 (2001).

  • Data is in .REZ archives. Worlds are .dat, models .abc or .ltb, textures .dtx.
  • The game code is in DLLs (object.lto for the server objects, cshell.dll for the client), which the engine loads. They are ordinary Windows DLLs under other names.
  • Some LithTech games shipped with tools and SDK source for modding. Use them.

NetImmerse and Gamebryo ​

NetImmerse, from Numerical Design Limited (NDL), was renamed Gamebryo in 2003. NDL became part of Emergent Game Technologies in 2005. It is a scene-graph library more than a full engine. Studios wrote the game around it.

  • Games include Morrowind (2002), Dark Age of Camelot (2001), Oblivion (2006) and Civilization IV (2005).
  • Models and scenes are .nif files: a list of blocks, each a class (NiNode, NiTriShape, NiTexturingProperty), with references between blocks by index. The NifTools project documents every version of the format.
  • RTTI names starting with Ni identify the library code in the executable. Label it and move on to the game's own classes.

RenderWare ​

Criterion Software's RenderWare was a cross-platform graphics library used on PC and consoles (PlayStation 2, Xbox, GameCube). Games include Grand Theft Auto III (2001), Vice City (2002), San Andreas (2004) and Burnout (2001).

  • Files are chunks with a type, a size and a library version: .dff (models), .txd (texture dictionaries), .rws (streams). A reader can walk a file chunk by chunk from the headers.
  • The same game on PC and PlayStation 2 uses the same chunk format with different platform data inside, so a PC reader helps with the console version.

How these engines change the work ​

  • The game code is often in separate DLLs. Study those first; the engine code is shared with other games and often documented by modders.
  • Look for an SDK. GoldSrc, LithTech and several Unreal licensees released SDKs with the game code's headers or source for modders.
  • Check the version of each format in its header before using a community reader.

Code: Apache 2.0. Content: CC0 1.0. No game material: bring your own copy.