GoldSrc

GoldSrc, or Goldsource, is the retronym used internally by Valve Software to refer to the heavily modified Quake engine that powers their science fiction first-person shooter Half-Life.

Overview
GoldSrc is a heavily modified version of the QuakeWorld engine codebase, which in turn is a development of the Quake engine's codebase. Some minor fixes from the Quake II engine were incorporated as it was developed.

Originally, GoldSrc's netcode, the coding that handles online multiplayer, was similar to the one in the QuakeWorld engine. However, in 2001, Valve implanted a new netcode that was designed to make it easier for players with high ping to play well via "lag compensation".

During the early development of Half-Life 2, an experimental engine known now as Source was made, debuting with Counter-Strike: Source and Half-Life 2 in 2004.

While officially abandoned in favor of the Source engine (except for minor maintenance updates), the GoldSrc engine is still used by third party developers.

Similarities with the Quake Engine

 * GoldSrc's map format, ".BSP", is very similar to Quake's map format, ".BSP" as well. The only major differences are with how it handles lighting storage and how the game loads textures. The .BSP versions of GoldSrc and Quake are so similar that early versions of Hammer could edit Quake and Quake II maps. With a few alterations, version 3.3 of Hammer can be used to create Quake maps.


 * Uncompiled GoldSrc maps use the .MAP format, which is also used by Quake's uncompiled maps.


 * Both the GoldSrc and Quake engine use the .WAD format to store and load textures. The only differences between the two formats is that each texture in a GoldSrc .WAD file has its own pallet, instead of sharing from one pallet used by all of the textures, and the file header; Quake uses WAD2, while GoldSrc uses WAD3. The WAD2 (and thus, WAD3) format itself is based off of the .WAD format used in the Doom engine. In addition, the Half-Life SDK includes a tool for making .WAD files called qlumpy.exe. Qlumpy.exe is also used to create Quake .WAD files.


 * The GoldSrc and Quake engines use .pak files to store data, such as levels and models.

Trivia

 * While the engine has no official name, in the months before the release of Half-Life, many computing magazines described the engine as being based upon "Quake Unified Technology".


 * Erik Johnson explains the origin of the GoldSrc name in this quote from the Valve Developer Community:

"When we were getting very close to releasing Half-Life (less than a week or so), we found there were already some projects that we needed to start working on, but we couldn't risk checking in code to the shipping version of the game. At that point we forked off the code in VSS to be both $/Goldsrc and /$Src. Over the next few years, we used these terms internally as "Goldsource" and "Source". At least initially, the Goldsrc branch of code referred to the codebase that was currently released, and Src referred to the next set of more risky technology that we were working on. When it came down to show Half-Life 2 for the first time at E3, it was part of our internal communication to refer to the "Source" engine vs. the "Goldsource" engine, and the name stuck."

Licensed games

 * Half-Life (Valve, 1998)
 * Half-Life: Opposing Force (Gearbox, 1999)
 * Counter-Strike (Valve, 2000)
 * Team Fortress Classic (Valve, 1999)
 * Gunman Chronicles (Rewolf, 2000)
 * Half-Life: Blue Shift (Gearbox, 2001)
 * James Bond 007: Nightfire (Gearbox, 2002)
 * Ricochet (Valve, 2000)
 * Deathmatch Classic (Valve, 2002)
 * Day of Defeat (Valve, 2003)
 * Counter-Strike: Condition Zero (Valve, Ritual, Gearbox, Turtle Rock Studios, 2004)