|We're building a new wiki, so information on this page may be out of date.|
Goldsource (also known as GoldSrc), is the heavily modified version of the Quake engine that Half-Life runs on.
It was created by Valve Software in 1998 that has created games such as Half-Life 2 and Portal.
The engine was also licensed by companies, such as Rewolf Software that created Gunman Chronicles in 2000.
Due to big success with Counter-Strike and various of other mods that were made using the Half-Life SDK, Valve decided to add these mods as an add-on to Half-Life and also hiring some of the mod developers.
The mods were included with game patches. The first mod to be included with a patch was Team Fortress Classic in version 18.104.22.168. Other mods following it such as Counter-Strike and Ricochet.
When Steam finally came out in 2003, these games were sold as separate games and were no longer downloadable.
GoldSrc is based on Quake's engine, containing some similarities with it. For an example, it still uses same map editor (Hammer Editor) and map files (bsp). GoldSrc also shares the same model file format (mdl). Bare in mind that this does not mean bsp, mdl or any other file can be shared through both engines.
Half-Life's Code Basis
What is Half-Life built on, Quake 1 or Quake 2? These questions pop up pretty frequently, and neither seems to have an accepted answer. In an effort to extinguish the argument, I've asked the people who know best. About Half-Life, that is. We're not touching the question about the chicken.
Ken Birdwell explains it like this:
"It is fundamentally just a heavily modified Quake 1 engine. There are about 50 lines of code from the Quake 2 engine, mostly bugs fixes to hard problems that Carmack found and fixed before we ran into them."
At its core, it's a Quake 1 engine. You can tell this by comparing Half-life's map compiling tools with those shipped with Quake1. You'll find very minor differences -- none of them are fundamental. The core rendering is architecturally identical to Quake1, the only "significant" change is removing the fixed palette, making map lighting RGB instead of 8 bit, and converting software rendering to be 16 bit color instead of 8 bit color, which was pretty easy and only required minor code changes. Our skeletal animation system is new, though it was heavily influenced by the existing model rendering code, as were a lot of our updated particle effects, though less so with our beam system. Decals are totally new, our audio system has some major additions to what already existed, and at ship time our networking was almost totally Quake1 / QuakeWorld networking but about a year later Yahn rewrote most of all of it to be very different in design. The most highly changed sections are the game logic; ours being written in C++ and Quake's being in written interpreted "Quake C". Our AI system is very very different from anything in Quake, and there's a lot of other significant architectural changes in the whole server and client implementations, though if you look hard enough you can find a few remnants of some nearly unmodified Quake1 era entities buried in places.
Jay Stelly adds, "We also took PAS from QW and/or Q2 and a couple of other minor routines I can remember (no more than 100-200 lines of code there). There was some feature overlap (as Ken mentions) like game code DLLs and colored lighting, but we developed our own solutions to those independent of Q2."
So there it is. This should put some arguments to rest. Half-Life is based on Quake 1, although it has a very small amount of Quake 2 code. Yahn notes that "we did use some of the winsock functions from Q2, that's about it. Probably more than 50 lines, but nothing too interesting."