This article's documentation is for the "GoldSrc" engine. Click here for more information.

GoldSrc

From Valve Developer Community
Jump to: navigation, search
English (en)Deutsch (de)Português do Brasil (pt-br)Русский (ru)Українська (uk)Tiếng Việt (vi)中文 (zh)Translate (Translate)

id Tech 2 id Tech 2GoldSrc GoldSrcSource SourceSource 2 Source 2

GoldSrc
"Powered by the Half-Life engine" logo used on some game boxarts.
Screenshot in-game of Half-Life, using the GoldSrc Engine.
Screenshot in-game of Half-Life, using the GoldSrc Engine.
Developer(s)
Release date(s)
November 19, 1998
Written in
License
Proprietary (source code available for non-commercial purposes)
Links
GitHub page
(SDK v2.5 source code & bug reports)
SDK v2.4 on GitHub (steam_legacy branch)
GoldSrc tutorials on TWHL
Successor

GoldSrc GoldSrc (also known as GoldSource, and formerly just the Half-Life Engine) is a 3D video game engine created by Valve in 1996. It was the driving force behind many famous games of the late 90s and early 00s, such as Half-Life, Team Fortress Classic, Counter-Strike, and Day of Defeat. GoldSrc is a heavily modified version of the Quake engine and runs on C++ (with some "C" code). GoldSrc and its level editor, Valve Hammer Editor, were released by Valve for public use, making it the source of countless community-made modifications.

GoldSrc was replaced by its successor, Source Source, in 2004, which currently holds first place as the choice engine for Valve modders. Though GoldSrc is past its prime, many gamers and some third-party developers still seek to use it for mods and level design.

The engine is actively being updated and maintained by Valve as of 2023, recently with the Half-Life's 25th-anniversary updates which increased the engine limits and fixed many bugs.

Screenshot in-game of Half-Life: Blue Shift, using stencil Shadows.
Screenshot in-game of Cry of Fear, which runs on a heavily modified version of GoldSrc.
Screenshot in-game of Counter-Strike: Condition Zero, using detail textures and higher-definition player models.
In-game screenshot of Counter-Strike on Xbox.

Features

Todo: expand here or add links

Renderer

GoldSrc has two in-game renderers Software Renderer and OpenGL (previously three as Direct3D 6 support was removed in the 2013 SteamPipe Update) both renderers have differences.

  • Colored lighting - Quake simply had monotone lighting
  • Transparent textures - Glass can now be used in maps
  • Transparent Water
  • Water ripple
  • Water waves
  • Dynamic iris simulation - adjust screen brightness automatically. A feature similar to Source's HDR Rendering. (only in Counter-Strike (Xbox))
  • Texture Filtering - First introduced with GLQuake, a version of Quake that runs on OpenGL.
    • Anisotropic filtering (16x by default) supported since the 2013 SteamPipe update.
  • Skeletal animation - allowing for more stable animation of models, compared to the vertex animation in Quake
  • Higher poly counts - GoldSrc allows for far more detailed models than Quake
  • HD models - Higher polygon and texture quality for in-game models.
  • Detailed textures (only in Counter-StrikeHalf-Life: Opposing ForceDay of DefeatCounter-Strike: Condition ZeroCondition Zero Deleted ScenesCounter-Strike (Xbox))
Icon-Bug.pngBug:Detail texture rendering has been broken since the 25th Anniversary update.  [todo tested in?]

Since 2013 SteamPipe Update

  • FBO renderer - A new method of rendering the game, which allows MSAA to work with GoldSrc engine. This also allows the game to run on fullscreen in a borderless window (which also makes Alt+Tab faster), and aspect ratio that are different from your monitors, for example, 4:3 on 16:9, will not be stretched to fill the black bars.
Note.pngNote:You can disable the new FBO renderer using -nofbo command line, note that this will also disable MSAA.
  • MSAA anti-aliasing - GoldSrc now natively support anti-aliasing, specifically, MSAA 4X, which is enabled by default on most modern hardwares. This will reduce the amount of jagged edges/staircases effect on the geometry.
  • Support for Anisotropic filtering - Increases visual quality of textures at steep angles to the camera. GoldSrc uses 16x Aanisotropic filtering by default.

Since 25th Anniversary

  • Widescreen "Hor+" FOV
    • Instead of cropping the image and reducing FOV when using widescreen, the image will be expanded.
  • Shaders support (OpenGL)
    • With shaders support, it also fix the issues with overbright lighting not working under OpenGL.
  • Dynamic Shadows
Note.pngNote:This feature was originally from Quake GLQuake. To enable Dynamic Shadows r_shadows must be set to 1

AI

  • AI flocking - NPCs can group together, seen with Houndeyes.
  • Scripted sequences - Used extensively to tell Half-Life's story.
  • Player Bots - play multiplayer offline with bots. (only in Counter-Strike: Condition ZeroCounter-Strike (Xbox))

Sound System

  • Supports MP3 (since 2003), WAV audio files, aswell as CD audio.
  • Hardware accelerated audio (A3D/EAX) - improves DSP sound effects (such as removing echo's buzzing noises), and add surround sounds support (Removed since 2013 SteamPipe update).
    • Requires Sound Blaster-compatible (or A3D-compatible) sound cards (but can be bypassed using workaround below).
    • While support for A3D/EAX was removed in most GoldSrc games since SteamPipe update (but can be restored using MetaAudio, which requires disabling VAC to work), there are some GoldSrc games that still support A3D/EAX. However, starting with Windows Vista or later, it requires an workaround to enable A3D/EAX audio.

UI

  • VGUI2 - Introduced in 2003 update (Steam), Valve's custom GUI interface mimics most of the Windows controls. This will allow the game to switch between the game and the menu quicker, without switching resolutions to 640x480, which adds delay.

Programming and Platforms

  • GoldSrc supports various platforms, such as Windows, macOS and Linux, aswell as consoles (PlayStation 2, Original Xbox).
  • All, or most of the engine code written on C/C++ using Visual Studio 2010, and 2019 (since 25th anniversary) or later.

Tools

Other

  • In-game advertisements (Counter-Strike Counter-Strike, removed since SteamPipe) - Introduced in 2007.

Since 25th Anniversary

  • Increased engine limits - Valve has increased engine limitations, allowing for more entities and detailed maps.
  • func_vehicle entity support from Counter-Strike Counter-Strike
  • Native Steam Deck Steam Deck support
  • Steam Input support - Steam Input support was added, which allows the game to support more controllers and buttons. VGUI menu can be navigated using the controller.

Versions and forks

Icon-broom.png
This article or section needs to be cleaned up to conform to a higher standard of quality.
For help, see the VDC Editing Help and Wikipedia cleanup process. Also, remember to check for any notes left by the tagger at this article's talk page.
Todo: Most of these aren't branches; branches exist concurrently, rather than flat-out replacing old codebases.
Todo: when were SDK 2.1, 2.2, and 2.3 released?

Stub

This article or section is a stub. You can help by adding to it.

Year Version Company Features Base Notes
1998 [Clarify] v1.0.x.x/SDK v1 Valve Valve Software Per-texture palettes, Coloured lighting Quake (id Tech 2) v30 .bsp, v10 .mdl
1998[Clarify] v1.1.x.x/SDK v2.0 Valve Valve Software VGUI v1.0.x.x/SDK v1 v30 .bsp, v10 .mdl
2001 (leak)[Clarify] Dreamcast Gearbox Software Gearbox Software Compressed model textures v1.1.x.x/SDK v2.0 v30 .bsp, v11 .mdl
2002 007 Nightfire Gearbox Software Gearbox Software Direct3D 8 renderer
MSAA support
v1.1.x.x/SDK v2.0 (For PC)
Modified id Tech 3 (For consoles)[citation needed]
v42 .bsp, v14 .mdl
2003 PlayStation 2 Gearbox Software Gearbox Software LOD models Dreamcast v40 .bs2, v10 .dol
2003 Xbox Ritual Entertainment Ritual Entertainment Improved lighting Counter-Strike: Condition Zero engine branch earlier version v30 .bsp, v11 .mdl, .sxwad format instead of wad
2003 Counter-Strike Neo engine branch Namco Heavily modified OpenGL Renderer
Native linux support
v1.1.x.x/SDK v2.0
Confirm:only for ver.1

Counter-Strike: Condition Zero engine branch (ver.2)
v30 .bsp, v10 .mdl [confirm]
2003 Steam Valve Valve Software VGUI2
Widescreen resolution support
v1.1.x.x/SDK v2.0 v30 .bsp, v10 .mdl
2004 Counter-Strike: Condition Zero engine branch Valve Valve
Turtle Rock Studios Turtle Rock Studios
Gearbox Software Gearbox Software
Ritual Entertainment Ritual Entertainment
Player Bots
Detail textures
v1.1.x.x/SDK v2.0[confirm] v30 .bsp, v10 .mdl [confirm]
2007[Clarify] Paranoia HLSDK fork Paranoia HLSDK fork Paranoia Team New OpenGL Renderer Counter-Strike: Condition Zero engine branch v30 .bsp, v10 .mdl [confirm]
2013 Cry of Fear engine branch Cry of Fear engine branch Team Psykskallar Improved paranoia's OpenGL Renderer Paranoia HLSDK fork Paranoia HLSDK fork[3] v30 .bsp, v10 .mdl [confirm]
2013 2013 SteamPipe (SDK 2.4) Valve Valve Software Linux and Mac support
FBO renderer
MSAA (4X) support
Removed support for EAX/A3D surround sound and Direct3D 7 renderer
Steam v30 .bsp, v10 .mdl
2016 Svengine Svengine Sven Co-op Team AngelScript
FMOD audio (restores EAX/surround sound features)
Extended engine limits
2013 SteamPipe v30 .bsp, v10 .mdl
2023 25th anniversary, aka HL25 (SDK 2.5) Valve Valve Software Increased engine limit
Steam Input
Shaders
Widescreen (Hor+) FOV
2013 SteamPipe v30 .bsp, v10 .mdl

Half-Life SDK

Main article:  Half-Life SDK

As of August 2013, it is available on Steam Steam under the "Tools" section. With it comes Hammer 3.x Hammer 3.4, the 3ds Max sources for many cut and retail NPCs as well as player and weapon models, tools for packing textures into WADs, and detailed documentation on implementing baseline features such as voice chat into a mod.

The full source code for Half-Life SDK (2.5), which contains changes from Half-Life 25th anniversary update, can be found on Valve's GitHub Page. Source code for previous version (SDK 2.4) can be found here.

Note.pngNote:Hammer 3.x Hammer 3.5 is the final GoldSrc-only editor released by Valve and can be downloaded separately, such as through the Sven Co-op Sven Co-op SDK.

Products using GoldSrc ViewDiscussEdit templatePurge

Year Title Developer(s) Publisher(s) Platforms Notes
1998 Half-Life Half-Life Valve Sierra Entertainment (retail)
Valve (digital)
PC: Windows, Mac, Linux
Console(s): PlayStation 2
First official game to use the GoldSrc engine.
The macOS Mac port (for Mac OS 9, OS X on PowerPC systems) by Logicware was originally cancelled in 2000 before it's was silently released for Intel Macs running OS X/macOS in 2013 by Valve.
The game received a major update in November 17, 2023, for it's 25th anniversary, which fixes tons of bugs, added new maps and content and increased engine limits.
1999 Half-Life: Opposing Force Half-Life: Opposing Force Gearbox Software, Valve PC: Windows, Mac, Linux First official expansion for Half-Life Half-Life.
Team Fortress Classic Team Fortress Classic Valve PC: Windows, Mac, Linux Remake of Quake mod, Qtf-16px.png Team Fortress in GoldSrc engine.
Sven Co-op Sven Co-op Sven Co-op Team Sven Co-op Team PC: Windows, Mac, Linux GoldSrc was later forked into Svengine since version 5.0, which was slightly different than GoldSrc, and has support
for Hor+ FOV, better audio via FMOD, and so on..., aswell as increased engine limitations.
Sven Co-op is a co-op mod that allows you to play Half-Life Half-Life, it's expansions and other single player campaigns with multiplayer.
2000 Counter-Strike Counter-Strike Valve Sierra Entertainment (retail)
Valve (digital)
PC: Windows, Mac, Linux Originally was an Half-Life mod, it was later available to purchase seperately from Half-Life. The game later become popular when it was released and kickstart several tournaments involving Counter-Strike games.
Gunman Chronicles Gunman Chronicles Rewolf Entertainment Sierra Entertainment PC: Windows
Ricochet Ricochet Valve Valve PC: Windows, Mac, Linux
2001 Deathmatch Classic Deathmatch Classic PC: Windows, Mac, Linux
Half-Life: Blue Shift Half-Life: Blue Shift Gearbox Software, Valve Sierra Entertainment (retail)
Valve (digital)
PC: Windows, Mac, Linux Second official expansion to the original Half-Life, aswell was set hours earlier and during the event of Half-Life. Players play as Barney Carlhoun, who later returned in Half-Life 2 series.
WANTED! WANTED! Maverick Developments Maverick Developments PC: Windows
Half-Life: Decay Half-Life: Decay Gearbox Software Sierra Entertainment PC: Windows (unofficial)
Console(s): PlayStation 2
Half-Life last expansion, exclusive to PlayStation 2. An unofficial port of Half-Life Decay for PC developed by Hoaxer, was released in 2008.
2002 Natural Selection Natural Selection Unknown Worlds Unknown Worlds PC: Windows
James Bond 007: Nightfire James Bond 007: Nightfire Eurcom, Gearbox Software (PC) Electronic Arts PC: Windows, Mac (PowerPC)
Console(s): PlayStation 2, Original Xbox, GameCube, Game Boy Advance
Highly modified engine with MSAA support (up to 8X) and Direct3D 8 (DX8). Consoles version uses entirely different engines, and have more content than PC version.
Also only GoldSrc game to be ported to PowerPC-based Mac (Half-Life port to PPC Mac was cancelled).
2003 Day of Defeat Day of Defeat Valve Activision, Valve (digital) PC: Windows, Mac, Linux
Counter-Strike (Xbox) Counter-Strike (Xbox) Ritual Entertainment, Turtle Rock Studios Xbox Game Studios (formerly Microsoft Studios) PC: Windows
Consoles: Original Xbox
Counter-Strike Neo Counter-Strike Neo Namco Namco PC (Arcade)
2004 Counter-Strike: Condition Zero Counter-Strike: Condition Zero
Condition Zero Deleted Scenes Condition Zero Deleted Scenes
Valve, Ritual Entertainment, Gearbox Software, Turtle Rock Studios Sierra Entertainment, Valve (digital) PC: Windows, Mac, Linux Last Valve game to be developed on GoldSrc engine (CS Online and Nexon Studio does not count).
2007 Paranoia Paranoia Paranoia Team Paranoia Team PC: Windows, Mac, Linux Features modified OpenGL renderer for better graphics, downside of this is that the custom OpenGL renderer file "opengl32.dll" may get deleted by the game when launching any GoldSrc game outside Paranoia or prevents the player from playing multiplayer (due to VAC VAC, which might also ban users for custom dlls file). This issues does not affect the Xash3D port (which also makes the game completely standalone).
2008 Counter-Strike Online Counter-Strike Online Valve, Nexon Nexon PC: Windows Free to play game based off Counter-Strike: Condition Zero Counter-Strike: Condition Zero with microtranscations and skins, aswell as many other game modes like Zombies.
This version doesn't require Steam, and is only available in Asia. The console commands has been restricted to only some commands to prevent cheating and other exploits.
2013 Cry of Fear Cry of Fear
Condition Zero Deleted Scenes Condition Zero Deleted Scenes
Team Psykskallar Team Psykskallar PC: Windows, Mac, Linux Runs on older, but highly modified version of GoldSrc (based off Paranoia Paranoia) with better graphics. Standalone mod.
2014 Counter-Strike Nexon: Studio Counter-Strike Nexon: Studio Valve, Nexon Nexon PC: Windows Last officially licensed game to use the GoldSrc engine. Worldwide (America, Europe) version of Counter-Strike Online Counter-Strike Online. Originally called as Counter-Strike: Nexon Zombies.
2015 Headcrab Frenzy! Crystice Softworks PC: Windows, Linux
2020 Halfquake Trilogy Philipp Lehner PC: Windows
Digital Paintball Redux DPB Redux Dev Team PC: Windows
Half-Life: Absolute Zero Half-Life: Absolute Zero Cobalt-57 PC: Windows
2023 Half-Life: MMod Half-Life: MMod MMod Team Gunship_Mark_II PC: Windows, Linux
Year Title Developer(s) Publisher(s) Platforms Notes

Specifications

Engine
Limits GoldSrc Pre-25th GoldSrc Post-25th Xash3D Xash3D Svengine Svengine
Maximum number of dynamic sound channels 8 32 64 N/A
Default max number of server entities (MAX_EDICTS) 900 1200 600 - 8192 8192
Absolute max number of server entities (via liblist.gam edits) 2048 2048 8192 N/A
Maximum number of temporary entities (MAX_TEMPENTS) 500 N/A 300 - 2048 N/A
Maximum number of particles (MAX_PARTICLES) 4096 N/A 1024 - 131072 N/A
Maximum number of beams (MAX_BEAMS) 64 N/A 64 - 512 256
Maximum number of visible entities in the package (MAX_VISIBLE_PACKET) 256 1024 2048 N/A
Maximum number of pre-cacheable models and sprites (MAX_MODELS) 512 N/A 1024 (4096 in FWGS) 8192
Maximum number of pre-cached sounds (MAX_SOUNDS) 512 N/A 2048 4096
Maximum number of entries to read sentences made up of sentences (MAX_SENTENCES) 1536 2048 4096 N/A
Maximum number of user messages (MAX_USER_MESSAGES) 128 N/A 191 N/A
Max number of loaded textures (MAX_TEXTURES) 2048 N/A 4096 (8192 in FWGS) N/A
Max number of GL textures (MAX_GLTEXTURES) 4800 10000 4096 (8192 in FWGS) N/A
Number of messages titles.txt (MAX_MESSAGES) 1024 N/A 2048 N/A
Maximum size of indexed textures 512х512 512x512 8192х8192 N/A
Maximum size of full color textures 512х512 512x512 8192х8192 N/A
Maximum number of models on the map (MAX_MAP_MODELS) 256 N/A 768 (1024 in FWGS) 4096
Maximum number of map leafs (MAX_MAP_LEAFS) 8192 N/A 32767 65536
Maximum number of entities per packet (MAX_PACKET_ENTITIES) 256 1024 256 512
Maximum number of spans (software renderer geometry limit) 3000 6000 N/A N/A
Maximum number of surfaces (software renderer geometry limit) 2000 4000 N/A N/A
Maximum number of edges (software renderer geometry limit) 7200 14400 N/A N/A

Bugs and Limitations

Icon-broom.png
This article or section needs to be updated to include current information regarding the subject because:
Half-Life 25th Anniversary Update fixes a lot and breaks other stuff.
Remember to check for any notes left by the tagger at this article's talk page.

Use GitHub in order to prevent duplicate or outdated bug reports at the wiki.

Icon-Bug.pngBug:Various GoldSrc non-standalone mods has been broken with the recent Half-Life Half-Life update, as part of its 25th anniversary. Some of these games would crash on startup with Visual C++ error.
Other games like Team Fortress Classic Team Fortress Classic was also affected, but appears to work almost perfectly fine aside from HUD scaling fixes were non-functional. And another one such as Counter-Strike Counter-Strike, which has been fixed to support the 25th anniversary update, may have other problems and issues that can crash the game. Additionally, mods that use custom OpenGL renderer (such as Paranoia Paranoia (non-Xash3D version) and older version of Cry of Fear Cry of Fear, etc...) will be also crashed on startup aswell (Issues #3710).
PlacementTip.pngWorkaround:To temporarily fix this, select the beta branch steam_legacy on Half-Life (and in some games such as Counter-Strike) by going to Half-Life > Properties... > Betas > select steam_legacy. Once those games has been fixed, you can opt out by set the beta branch to "None".
  [todo tested in?]
Icon-Bug.pngBug:Overbright lighting (gl_overbright 1) is broken due to an OpenGL extension used for multi-texturing, which is required for the detail textures used by Counter-Strike: Condition Zero Counter-Strike: Condition Zero, Day of Defeat Day of Defeat, and some third-party mods.
This make the color less saturated and lighting much less brighter, as well as introduce chromatic aberration on brightly lit lightmaps.
The issue was fixed in the 25th anniversary update, which deprecated the gl_overbright 1 in favor of gl_use_shaders 1. However, there are more issues that was yet to be fixed with the new overbright lighting.
This issue can be also found on GLQuake, but for different reasons.
PlacementTip.pngWorkaround:To fix this for the older version of Half-Life Half-Life (steam_legacy branch) and most standalone mods, see Pcgw icon.png Overbright lighting section in PCGamingWiki's Half-Life page for more information.
Icon-Important.pngImportant:Please note that using DLL-based solutions in VAC VAC-protected multiplayer servers may result in a false positive ban. Use -insecure to disable VAC for local servers. This is not an issue for singleplayer, which is unaffected by VAC. Additionally, GPU driver hacks do not trigger VAC.
Note.pngNote:Even though the overbright was properly fixed with the 25th anniversary update and with the November 19 hotfix patch, which fixes the brightness issues after enabling overbright, along with another one that fixed the underwater fog bug, models may not be affected by the overbright lighting.
  [todo tested in?]
Icon-Bug.pngBug:On some systems running Windows Windows Vista or later, the engine may suffer from extremely low frame rates during gameplay, especially on Intel iGPUs.
PlacementTip.pngWorkaround:
  [todo tested in?]
Icon-Bug.pngBug:Creative EAX and Aureal A3D Audio are no longer supported since SteamPipe update in 2013. This also removes support for surround sound, and drastically impacts how certain DSP effects sound (such as buzzing noises on DSP's Weirdo 1-3). A feature request about restoring EAX/A3D sound can be found at GitHub (issue #38).
PlacementTip.pngWorkaround:Use MetaAudio; see the Pcgw icon.png Audio section on PCGamingWiki's Half-Life page for more information.
Icon-Important.pngImportant:Please note that using MetaAudio in VAC VAC-protected multiplayer servers may result in a false positive ban. Use -insecure to disable VAC for local servers. This is not an issue for singleplayer, which is unaffected by VAC.
  [todo tested in?]
Icon-Bug.pngBug:Running any GoldSrc game other than Half-Life Half-Life over around 100-120FPS or higher can cause issues with movable objects (and prior to October 8, 2019 update, NPC turn rate), being slower or faster. Player movements in Counter-Strike Counter-Strike, Counter-Strike: Condition Zero Counter-Strike: Condition Zero and Condition Zero Deleted Scenes Condition Zero Deleted Scenes, after jumping, will be much slower than normal for few seconds.
Note.pngNote:NPC turn rate bug will remains existed on most older, non-standalone mods (which was made on a older version of GoldSrc/HL SDK) when loaded on current version of HL1 (or other GoldSrc games) that have this bug fixed unless the dlls file (hl.dll and client.dll) on the mod folder itself was renamed. But keep in mind that this method may breaks some mods and cause it to crash, or made several new additions such as new weapons, new NPCs, etc... from the mod stops working.
  [todo tested in?]
Icon-Important.pngImportant:OpenGL mode is somewhat different from software mode. Furthermore, the wave effect on water does not work with software renderer. See patbytes's "Half-Life - A Look at Water" on YouTube. Issue 2165.

Trivia

  • The term "GoldSrc" comes from development of the Source engine. A few months before the release of Half-Life, the Half-Life engine's source code was split into two branches: Src and GoldSrc. The GoldSrc branch was the gold master version of the codebase, and would be used for the proper release of the game. The Src branch, comparatively, would be continually iterated upon, adding and changing features for use in the sequel, with the term "Source Engine" eventually being picked up by marketing.[1]

See also

External links

References

  1. User talk:Erik Johnson (Revision as of 12:53, 1 September 2005)
  2. Half-Life 25th Anniversary Update
  3. Relation between Paranoia & COF