This article relates to the game "Counter-Strike: Global Offensive". Click here for more information.
This article's documentation is for anything that uses the Source engine. Click here for more information.

Counter-Strike: Global Offensive engine branch

From Valve Developer Community
Jump to: navigation, search
English (en)中文 (zh)Translate (Translate)

The CS:GO engine branch Counter-Strike: Global Offensive engine branch was introduced in 2012 with the release of Counter-Strike: Global Offensive Counter-Strike: Global Offensive, branching off from Left 4 Dead engine branch Left 4 Dead engine branch (with some Portal 2 additions). It is the latest Source 1 engine branch available and succeeds the Portal 2 engine branch Portal 2 engine branch.

This branch has been continued to be updated for CS:GO (via csgo_legacy branch) after the Counter-Strike 2 Counter-Strike 2 release (which replaced CS:GO). But as of Jan 1, 2024, CS:GO is no longer being updated by Valve. The engine branch, however are still remain maintained for third-party games that use the CS:GO branch, including Strata Source, and most likely still available for licensing.

Like other Source engine branches since Left 4 Dead (except Alien Swarm), the source code was not publicly available. However in 2020, the source code for this branch (dated 2017-2018), alongside the full source code of Team Fortress 2's Source 2013, has been leaked.

Note.pngNote:This engine branch has been upgraded over time, so some games or mods on this engine branch may not have all of these features. Many features are exclusive to Counter-Strike: Global Offensive Counter-Strike: Global Offensive.
Note.pngNote:Dota 2 Dota 2 used to be the latest Source 1 branch available, succeeding the CS:GO engine branch, but the 2015 Reborn update, which upgraded the game to Source 2, makes CS:GO the latest Source 1 branch available.

Features

New since the Portal 2 engine branch Portal 2 engine branch is:

FXAA anti-aliasing
Simple post processing effect aimed to remove jaggies on geometry and other object at the cost of image quality, but are much faster than other anti-aliasing method, such as MSAA.
FXAA can be also used with MSAA (such as 2X) at the same time. This will benefits most lower-end PC that struggles to run MSAA 4X or higher, it will also benefit models, transparent textures and other objects that MSAA was unable to remove jaggies or staircase effect on them.
Real-time dynamic shadows
env_cascade_light provides dynamic, high-resolution cascade shadow mapping for the outdoor light of light_environment.
Lightmapped Ambient Occlusion
VRAD can now bake ambient occlusion into the lightmaps for a map, leading to enhanced realism.
Bump mapped decals
LightmappedGeneric decals now support bump maps.
Scaleform (officially called Scaleform GFx)
A vector graphics rendering engine used to display Adobe Flash Adobe Flash-based UI and HUD for games. CS:GO uses Scaleform for the in-game HUDs and the main menu (until 2018).
VPK version 2
New version of VPK file format. Later backported to all Source 2013 Source 2013 games.

Newer Features

Features introduced with later updates to the branch.

Phong reflections on Lightmapped materials
LightmappedGeneric and WorldVertexTransition now support diffuse Phong reflections.
Texture streaming
Reduce system RAM and graphics card VRAM by streaming textures.
Vertex lighting for bumpmapped static props
Static props with bump maps can now receive vertex lighting, better blending them into the environment. All static props also now receive better lighting.
Anisotropic reflection emulation
Brush shaders can now emulate anisotropic specular reflections using new parameters.
Bump map blending for LightmappedGeneric
Two bump maps can now be blended together for high-frequency and low-frequency bumpmap variation on the LightmappedGeneric shader.
Lightmapped_4WayBlend
A displacement shader that can blend four different materials together by luminance.
Prop combination
VBSP now supports combining selected static props during map compilation, increasing performance and lowering draw calls.
Increased engine and compilier limits
The engine now supports more entities, more models and more displacements.
Note.pngNote:Document all of the increased limits.
New first-person weapon lighting.
First-person weapon view now support more detailed lighting.
Static prop scaling
Panorama UI
Introduced in 2018, replacing Scaleform, Valve's new Custom GUI interface that resembles modern web design and authoring (HTML5/CSS/JS). Using .XML and JavaScript files, developers can create dynamic and clean HUDs and menus and even high-quality in-game intractable panels.
Vulkan renderer (only in Linux)(also in Half-Life 2PortalTeam Fortress 2Left 4 Dead 2Portal 2 engine branchStrata SourceXengine)
A low-overhead, cross-platform graphics API, successor to OpenGL.
On Linux, where Direct3D is not supported, the Source Engine defaults to using Valve's in-house library ToGL to translate Direct3D calls to OpenGL. Using DXVK on Linux is usually recommended if the game supports it, as ToGL is known for having somewhat poor performance and causing some graphical issues.
Other improvements
Todo: Document these, this is just the tip of the iceberg.

Features removed/changed

Scaleform (officially called Scaleform GFx)
Removed in later updates of CS:GO, in favor of Panorama.
Dropped support for Shader Model 2 GPUs
CS:GO branch drops support for all DX9 GPUs without Shader Model 3.0.

[Todo]

Availability

Confirm:While this game is currently unreleased, and not announced yet, it's most likely based off a heavily modified CS:GO branch (according to SteamDB when viewing the Review_Build depot files) to include support for HL2 entities as it contains some features that can be only found on the L4D engine branch and later (EKV files, replacing the old DirectX Versions system), Panorama/Qt UI, more...

A third-party, heavily modified version of this engine, called Strata Source Strata Source, is also available, and it is used in the following games:

Source code for these branches is not available. However, authoring tools exist for custom content.