This article's documentation is for anything that uses the Source engine. Click here for more information.

Source: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Now it won't break the template as the Table tools was updated to fix the problem)
 
(527 intermediate revisions by 54 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar}}
|pl=Source:pl
 
{{Source topicon}}
 
{{Hierarchy}}
 
{{Infobox engine
| title = Source
| image = SourceLogoWhite.png
| imagewidth = 280px
| imagetooltip = Logo of the Source engine.
| image2 = Screenshot-CSS-Source_engine_comparison.jpg
| imagetooltip2  = Screenshot in-game of {{css|1}}, using the Source Engine, running on [[Team Fortress 2 engine branch|latest TF2 branch]].
| developer = [[Valve Corporation]]
| releasedates = October 7, 2004 <abbr style="color: #8bb9e0;" title="Counter-Strike: Source is the first Source engine game to be released."><sup>Note</sup></abbr>
| codelang = [[WP:C++|C++]], [[WP:C_(programming_language)|C]]
| sdk = [[SDK Docs|Source SDK Documentation]]
| platform = {{Win|1}}, {{Mac|1}}, {{Linux|1}}, {{xbox|1|nt=1}}, {{360|1}}, {{ps3|1}}, {{switch|1}}, {{android|1}}<br><font style="font-size:12px;">'''''Note:''' Valve (first-party) games only.''</font><!-- only first-party games -->
| sysreq =
| website = [https://web.archive.org/web/20110724220714/http://source.valvesoftware.com/ Official Website] (archived)
| links = {{github|ValveSoftware/Source-1-Games|GitHub Issues}} (bug report for all Source games, except CS:GO)<br>{{github|ValveSoftware/source-sdk-2013|Source SDK 2013 source code}}<br>{{steamicon}} [https://partner.steamgames.com/doc/sdk/uploading/distributing_source_engine Distributing Source games/mods & FAQ]
| license = [[WP:Proprietary software|Proprietary]] <br><font style="font-size:12px;">({{tf2branch}}, {{src13}}, {{asbranch}} source code available for non-commercial purposes.)</font>
| previousengine = {{Gldsrc|2}}
| nextengine = {{Src2|2}}
}}
}}
{{GameHierarchy}} 
[[Half-Life 2|Half-Life 2]]'s '''Source''' is a transformation of [[Half-Life]]'s [[Goldsource]].


[[File:Screenshot-CSGO-Source_engine_comparison.jpg|340px|thumb|right|Screenshot in-game of {{csgo|1}}. CS:GO used the [[Counter-Strike: Global Offensive engine branch|then latest]] engine branch, which added many new features and graphical improvements.]]
[[File:Apex Legends - Screenshot 5.jpg|340px|thumb|right|Promotional screenshot of {{apex|1}}, which runs on a [[Titanfall engine branch|heavily modified]] version of the Source Engine, featuring DirectX (Direct3D) 11, detailed models and better graphics, plus an increased engine limit. It also uses [[deferred shading]], allowing many dynamic lights to be lit with little to no performance loss.]]
<span style="color:white; font-weight: bold;">{{For|about=the game engine|the documentation on Source and its SDK|[[SDK|Source SDK Documentation]]|}}</span>
{{src|4}} (also referred as ''Source 1'') is a 3D game engine created by {{Valve|1}} in 2004, and is the successor to {{gldsrc|3.1}}. The {{src|1}} engine is well-known for its advancements in physics, AI, and graphics which made the games realistic for its time, while being scalable on older, less powerful hardware. One game, {{hl2|1}}, earned several awards for it's graphics, which were made possible with Source. {{src|name}} has been used by [[Valve]], [[#Third-Party|third-party companies]], and (much like GoldSrc) countless community [[Modification|mods]] by people around the globe, with at least 100 games developed on Source. The engine also has [[:Category:Source_engine_branches|several branches]], each with new features added and improved graphical capabilities.
Despite the Source engine being 20 years old, and being superseded by the {{source2|3.1}} engine for first-party usage since 2015, it's still being commonly used today by modders and third-party companies due to the lack of some Source 2 documentation, the sparse availability for third-party licensing, and it's regular maintenance with engine and security updates.
{{Clarify|not all {{src|name}} games have {{VAC|1|nt=0}}. See {{Apex Legends|1}}.}}
== Features ==
List of {{src|4.1}} engine features and capabilities. Some new features listed here may not apply to previous or newer Source branches, or third-party games/branches.


For a list of Source branches (including third-party games) with their specific new features, [[:Category:Engine branches|see this category page]].


== [[:Category:Programming|Renderer]] ==
=== [[:Category:Programming|Renderer]] ===
* Version 2.0 (and below) [[Pixel shader|shaders]], [[bump mapping]], [[LOD]] on models and world
* Supports [[Shader]] Model Versions 2.0 to 3.0
* Author [[shader]]s with [[HLSL]]
** Some third-party games can also support Shader Model 4.0, 5.0 and later by using D3D versions starting from 11 ({{titanfall}}, {{strata}}, etc).
* [[Anti-aliasing]] support (MSAA, FXAA, MLAA, TAA, etc.)
** See the [[Anti-aliasing]] page for more information, plus features & drawbacks with various anti-aliasing methods.
* More anisotropic and texture filtering options
** Anisotropic filtering allows textures on far distances to look sharper and less blurry.
** Compared to GoldSrc (prior to 2013) featuring only Bilinear or Trilinear texture filtering, {{src|name}} features more texture filtering options, ranging from Bilinear, Trilinear, Anisotropic 2x up to 16x.
* Support for both forward, [[deferred lighting|deferred]] and [[Clustered shading|clustered]] rendering pipelines.
** Source primarily uses the forward renderer, while {{dota2|1}}, as well as some third-party Source games ({{titanfall}}, {{bms}}, etc.) use the deferred renderer (shading or lighting).
** Deferred rendering is a rendering technique that allows games to render many dynamic lights with little performance impact. Deferred rendering is commonly used in most modern titles, and Dota 2 is the only official Source game to use this technique.
** Other titles such as {{p2ce|1}} also use the [[Clustered shading]] technique, resulting in similar lighting performance as the deferred renderer (both clustered, forward & deferred), but unlike deferred, clustered works with both forward & deferred rendering pipelines.
* [[Wikipedia:Bump mapping|Bump mapping]] and [[w:Normal mapping|Normal mapping]] on models and the world
* Authoring of [[shader]]s with [[HLSL]]
* Cube and environment mapping
* Cube and environment mapping
* Dynamic lights, vertex lighting and [[Vrad|light maps]], many light types including flickering, pulsing etc.
** Cubemapping also supports Anisotropy {{csgo|since}}
* [[HDR]] lighting
* [[$phong|Phong]] shading for models
* Water with refraction and fresnel effects
** Phong is also supported on world brushes {{csgo|since}}{{mb|also}}
* Advanced particle system that can emit sprites or models
* Dynamic lights, vertex lighting and [[lightmap]]s, including many light types including flickering, pulsing etc.
* Projected shadows allow for a large number of characters per scene
** [[Lightmap#Bicubic_lightmaps|Bicubic lightmap filtering]] {{only|{{hl2}} {{hls}} {{portal}} {{tf2branch}}}} - smoothing out the aliasing ("stair-stepping") at the cost of reduction of thinner details and more prominent seams.
* Occluder entities for visibility blocking
*  LDR (SDR) and [[HDR]] {{since|{{dods}}}} rendering
** HDR rendering is introduced with the release of {{dods|4}} (and {{hl2lc}} a month later), running on updated version of {{src04|1}}. HDR rendering is the process of generating computer graphics scenes using lighting calculations done in high dynamic range (HDR). It works by automatically adjust exposure and "blooming" colors above 100% brightness into neighboring areas, mimicking the way cameras and even eyes handle light exposure, then collapsing the image into SDR color range, resulting an image appears to have higher color saturation, more bloom and improved contrast while still technically being limited by the SDR color range.
** LDR rendering is the old way the game was rendered, and it has been deprecated since {{l4dbranch|2}}. This does not apply to some games such as the original release of {{dota2|1}}, for example.
** {{confusion|''Not to be confused with "HDR display output"'', which actually renders the image at higher brightness & more color range and contrast than a SDR monitor is capable of. The Source engine, by default, does not support HDR display output, except in {{apex|2}} on consoles.}}
* Water with refraction, real-time world reflections and Fresnel effects
** Water also supports [[Water (shader)#Special behaviour|flow mapping]] {{l4dbranch|since}}
* [[:Category:Particle System|Advanced particle systems]] that can emit [[sprite]]s or [[model]]s
* [[Dynamic RTT shadow angles in Source 2007|Render-to-texture]] shadows allow for a large number of characters per scene {{l4dbranch|since}} {{mb|also|addtext={{xe}}{{dmmm}}}}
* [[Func occluder|Occluder entities]] for visibility blocking
* Indoor/Outdoor environments
* Indoor/Outdoor environments
** Deformable terrain
** Deformable terrain
** [[3D Skybox|3D Skyboxes]] extend the horizon and add parallax on distant objects
** [[3D Skybox|3D skyboxes]] can extend the horizon and add parallax on distant objects
** Dynamically rendered organics (grass, trees etc)
** Dynamically rendered organics (grass, trees, etc.)
**[[$treeSway|Swaying trees]] {{l4dbranch|since}} {{also|{{tf2branch}}{{xe}}{{gmod}}{{mapbase}}}}
* Subdivision surfaces, diffuse & specular bump maps
* Subdivision surfaces, diffuse & specular bump maps
* Real-time radiosity lighting
* Real-time radiosity lighting
* Effects include but are not limited to: particles, beams, volumetric smoke, sparks, blood, environmental effects like fog and rain
* Real-time [[env_cascade_light|Cascaded Shadow Mapping]] from the skybox {{csgo|since}} {{asd|also|addtext={{cso2}}{{lw}}{{xe}}}}
* Effects that include but are not limited to: particles, beams, volumetric smoke, sparks, blood, and environmental effects like fog and rain
** [[Radial fog]], which prevents strengthen or weaken the fog effect when rotating the camera. Replaces planar-based fog. {{l4dbranch|since}} {{also|{{tf2branch}}, {{hl2}} 20th, {{mapbase}}}}
* Scalability
* Scalability
** [[DirectX_Versions|DX7-DX9]] hardware supported
* [[Screen Space Ambient Occlusion (SSAO)|Screen Space Ambient Occlusion]] (SSAO) {{only|{{sfm}} {{dota2|nt=1}}}}
 
** A technique for efficiently approximating the ambient occlusion effect in real time.
== [[:Category:Material_System|Materials System]] ==
* Widescreen display support
** {{Source|name}} is one of the earliest game engines to support Widescreen monitors natively (16:9 and 16:10 aspect ratio) without stretching the image, while most games from that era are usually designed for 4:3/5:4 displays only.<br> Games such as {{hl2|1}} supported widescreen displays at launch in 2004, with horizontal FOV (field of view), allow you to see more details.
* [[Physically Based Rendering|Physically Based Rendering]] {{strata|only|addtext={{tfbranch}}{{rr}}{{hdtf}}{{p2d}}}}
* [[Parallax mapping|Parallax Occlusion Mapping]]{{xe|only|addtext={{strata}}}}
* Support of various graphical backends (such as Direct3D, OpenGL, Vulkan)
* Direct3D versions
** [[DirectX Versions#DirectX_9|Direct3D 9]]
*** On earlier versions of Source ({{src04|1}} up to {{src13|1}}), it had a Hardware DirectX level system (similar to [[Wikipedia:Direct3D#Feature_levels|feature level system]] in Direct3D 10 and later) that allowed the game to render on older GPUs supporting only DirectX 8.0, 8.1 (Pixel Shader 1.x), by disabling DirectX 9-only graphical features not available on these older cards. Previous versions of Source ({{src04}} and {{src06}}), as well as Source 2013 RTX Remix games, also had support for DirectX 7.0 and 6.0 render paths. This can be changed using the {{code|[[mat_dxlevel]]}} console command, or by using the {{code|-dxlevel}} [[command line argument|launch option]].
*** {{Note|This DirectX level system was deprecated in {{l4dbranch|1}}.<br>Also, this DirectX level system doesn't actually affect or change Direct3D versions as Source games will always run on Direct3D 9.}}
** [[DirectX Versions#D3D9Ex|Direct3D 9Ex]] {{src13|since}} {{also|1={{srcmp}}<abbr style="color: #8bb9e0;" title="Added since 2011."><sup>Note</sup></abbr>, {{csgo}}}} - DX9 Windows Aero extensions, requires {{Win7|3.1|nt=Vista}} or later. Users can enable/disable this in Video Settings - Advanced (Windows Aero extensions), or through the [[command line argument|launch option]] {{code|-disable_d3d9ex}} {{csgo|only}}.
** [[DirectX Versions#DirectX_11|Direct3D 11]] {{tfbranch|only|addtext={{strata}}{{Vindictus}}}}
** [[DirectX Versions#DirectX_12|Direct3D 12]] {{Apex|only}}
**{{Note|[[DirectX Versions|Direct3D 9]] can be forced by the launch option {{code|-dx9}}, if it was forced by commands such as {{code|-gamepadui}}, which enables both the [[Gamepad UI in mods|Gamepad UI]] and Vulkan renderer unless combined with {{code|-dx9}}}}
* [[OpenGL]]{{src09|since|addtext= /{{srcmp}}}} which is another graphics API used in Source games on {{mac|1}} and {{Linux|1}}.
** Source Engine ships with ToGL to translate Direct3D (DirectX) calls to OpenGL, and uses {{code|dxlevel 92}}, which is the [[OpenGL]] equivalent to DirectX 9 Shader Model 3 (D3D9.0c).
*[[Vulkan]] graphics API {{hl2|only|addtext={{portal}}{{rr}}{{l4d2}}{{portal2}}{{csgo}}}}
** A low-level API, and the successor to OpenGL. Vulkan can be used to workaround various graphical issues such as {{portal2|4}}'s [[Env_projectedtexture|projected textures]], which does not render properly on newer graphics drivers (both NVIDIA and AMD). Vulkan can be enabled by using the {{code|-vulkan}} [[command line argument|launch option]].
{{note|{{csgo|2}} only supports Vulkan on {{Linux|1}}}}
{{note|Source allows up to 8 [[LOD Models]], although it does not have automatic [[w:Level of detail (computer graphics)|level of detail]] out of box. Manual LoD is supported, however.}}
{{warning|{{csgo|2}} currently does not support level of detail. [[$lod]] will be ignored, but the model will still work. Try to avoid using this command in {{csgo}}.}}


* Instead of traditional textures, '''Source''' defines sets of materials that specify what the object is made from and the texture used for that object. A material specifies how an object will fracture when broken, what it will sound like when broken or dragged across another surface, and what that object's mass and buoyancy are. This system is much more flexible than other texture only based systems.
=== [[:Category:Material System|Materials System]] ===
* Materials can interact with objects or [[NPC]]s such as mud or ice for vehicles to slide/lose traction on.
* Instead of traditional textures, '''Source''' defines sets of materials that specify what the object is made from and the texture used for that object. A material specifies how an object will fracture when broken, what it will sound like when broken/interacted with, and what that object's mass and buoyancy are. This system is much more flexible than older texture-only systems.
* Materials can interact with objects or [[NPC]]s, such as mud or ice for vehicles to slide/lose traction on.


== [[Source Multiplayer Networking|Multiplayer Network Code]] ==
=== [[Source Multiplayer Networking|Multiplayer Network Code]] ===
* Time and gamer tested by millions of gamers around the world
* Time- and gamer-tested by millions of people around the world
* Support for both [[Wikipedia:LAN|LAN]] based multiplayer and Internet based multiplayer games
* Support for both [[wikipedia:Local area network|LAN]]-based multiplayer and Internet-based multiplayer games
* Prediction analysis for interpolating collision/hit detection
* Prediction analysis for interpolating collision/hit detection
* Optimizations for high-latency, high-packet loss 56k connections
* Optimizations for high-latency, high-packet-loss 56k connections
* [https://partner.steamgames.com/doc/features/multiplayer/networking Steam Networking] support {{only|{{tf2branch}}{{synergy}}}}
** Allows self-hosting using [https://partner.steamgames.com/doc/features/multiplayer/steamdatagramrelay Steam Datagram Relay], meaning users can easily create joinable servers without port forwarding.


== [[:Category:Modeling|Advanced Characters]] ==
=== [[:Category:Modeling|Advanced Characters]] ===
* Detailed and believable characters
* Detailed and believable characters
* Realistic eyes
* Realistic [[Eyeball|eyes]]
** Focus on player/object, not simply parallel views
** Focus on player/object, not simply parallel views
** Proper eye bulge for realistic eye reflections
** Proper eye bulge for realistic eye reflections
* Simulated musculature provides outstanding emotions, speech and body language
* Simulated musculature provides outstanding emotions, speech, and body language
* [[:category:Choreography|Language independent speech]], characters can naturally speak in many languages
* [[:Category:Choreography|Language independent speech]], characters can speak naturally in many languages
* Skeletal/bone system for animation
* Skeletal/bone system for animation
* Layered animation system can synthesize complex animations out of several pieces
* Layered animation system can synthesize complex animations out of several pieces


== [[:Category:Programming|Physics]] ==
===[[:Category:Physics|Physics]]===
* More responsive world with realistic interactions
* Source uses the [[Havok]] physics engine, licensed from the Havok Group (now acquired by [[w:Microsoft|Microsoft]])
* Sounds & graphics follow from physics
* A more responsive world with more realistic interactions
* AI characters can interact with physically simulated objects
* AI characters can interact with physically simulated objects
* Ropes/cables, machines, constraint systems, [[Wikipedia:Ragdoll physics|ragdoll physics]]
* Includes support for ropes/cables, machines, constraint systems, and [[w:Ragdoll physics|ragdoll physics]]
* Can be controlled by level design
* Can be controlled by level design
* Kinematic animated bone followers
* Kinematic animated bone followers
Line 60: Line 139:
** Realistic suspensions with springs on each wheel
** Realistic suspensions with springs on each wheel
** Realistic leaning during acceleration/deceleration and turning
** Realistic leaning during acceleration/deceleration and turning
** Individually tunable parameters such as horsepower, gearing, max speed, shift speed, tire material, tire friction, spring tension/dampening etc.
** Individually tunable parameters such as horsepower, gearing, max speed, shift speed, tire material, tire friction, spring tension/dampening, etc.
** Multiple players in a vehicle in multiplayer
** Multiple players/NPCs in a vehicle
** Hovercraft support for cheaper simulation
** Hovercraft support for cheaper simulation


== [[:Category:AI|Advanced AI]] ==
=== [[:Category:AI|Advanced AI]] ===
* [[Inputs_and_Outputs|I/O system]] allowing level designers to control [[:Category:AI|AI]]
* [[Inputs and Outputs|I/O system]] allows level designers to control AI
* Sophisticated navigation: characters that run, fly, jump, crouch, climb stairs and ladders, and burrow underground
* Sophisticated navigation: characters that run, fly, jump, crouch, climb stairs and ladders, and burrow underground
* AI senses things using sight, sound, smell
* AI that senses things using sight, sound, and smell
* [[ai_relationship|AI relationships]] determine friend/foe status of other entities
* [[ai_relationship|AI relationships]] determine friend/foe status of other entities
* Battle AI allows squads of AI characters to operate together, know when to advance, retreat, lay cover fire, etc.
* Battle AI allows squads of AI characters to operate together, knowing when to advance, retreat, lay cover, fire, etc.


== [[:Category:Sound_System|Sound System]] ==
=== [[:Category:Sound System|Sound System]] ===
* 7.1, 5.1 surround sound, 4 speaker surround
* Uses the [https://www.radgametools.com/miles.htm Miles Sound System] as middleware (except in some third-party games) or the free & open-source [https://github.com/misyltoad/VAudio-MiniMP3 VAudio minimp3] {{since|{{tf2branch}}}}
* Support 7.1, 5.1 surround sound, 4 speaker surround
: {{Bug|Despite all Source games prior to {{as|1}} having the 7.1 audio option, the game only outputs only 5.1 surround despite 7.1 selected. This issue does not affect some third-party games, such as {{titanfall2|1}}, and {{apex|1}} as they used newer versions of the Miles Sound System, which have this problem fixed.}}
: {{Note|Some or newer Source games (such as {{as|1}}, {{portal2|1}} and {{csgo|1}}) may not include options to enable 7.1 surround sound without using console commands.}}
* High-quality 3D spatialization
* High-quality 3D spatialization
* Custom software DSP
* Custom software [[DSP]]
* Automatic DSP based on environmental geometry
* Automatic DSP based on environmental geometry
* ADPCM decompression
* Microsoft ADPCM-compressed [[WAV]] files
* 16-bit 44KHz, stereo wave data with all features
* 16-bit 44.1 KHz (CD Quality), stereo wave data with all features
* MP3 decompression (requires [http://www.radgametools.com/miles.htm Miles] license)
: {{Note|Source does ''not'' support 48 KHz audio (DVD Quality) by default.}}
* Support for audio streaming on any wave
* [[MP3]] decompression
* Real-time wave file stitching
** MP3 decompression used in many Source games requires [http://www.radgametools.com/miles.htm licensing from Epic (RAD) Game Tools]. Alternatively, [https://github.com/misyltoad/VAudio-MiniMP3 minimp3] may be used instead.
* Support for audio streaming on any wave {{clarify}}
* Real-time wave file stitching {{clarify}}
* Pre-authored Doppler effect encoded waves
* Pre-authored Doppler effect encoded waves
* Pre-authored distance variant encoded waves
* Pre-authored distance variant encoded waves
* [[Commentary System|Commentary system]]
* [[Commentary System|Commentary system]]


== [[:Category:VGUI|UI]] ==
=== [[:Category:VGUI|UI]] ===
* '''Server browser''' - Displays all active game servers and allows a player to choose which one to participate on. Players can filter and sort server lists in order to speed up the display and selection of a server.
<div style="float:right">
* '''Friends instant messenger''' - (Undergoing Maintenance) Allows players to message each other both in and out of the game as well as join friends in existing games. No more confusion about what server your friends are on, you can easily join with this feature. The '''Friends''' button has removed from the game menu and goes to [[Steam Community]] In-Game.
[[File:Ep2_menu.jpg|340px|thumb|Screenshot of {{hl2ep2|1}} main menu, which is rendered using VGUI, with '''New Game''', '''Options''', and '''Achievements''' window opened.]]
* '''[[Vgui|VGUI]]''' - Valve's custom GUI interface mimics most of the Windows controls but is rendered using the '''Source''' engine for both in game and out of game uniform '''UI''' display. Some features:
[[File:HL2_GamepadUI_menu.png|340px|thumb|Screenshot of VGUI's Gamepad UI used in some {{src13|1}} games after 2022. This UI was enabled by default when playing on {{deck|1}}.]]
** Dynamic in-game [[HUD]] display
<!-- TODO: CSGO menu -->
** Many [[Wikipedia:Widget (computing)|widget]]s/controls (i.e. buttons, treeview, html control, ...)
</div>
 
* '''Server browser''' Displays all active game servers and allows a player to choose which one to participate in. Players can filter and sort server lists to speed up the display and selection of a server.
* '''[[:Category:VGUI|VGUI]]''' Valve's custom GUI interface mimics OS windows but renders them using the '''Source''' engine for both in game and out of game uniform '''UI''' display.
** Dynamic in-game [[HUD Elements|HUD]] display
** Many [[wikipedia:Graphical widget|widgets]]/controls (e.g., buttons, treeview, html control…)
** Themes/custom visualization allowed
** Themes/custom visualization allowed
** Platform independent
** Platform independent
** Localized texts (Unicode compliant)
** Localized text (Unicode compliant)
** '''[[Gamepad UI in mods|Gamepad UI]]''' <!-- TODO: Create a page about Gamepad UI in general --> ({{src13|4.1}} version) — Since the release of {{hl2|3.1}} (and its episodes) as well as {{portal|3.1}} updates in 2022, Valve have added a modern UI which is designed for consoles and handhelds like the {{steamdeck|2}}. With the new Gamepad UI, the UI is scalable across any resolution (including 4K and higher), unlike the regular VGUI, which does not automatically scale up to the resolution. This UI can be enabled manually by using the {{code|-gamepadui}} [[command line argument]] (which will also enable the [[Vulkan]] renderer that may not work on some older GPUs unless {{code|-dx9}} is used in combination of {{code|-gamepadui}}).
* '''Scaleform''' (''officially called '''Scaleform GFx''''') — Introduced with {{csgobranch|1}} at launch, is a vector graphics rendering engine used to create {{flash|4}}-based UIs and HUDs for Source games. Also used in {{dota2|2}}. Both games eventually replaced Scaleform with Panorama (circa 2015{{confirm}} with the {{Dota2|name}} Reborn update, and in 2018 for CS:GO when it went free to play, along with the Danger Zone update).
* '''[[Panorama]]''' {{csgo|since}} — The successor to Scaleform, introduced in 2018, is Valve's new custom GUI interface that ressembles modern web design and authoring (HTML5/CSS/JS). Using <code>[[WP:XML|.XML]]</code> and JavaScript files, developers can create dynamic and clean HUDs and menus and even high-quality in-game interactable panels.
{{clr}}


== [[:Category:Programming|Programming]] ==
=== Input ===
* All code written in C/C++ using Visual Studio .NET 2003. Easily and quickly derive new entities from existing base classes.
Source supports the following input and controller APIs:
* Internal context sensitive performance monitoring system.
* DirectInput - this method is supported in previous Source branches ({{src04}}, {{src06}}).
* Graphics performance measurement tools built into the engine.
* XInput - Introduced with {{src07|4}}, this allows the game to be controlled using Xbox 360, Xbox One & Series X/S controllers. On some Source games this was superseded by the Steam Input API, but can be re-enabled by disabling the Steam Input API.
* Modular code design (via DLLs) allows swapping out of core components for easy upgrading or code replacement.
** Since the {{hl2|1}} 20th Anniversary Update and the {{portal|1}} (May 2025 update), the option to enable legacy gamepad support (XInput and DirectInput), has been removed (which also unintentionally breaks the vibration/rumble feature when using the Steam Input API). However you can use the {{code|joystick 1}} console command to re-enable legacy controller support (which also enable rumble/vibration support even when using Steam Input).
* [[Wikipedia:DirectX|DX9]] [[shader]]s all written in [[HLSL]].
* Steam Input API - control the game using almost any controller (Xbox, PlayStation, Nintendo, and others). Many of Valve's Source games have been updated to natively support them.
** For the list of games that natively support Steam Input API, see [[Steam#Steam_Input_API|this page]].


== [[:Category:Tools|Tools]] ==
=== [[:Category:Programming|Programming]] ===
* [[Face Poser]]
* Source natively support various CPU architectures, such as x86 (PC and 8th, 9th-gen Consoles), ARM ({{Android|2}}, {{Switch|2}}), PowerPC ({{360|2}}, {{ps3|2}}), and more, with both 32 and [[w:64-bit|64-bit]].
** Support for [[w:64-bit|64-bit]] architecture will allow Source to handle more than 2-4GBs<!-- 32-bit exe without LAA will be limited to 2GB by default --> of RAM.
** Historically, {{hl2|3.1}} and {{hl2lc|3.1}} had a [[w:64-bit|64-bit]] update in 2005, but it was later removed likely due to instability on some systems at the time. {{Csgo|3.1|nt=CS:GO}} later received an [[w:64-bit|64-bit]] update in 2016 for Mac and Linux systems. On April 19, 2024, {{Tf2|3.1}} was upgraded to [[w:64-bit|64-bit]] on Windows and Linux. All other {{src13mp|1}} games ({{css}}, {{dods}}, {{hl2dm}}, {{hldms}}), and {{src13mp|nt=sdkshort|2}} have been updated to the {{tf2branch|1}}, adding 64-bit support to these games and the SDK Base.
* All code is written in C/C++ using [[Visual Studio]] .NET 2003 and later.
** [[Source SDK 2013]] code ({{tf2branch|2}}), can be compiled on Visual Studio 2022 (as of March 2025).
** [[Source SDK 2013]] code ({{src13sp|2|addtext={{nbsp}}branch}}), can be compiled on Visual Studio 2013 (as of March 2025).
** Linux versions are compiled using Valve's [[Compiling_under_Linux|{{code|vcpm}} tool]] (only relevant for {{src07}}) and the [[Compiler_choices#GCC|GNU Compiler Collection]].
* You can easily and quickly derive new entities from existing base classes.
* There is a internal context sensitive performance monitoring system
* Graphics performance measurement tools are built into the engine
* Modular code design (via DLLs) allow swapping out of core components for easy upgrading or code replacement
* The [[VScript]] scripting system allows using external coding languages (such as {{Sq|4.1}} and {{Lua|4.1}}) to be used in maps to create more complex systems {{l4d2|since}} {{tf2branch|also|addtext={{mb}}}}
 
=== [[:Category:Tools|Tools]] ===
<div style="float:right"> [[File:Hammer screen.jpg|thumb|340px|Screenshot of one of the Source SDK tools, {{hammer|3.1|nt=1}}, a WYSIWYG map editor.]] </div>
 
* {{hlfaceposer|2}}
** Facial expression tool used to craft speech and emotions
** Facial expression tool used to craft speech and emotions
* [[Valve Hammer Editor]]
* {{hammer|2|nt=1}}
** WYSIWYG World editor
** WYSIWYG World editor
** Create world brushes
** Create [[Brush|world brushes]]
** Terrain editor
** [[Displacement|Terrain editor]]
** Place detailed world models and AI NPCs
** Place [[Prop|detailed world models]] and [[NPC|AI NPCs]]
** Set navigation points/paths for NPCs
** Set [[Navmesh|navigation points/paths]] for NPCs
** Place triggers, clip brushes, logic etc.
** Place [[Tool textures (Source)|triggers, clip brushes]], logic, etc.
** Allows level designer to hook up I/O between entities to control AI within the game
** Allows level designers to hook up I/O between entities to control AI within the game
* [[Half-Life Model Viewer]]
* {{hlmv|2|nt=1}}
** Full model previewer
** Full [[model]] previewer
** Rotate models in any direction
** Rotate models in any direction
** Setup hit boxes
** Able to setup hit boxes
** View physics hull
** View physics hull
** View normals
** View normals
** Wireframe, shaded or textured view modes
** View the map in wireframe, shaded or textured view modes
* Studiomdl
* [[Studiomdl]]
** Model compiler
** Model compiler
* [[Vbsp]], [[Vrad]], [[Vvis]], [[Vmpi]]
* [[VBSP]], [[VRAD]], [[VVIS]], [[VMPI]]
** Map compilation tools (bsp, lighting and visibility)
** Map compilation tools ([[BSP_(Source)|BSP]], lighting and visibility)
** VMPI - distributed compilation tool allowing level compiles to be spread across many PCs greatly reducing compile times
** VMPI - distributed compilation tool allowing level compiles to be spread across many PCs greatly reducing compile times
* Exporters
* Exporters
** [[XSI]], Max and Maya .smd exporters for exporting 3D models
** [[:Category:XSI|XSI]], Max and Maya {{code|.smd}} exporters for exporting 3D models
 
== Branches ==
{{See also|[[Source/Engine versions]] - Source engine build numbers}}
{{Hierarchy|srcbranch_tree}}
The '''Source''' engine has multiple branches, each one of them adds new features and changes. New features added in later Source branches are generally incompatible with previous branches. For example, {{src13|2}}, which are derived from Orange Box branches, does not have any new features that the {{csgobranch|2}} had, and maps (as well as [[VTF]] 7.5 textures) made for {{as|1}} (up to {{csgo|1}}) will refuse to load in {{hl2|1}}, unless they are converted.
 
The latest Source engine branch is {{src13|3.1}}, which has three sub-branches: '''Singleplayer''', '''Multiplayer''', and the {{tf2branch|3.1}}. The Multiplayer branch has additional features not available on the Singleplayer branch. And the {{tf2branch|1.bold}} is the updated version of the '''Multiplayer''' branch, which adds more new features (from {{hl2|name}} 20th Anniversary Update, but also {{l4dbranch|1}} like [[radial fog]]), but it had incompatible [[WP:Application binary interface|ABI]]s, meaning that mods/tools compiled for {{src13mp}} may not work properly or simply refuse to work under {{tf2}} without updating interfaces. All first-party (Valve) games using the '''Multiplayer''' branch are now running on the {{tf2branch|1.bold}}, while games running on '''Singleplayer''' branches runs on more up to date version which have features from {{hl2|name}} 20th Anniversary Update (except {{srcsdk13sp|1}} which still runs on older version of Singleplayer branch).
 
Games such as {{l4d|1}} to {{Csgo|1}} also introduce many newer features and graphical improvements. Both {{src13|name}} (SP & MP, and TF2) and {{Asbranch|1}} engines code are publicly available.
 
Some third-party games may also have their own engine branches, with many new features that are not available with any official Source branch.
 
*'''For the list of Source engine branches (including third-party branches), with notes about the branches, see [[List of Source engine branches]].'''
 
== Products using Source {{Table tools|Source games}} ==
This is the list of games that uses the {{source|4}} engine.
<!-- To edit the list of the game, please visit the template page "Template:Source games" instead, then go to one of it's subpages there. Or use the edit button shown near the template itself-->
 
=== Products made by Valve ===
<center><small> [[Template:Source games/Valve|Click here to edit this list.]] </small></center>
{{Source games/Valve}}
 
=== Third-Party ===
Games, tool and mods made by third-party companies and mod teams.
 
==== Released ====
<!-- To edit the list, please go to "Template:Source games", or go back to previous page and click on the [edit] button on the year itself. List of games prior to 2020s are located in separate pages due to wiki limitations and to avoid long load times.-->
{{Expand|title=2004 - 2019|noborder=1|
* To see the list of third-party Source games from 2004 to 2019, check the [[List of third-party Source games]] page for more information.
}}
{{Expand|title=2020 - present ([[Template:Source games/2020s|edit]])|noborder=1|startcollapsed=0|
{{Source games/2020s}}
}}
 
==== In development (Unreleased) ====
This section are for unreleased third-party games and tools that have been announced, and it is currently in development, not publicly released, is in Beta/Early Access, or planned to be released.
<!-- NOTE: Sort the game by year if the release date is announced, otherwise, if it's was TBA (to be announced), sort by game name. -->
{{Expand|title=List of Source games currently in development ([[Template:Source games/unreleased|edit]])|noborder=1|startcollapsed=0|
{{Source games/unreleased}}
}}
[[:Category:Third Party Source Engine Games|More Third-party Source Engine games]]
* [[:Category:Source mods|More Source mods]]


== See also ==
== See also ==
* [[wikipedia:Source engine]]
* [[Wikipedia:Source (game engine)]]
* [[Source Engine Features]]
* [[Source SDK]]
* [[SDK Docs|Source SDK Documentation]]
* [[Source SDK 2013]]
 
== External links ==
* [https://web.archive.org/web/20110724220714/http://source.valvesoftware.com/ Official Website] (archived) - Official website about the Source engine
{{todo|How relevant and current these guides are? Keep links to current manuals instead of all at appropriate places. Use [[Special:LinkSearch]] for this.}}
* Source Engine Tutorials https://www.sourcemodding.com/tutorials/source
* Tutorials for Source Engine https://gamebanana.com/tuts/games/35
* Tutorials - Source - Mod DB https://www.moddb.com/engines/source/tutorials
* [https://github.com/ValveSoftware/Source-1-Games/issues GitHub Issues page] - for engine bug reports.
* {{Steamdb|tech/Engine/Source/|List of Source engine games on Steam - via SteamDB}}
* {{Wiki|Source_(game_engine)#Notable_games_using_Source|List of Source engine games - Wikipedia}}


{{Branch-navbox|nocat=1}}


[[Category:Technical]]
[[Category:Game engines]]
[[Category:Valve]]
[[Category:Glossary]]
[[Category:Glossary]]

Latest revision as of 10:05, 27 August 2025

English (en)Deutsch (de)Español (es)Français (fr)Hrvatski (hr)Polski (pl)Português do Brasil (pt-br)Русский (ru)Tiếng Việt (vi)中文 (zh)Translate (Translate)

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

Source
Logo of the Source engine.
Screenshot in-game of Counter-Strike: Source, using the Source Engine, running on latest TF2 branch.
Screenshot in-game of Counter-Strike: Source, using the Source Engine, running on latest TF2 branch.
Developer(s)
Release date(s)
October 7, 2004 Note
Platform(s)
Windows, macOS, Linux, Xbox, Xbox 360, PlayStation 3, Nintendo Switch, Android
Note: Valve (first-party) games only.
Written in
License
Proprietary
(Team Fortress 2 branch, Source 2013, Alien Swarm engine branch source code available for non-commercial purposes.)
Official website
Official Website (archived)
Links
GitHub Issues GitHub Issues (bug report for all Source games, except CS:GO)
Source SDK 2013 source code Source SDK 2013 source code
Steam Distributing Source games/mods & FAQ
Predecessor
Successor
Screenshot in-game of Counter-Strike: Global Offensive. CS:GO used the then latest engine branch, which added many new features and graphical improvements.
Promotional screenshot of Apex Legends, which runs on a heavily modified version of the Source Engine, featuring DirectX (Direct3D) 11, detailed models and better graphics, plus an increased engine limit. It also uses deferred shading, allowing many dynamic lights to be lit with little to no performance loss.
This article is about the game engine. For the documentation on Source and its SDK, see Source SDK Documentation.

Source Source (also referred as Source 1) is a 3D game engine created by Valve in 2004, and is the successor to GoldSrc. The Source engine is well-known for its advancements in physics, AI, and graphics which made the games realistic for its time, while being scalable on older, less powerful hardware. One game, Half-Life 2, earned several awards for it's graphics, which were made possible with Source. Source has been used by Valve, third-party companies, and (much like GoldSrc) countless community mods by people around the globe, with at least 100 games developed on Source. The engine also has several branches, each with new features added and improved graphical capabilities.

Despite the Source engine being 20 years old, and being superseded by the Source 2 engine for first-party usage since 2015, it's still being commonly used today by modders and third-party companies due to the lack of some Source 2 documentation, the sparse availability for third-party licensing, and it's regular maintenance with engine and security updates.

Clarify: not all Source games have Valve Anti-Cheat. See Apex Legends.

Features

List of Source Source engine features and capabilities. Some new features listed here may not apply to previous or newer Source branches, or third-party games/branches.

For a list of Source branches (including third-party games) with their specific new features, see this category page.

Renderer

  • Supports Shader Model Versions 2.0 to 3.0
    • Some third-party games can also support Shader Model 4.0, 5.0 and later by using D3D versions starting from 11 (Titanfall, Strata Source, etc).
  • Anti-aliasing support (MSAA, FXAA, MLAA, TAA, etc.)
    • See the Anti-aliasing page for more information, plus features & drawbacks with various anti-aliasing methods.
  • More anisotropic and texture filtering options
    • Anisotropic filtering allows textures on far distances to look sharper and less blurry.
    • Compared to GoldSrc (prior to 2013) featuring only Bilinear or Trilinear texture filtering, Source features more texture filtering options, ranging from Bilinear, Trilinear, Anisotropic 2x up to 16x.
  • Support for both forward, deferred and clustered rendering pipelines.
    • Source primarily uses the forward renderer, while Dota 2, as well as some third-party Source games (Titanfall, Black Mesa, etc.) use the deferred renderer (shading or lighting).
    • Deferred rendering is a rendering technique that allows games to render many dynamic lights with little performance impact. Deferred rendering is commonly used in most modern titles, and Dota 2 is the only official Source game to use this technique.
    • Other titles such as Portal 2: Community Edition also use the Clustered shading technique, resulting in similar lighting performance as the deferred renderer (both clustered, forward & deferred), but unlike deferred, clustered works with both forward & deferred rendering pipelines.
  • Bump mapping and Normal mapping on models and the world
  • Authoring of shaders with HLSL
  • Cube and environment mapping
    • Cubemapping also supports Anisotropy (in all games since Counter-Strike: Global Offensive)
  • Phong shading for models
    • Phong is also supported on world brushes (in all games since Counter-Strike: Global Offensive)(also in Mapbase)
  • Dynamic lights, vertex lighting and lightmaps, including many light types including flickering, pulsing etc.
    • Bicubic lightmap filtering (only in Half-Life 2 Half-Life: Source Portal Team Fortress 2 branch) - smoothing out the aliasing ("stair-stepping") at the cost of reduction of thinner details and more prominent seams.
  • LDR (SDR) and HDR (in all games since Day of Defeat: Source) rendering
    • HDR rendering is introduced with the release of Day of Defeat: Source Day of Defeat: Source (and Half-Life 2: Lost Coast a month later), running on updated version of Source 2004. HDR rendering is the process of generating computer graphics scenes using lighting calculations done in high dynamic range (HDR). It works by automatically adjust exposure and "blooming" colors above 100% brightness into neighboring areas, mimicking the way cameras and even eyes handle light exposure, then collapsing the image into SDR color range, resulting an image appears to have higher color saturation, more bloom and improved contrast while still technically being limited by the SDR color range.
    • LDR rendering is the old way the game was rendered, and it has been deprecated since Left 4 Dead engine branch Left 4 Dead engine branch. This does not apply to some games such as the original release of Dota 2, for example.
    • Warning.pngRisk of Confusion:Not to be confused with "HDR display output", which actually renders the image at higher brightness & more color range and contrast than a SDR monitor is capable of. The Source engine, by default, does not support HDR display output, except in Apex Legends Apex Legends on consoles.
  • Water with refraction, real-time world reflections and Fresnel effects
  • Advanced particle systems that can emit sprites or models
  • Render-to-texture shadows allow for a large number of characters per scene (in all games since Left 4 Dead engine branch) (also in MapbaseXengineDark Messiah of Might and Magic)
  • Occluder entities for visibility blocking
  • Indoor/Outdoor environments
    • Deformable terrain
    • 3D skyboxes can extend the horizon and add parallax on distant objects
    • Dynamically rendered organics (grass, trees, etc.)
    • Swaying trees (in all games since Left 4 Dead engine branch) (also in Team Fortress 2 branchXengineGarry's ModMapbase)
  • Subdivision surfaces, diffuse & specular bump maps
  • Real-time radiosity lighting
  • Real-time Cascaded Shadow Mapping from the skybox (in all games since Counter-Strike: Global Offensive) (also in Alien Swarm DeferredCounter-Strike Online 2Lambda WarsXengine)
  • Effects that include but are not limited to: particles, beams, volumetric smoke, sparks, blood, and environmental effects like fog and rain
    • Radial fog, which prevents strengthen or weaken the fog effect when rotating the camera. Replaces planar-based fog. (in all games since Left 4 Dead engine branch) (also in Team Fortress 2 branch, Half-Life 2 20th, Mapbase)
  • Scalability
  • Screen Space Ambient Occlusion (SSAO) (only in Source Filmmaker Dota 2)
    • A technique for efficiently approximating the ambient occlusion effect in real time.
  • Widescreen display support
    • Source is one of the earliest game engines to support Widescreen monitors natively (16:9 and 16:10 aspect ratio) without stretching the image, while most games from that era are usually designed for 4:3/5:4 displays only.
      Games such as Half-Life 2 supported widescreen displays at launch in 2004, with horizontal FOV (field of view), allow you to see more details.
  • Physically Based Rendering (only in Strata SourceTitanfall branchRTX RemixHunt Down the FreemanPortal 2: Desolation)
  • Parallax Occlusion Mapping(only in XengineStrata Source)
  • Support of various graphical backends (such as Direct3D, OpenGL, Vulkan)
  • Direct3D versions
    • Direct3D 9
      • On earlier versions of Source (Source 2004 up to Source 2013), it had a Hardware DirectX level system (similar to feature level system in Direct3D 10 and later) that allowed the game to render on older GPUs supporting only DirectX 8.0, 8.1 (Pixel Shader 1.x), by disabling DirectX 9-only graphical features not available on these older cards. Previous versions of Source (Source 2004 and Source 2006), as well as Source 2013 RTX Remix games, also had support for DirectX 7.0 and 6.0 render paths. This can be changed using the mat_dxlevel console command, or by using the -dxlevel launch option.
      • Note.pngNote:This DirectX level system was deprecated in Left 4 Dead engine branch.
        Also, this DirectX level system doesn't actually affect or change Direct3D versions as Source games will always run on Direct3D 9.
    • Direct3D 9Ex (in all games since Source 2013) (also in Source MultiplayerNote, Counter-Strike: Global Offensive) - DX9 Windows Aero extensions, requires Vista or later. Users can enable/disable this in Video Settings - Advanced (Windows Aero extensions), or through the launch option -disable_d3d9ex (only in Counter-Strike: Global Offensive).
    • Direct3D 11 (only in Titanfall branchStrata SourceVindictus)
    • Direct3D 12 (only in Apex Legends)
    • Note.pngNote:Direct3D 9 can be forced by the launch option -dx9, if it was forced by commands such as -gamepadui, which enables both the Gamepad UI and Vulkan renderer unless combined with -dx9
  • OpenGL(in all games since Source 2009/Source Multiplayer) which is another graphics API used in Source games on macOS and Linux.
    • Source Engine ships with ToGL to translate Direct3D (DirectX) calls to OpenGL, and uses dxlevel 92, which is the OpenGL equivalent to DirectX 9 Shader Model 3 (D3D9.0c).
  • Vulkan graphics API (only in Half-Life 2PortalRTX RemixLeft 4 Dead 2Portal 2Counter-Strike: Global Offensive)
    • A low-level API, and the successor to OpenGL. Vulkan can be used to workaround various graphical issues such as Portal 2 Portal 2's projected textures, which does not render properly on newer graphics drivers (both NVIDIA and AMD). Vulkan can be enabled by using the -vulkan launch option.
Note.pngNote:Counter-Strike: Global Offensive Counter-Strike: Global Offensive only supports Vulkan on Linux
Note.pngNote:Source allows up to 8 LOD Models, although it does not have automatic level of detail out of box. Manual LoD is supported, however.
Warning.pngWarning:Counter-Strike: Global Offensive Counter-Strike: Global Offensive currently does not support level of detail. $lod will be ignored, but the model will still work. Try to avoid using this command in Counter-Strike: Global Offensive.

Materials System

  • Instead of traditional textures, Source defines sets of materials that specify what the object is made from and the texture used for that object. A material specifies how an object will fracture when broken, what it will sound like when broken/interacted with, and what that object's mass and buoyancy are. This system is much more flexible than older texture-only systems.
  • Materials can interact with objects or NPCs, such as mud or ice for vehicles to slide/lose traction on.

Multiplayer Network Code

  • Time- and gamer-tested by millions of people around the world
  • Support for both LAN-based multiplayer and Internet-based multiplayer games
  • Prediction analysis for interpolating collision/hit detection
  • Optimizations for high-latency, high-packet-loss 56k connections
  • Steam Networking support (only in Team Fortress 2 branchSynergy)
    • Allows self-hosting using Steam Datagram Relay, meaning users can easily create joinable servers without port forwarding.

Advanced Characters

  • Detailed and believable characters
  • Realistic eyes
    • Focus on player/object, not simply parallel views
    • Proper eye bulge for realistic eye reflections
  • Simulated musculature provides outstanding emotions, speech, and body language
  • Language independent speech, characters can speak naturally in many languages
  • Skeletal/bone system for animation
  • Layered animation system can synthesize complex animations out of several pieces

Physics

  • Source uses the Havok physics engine, licensed from the Havok Group (now acquired by Microsoft)
  • A more responsive world with more realistic interactions
  • AI characters can interact with physically simulated objects
  • Includes support for ropes/cables, machines, constraint systems, and ragdoll physics
  • Can be controlled by level design
  • Kinematic animated bone followers
  • Custom procedural physics controllers
  • Vehicles
    • Wheels slip and skid
    • Realistic suspensions with springs on each wheel
    • Realistic leaning during acceleration/deceleration and turning
    • Individually tunable parameters such as horsepower, gearing, max speed, shift speed, tire material, tire friction, spring tension/dampening, etc.
    • Multiple players/NPCs in a vehicle
    • Hovercraft support for cheaper simulation

Advanced AI

  • I/O system allows level designers to control AI
  • Sophisticated navigation: characters that run, fly, jump, crouch, climb stairs and ladders, and burrow underground
  • AI that senses things using sight, sound, and smell
  • AI relationships determine friend/foe status of other entities
  • Battle AI allows squads of AI characters to operate together, knowing when to advance, retreat, lay cover, fire, etc.

Sound System

  • Uses the Miles Sound System as middleware (except in some third-party games) or the free & open-source VAudio minimp3 (in all games since Team Fortress 2 branch)
  • Support 7.1, 5.1 surround sound, 4 speaker surround
Icon-Bug.pngBug:Despite all Source games prior to Alien Swarm having the 7.1 audio option, the game only outputs only 5.1 surround despite 7.1 selected. This issue does not affect some third-party games, such as Titanfall 2, and Apex Legends as they used newer versions of the Miles Sound System, which have this problem fixed.  [todo tested in ?]
Note.pngNote:Some or newer Source games (such as Alien Swarm, Portal 2 and Counter-Strike: Global Offensive) may not include options to enable 7.1 surround sound without using console commands.
  • High-quality 3D spatialization
  • Custom software DSP
  • Automatic DSP based on environmental geometry
  • Microsoft ADPCM-compressed WAV files
  • 16-bit 44.1 KHz (CD Quality), stereo wave data with all features
Note.pngNote:Source does not support 48 KHz audio (DVD Quality) by default.
  • MP3 decompression
  • Support for audio streaming on any wave [Clarify]
  • Real-time wave file stitching [Clarify]
  • Pre-authored Doppler effect encoded waves
  • Pre-authored distance variant encoded waves
  • Commentary system

UI

Screenshot of Half-Life 2: Episode Two main menu, which is rendered using VGUI, with New Game, Options, and Achievements window opened.
Screenshot of VGUI's Gamepad UI used in some Source 2013 games after 2022. This UI was enabled by default when playing on Steam Deck.
  • Server browser — Displays all active game servers and allows a player to choose which one to participate in. Players can filter and sort server lists to speed up the display and selection of a server.
  • VGUI — Valve's custom GUI interface mimics OS windows but renders them using the Source engine for both in game and out of game uniform UI display.
    • Dynamic in-game HUD display
    • Many widgets/controls (e.g., buttons, treeview, html control…)
    • Themes/custom visualization allowed
    • Platform independent
    • Localized text (Unicode compliant)
    • Gamepad UI (Source 2013 Source 2013 version) — Since the release of Half-Life 2 (and its episodes) as well as Portal updates in 2022, Valve have added a modern UI which is designed for consoles and handhelds like the Steam Deck Steam Deck. With the new Gamepad UI, the UI is scalable across any resolution (including 4K and higher), unlike the regular VGUI, which does not automatically scale up to the resolution. This UI can be enabled manually by using the -gamepadui command line argument (which will also enable the Vulkan renderer that may not work on some older GPUs unless -dx9 is used in combination of -gamepadui).
  • Scaleform (officially called Scaleform GFx) — Introduced with CS:GO engine branch at launch, is a vector graphics rendering engine used to create Adobe Flash Adobe Flash-based UIs and HUDs for Source games. Also used in Dota 2 Dota 2. Both games eventually replaced Scaleform with Panorama (circa 2015[confirm] with the Dota 2 Reborn update, and in 2018 for CS:GO when it went free to play, along with the Danger Zone update).
  • Panorama (in all games since Counter-Strike: Global Offensive) — The successor to Scaleform, introduced in 2018, is Valve's new custom GUI interface that ressembles 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 interactable panels.

Input

Source supports the following input and controller APIs:

  • DirectInput - this method is supported in previous Source branches (Source 2004, Source 2006).
  • XInput - Introduced with Source 2007 Source 2007, this allows the game to be controlled using Xbox 360, Xbox One & Series X/S controllers. On some Source games this was superseded by the Steam Input API, but can be re-enabled by disabling the Steam Input API.
    • Since the Half-Life 2 20th Anniversary Update and the Portal (May 2025 update), the option to enable legacy gamepad support (XInput and DirectInput), has been removed (which also unintentionally breaks the vibration/rumble feature when using the Steam Input API). However you can use the joystick 1 console command to re-enable legacy controller support (which also enable rumble/vibration support even when using Steam Input).
  • Steam Input API - control the game using almost any controller (Xbox, PlayStation, Nintendo, and others). Many of Valve's Source games have been updated to natively support them.
    • For the list of games that natively support Steam Input API, see this page.

Programming

Tools

Screenshot of one of the Source SDK tools, Valve Hammer Editor, a WYSIWYG map editor.

Branches

See also:  Source/Engine versions - Source engine build numbers
Source 2004 Source 2004Source 2006 Source 2006Source 2007 Source 2007 Source 2009 Source 2009Source 2013 Singleplayer Source 2013 Singleplayer
Source Multiplayer Source MultiplayerSource 2013 Multiplayer Source 2013 Multiplayer (Xengine)Team Fortress 2 branch Team Fortress 2 branch
Left 4 Dead engine branch Left 4 Dead engine branchAlien Swarm engine branch Alien Swarm engine branchPortal 2 engine branch Portal 2 engine branch(Titanfall branch)CS:GO engine branch CS:GO engine branch (Strata Source)Dota 2 engine branch Dota 2 engine branch

The Source engine has multiple branches, each one of them adds new features and changes. New features added in later Source branches are generally incompatible with previous branches. For example, Source 2013 Source 2013, which are derived from Orange Box branches, does not have any new features that the CS:GO engine branch CS:GO engine branch had, and maps (as well as VTF 7.5 textures) made for Alien Swarm (up to Counter-Strike: Global Offensive) will refuse to load in Half-Life 2, unless they are converted.

The latest Source engine branch is Source 2013, which has three sub-branches: Singleplayer, Multiplayer, and the Team Fortress 2 branch. The Multiplayer branch has additional features not available on the Singleplayer branch. And the Team Fortress 2 branch is the updated version of the Multiplayer branch, which adds more new features (from Half-Life 2 20th Anniversary Update, but also Left 4 Dead engine branch like radial fog), but it had incompatible ABIs, meaning that mods/tools compiled for Source 2013 Multiplayer may not work properly or simply refuse to work under Team Fortress 2 without updating interfaces. All first-party (Valve) games using the Multiplayer branch are now running on the Team Fortress 2 branch, while games running on Singleplayer branches runs on more up to date version which have features from Half-Life 2 20th Anniversary Update (except Source SDK Base 2013 - Singleplayer which still runs on older version of Singleplayer branch).

Games such as Left 4 Dead to Counter-Strike: Global Offensive also introduce many newer features and graphical improvements. Both Source 2013 (SP & MP, and TF2) and Alien Swarm engine branch engines code are publicly available.

Some third-party games may also have their own engine branches, with many new features that are not available with any official Source branch.

Products using Source ViewDiscussEdit templatePurge

This is the list of games that uses the Source Source engine.

Products made by Valve

Click here to edit this list.
Release date Title Co-developed with Engine branch Platforms Notes
7 Oct 2004 Counter-Strike: Source Counter-Strike: Source Turtle Rock Studios
Hidden Path Entertainment (2010 update)
Source 2004 Source 2004 (launch)
Team Fortress 2 branch Team Fortress 2 branch (currently)
PC: Windows, Mac, Linux First game to use the Source engine. Remake of Counter-Strike. Hidden Path Entertainment alongside Valve worked on the May 7, 2010 update, which upgraded the game's engine from Source 2006 to 2009 (MP version, later renamed to Source MP), and added 144 (now 146) achievements, a new domination and revenge system similar to Team Fortress 2, player stats and more.
Hidden Path Entertainment also worked on the unreleased Xbox 360 port of CS:S, which would later become Counter-Strike: Global Offensive Counter-Strike: Global Offensive after Valve saw the opportunity during its development to turn the port into a new game. Mac version of the game was later release in June 2010, and Linux in 2013.
16 Nov 2004 Half-Life: Source Half-Life: Source Source 2004 Source 2004 (launch)
Source 2013 Singleplayer Source 2013 Singleplayer (currently)
PC: Windows, Mac, Linux Remaster of Half-Life. It is critically panned by most gamers since 2013 due to the huge amount of bugs that were introduced when the game was updated to Source 2013 Source 2013. Prior to the 2013 update, it received mixed reviews by critics and most gamers, some players are disappointed over the game graphics (especially the textures) that are unchanged from the original, while also having a realistic Source's 3D Skybox and water effects.
A unofficial fan remake of Half-Life, called Black Mesa was later started development in response of those criticisms, which was first released in 2012 without any Xen chapters and was much shorter, and later in 2020, a full release with contains the Xen chapters.
16 Nov 2004 Half-Life 2 Half-Life 2 EA UK (PS3 port) Source 2004 Source 2004 (launch, Original Xbox)
Source 2007 Source 2007 (only in Xbox 360PlayStation 3)
Source 2013 Singleplayer Source 2013 Singleplayer (currently)
PC: Windows, Mac, Linux

Console(s): Original Xbox, Xbox 360, PlayStation 3

Mobile: Android (NVIDIA Shield)
Sequel to Half-Life, and later Half-Life: Alyx. Included on The Orange Box The Orange Box.
The game was set 20 years after the event of Half-Life, takes place in City 17, which is under Combine control.
Prior to its release, it was delayed multiple times, and infamously leaked in Oct 2003. It was among the first games to require Steam in order to play.
Half-Life 2's engine branch has been updated multiple times, first in 2007, upgraded to Source 2007 only on consoles, and in 2010, upgraded to Source 2009 on PC, and finally, Half-Life 2 was upgraded to the Source 2013 Singleplayer branch.
In November 2024, Valve released a 20th anniversary update, which add Steam Workshop support, fixing several bugs, improved shaders (with option to use classic 2004/2006 particles/effects and Very High shader option), and made Half-Life 2: Lost Coast, Episode One and Episode One playable through Half-Life 2 main menu, without quitting the game and launch it separately on Steam client.
30 Nov 2004 Half-Life 2: Deathmatch Half-Life 2: Deathmatch Source 2004 Source 2004 (launch)
Team Fortress 2 branch Team Fortress 2 branch (currently)
PC: Windows, Mac, Linux Multiplayer component of Half-Life 2. Now runs on Team Fortress 2 branch after 20th anniversary update.
26 Sep 2005 Day of Defeat: Source Day of Defeat: Source Source 2004 Source 2004 (launch)
Team Fortress 2 branch Team Fortress 2 branch (currently)
PC: Windows, Mac, Linux Remake of Day of Defeat. Like Half-Life 2: Lost Coast, it also have features later added to Source 2006, such as HDR lighting.
27 Oct 2005 Half-Life 2: Lost Coast Half-Life 2: Lost Coast Source 2004 Source 2004 (launch)
Source 2013 Singleplayer Source 2013 Singleplayer (currently)
PC: Windows, Mac, Linux Originally as part of Half-Life 2, which was cut at some point before it was released, and was developed after the leak happened but was ultimately cut, then later released in 2005 as a HDR lighting technology demo.
It runs on a newer version of Source 2004, introducing new features such as Commentary System and HDR (which was previously introduced on Day of Defeat: Source). Both of these new features are later used in Half-Life 2: Episode One, which runs on Source 2006 engine, and subsequent games & branches after it. As of 2025, it runs on Source 2013 Singleplayer Source 2013 Singleplayer.
1 May 2006 Half-Life Deathmatch: Source Half-Life Deathmatch: Source Source 2006 Source 2006 (launch)
Team Fortress 2 branch Team Fortress 2 branch (currently)
PC: Windows, Mac, Linux Multiplayer component of Half-Life: Source. Now runs on Team Fortress 2 branch since February 18, 2025 update.
1 Jun 2006 Half-Life 2: Episode One Half-Life 2: Episode One EA UK (PS3 port) Source 2006 Source 2006 (launch)
Source 2007 Source 2007 ((only in Xbox 360PlayStation 3))
Source 2013 Singleplayer Source 2013 Singleplayer (currently)
PC: Windows, Mac, Linux

Console(s): Xbox 360, PlayStation 3

Mobile: Android (NVIDIA Shield)
The game is the sequel to Half-Life 2, and the story begins after the Citadel reactor core was destroyed, Gordon and Alyx both survived the explosion.
When it's come to technical, it used the Source 2006 Source 2006 engine branch at launch, and it is the last Valve game to be released on the Old Engine branch. Included in The Orange Box The Orange Box.
10 Oct 2007 Half-Life 2: Episode Two Half-Life 2: Episode Two EA UK (PS3 port) Source 2007 Source 2007 (launch, currently used on Xbox 360 & PlayStation 3)
Source 2013 Singleplayer Source 2013 Singleplayer (currently)
PC: Windows, Mac, Linux

Console(s): Xbox 360, PlayStation 3

Mobile: Android (NVIDIA Shield)
A sequel to Half-Life 2: Episode One. The City 17 has been destroyed, and the Citadel was partially collapsed, Gordon and Alyx has survived the train crash. The game largely take places in White Forest. Story aside, when it's come to technical, it uses the Source 2007 Source 2007 at launch, originally called as The Orange Box engine branch and it is the first iteration of the New Engine branch. Included on The Orange Box The Orange Box.
Portal Portal PC: Windows, Mac, Linux

Console(s): Xbox 360, PlayStation 3, Nintendo Switch (part of Portal Companion Collection)

Mobile: Android (NVIDIA Shield)
A completely new game and IP from Valve, set in the Half-Life universe, and take places in Aperture Laboratories. It is a puzzle-based shooter game, allowing you to create portals, that link to one another on any flat and large enough surface.
In 2023, an unofficially remastered version of the game, Portal with RTX, was released, which takes advantage of hardware that support ray-tracing, and adds PBR textures, high polygon models in order to improve the game graphics.
Like the other two new games in The Orange Box package, it used the Source 2007 Source 2007 engine at launch.
Team Fortress 2 Team Fortress 2 Source 2007 Source 2007 (launch, currently used on Xbox 360 & PlayStation 3)
Team Fortress 2 branch Team Fortress 2 branch (currently)
PC: Windows, Mac, Linux

Console(s): Xbox 360, PlayStation 3

Sequel to Team Fortress Classic, focusing on cartoon graphics unlike the pre-release footage/screenshots, which aimed to be more realistic. This is the last game, along with 2 other games as part of The Orange Box pack to use the engine branch that requires Half-Life 2 assets to operate.
The console version of the game is no longer updated, as opposed to PC version of the game, which is frequently updated. It has its own version of Source 2013 Multiplayer which is more up to date and has newer features in what's named the Team Fortress 2 branch.
17 Nov 2008 Left 4 Dead Left 4 Dead Turtle Rock Studios
(under Valve South)
Left 4 Dead engine branch Left 4 Dead engine branch (earlier version) PC: Windows, Mac
Console(s): Xbox 360
A new multiplayer co-op game, with a horror zombie theme. It use a new engine branch which does not require Half-Life 2 assets in order to work, it also adds many new features and introduced VPKs.
17 Nov 2009 Left 4 Dead 2 Left 4 Dead 2 Left 4 Dead engine branch Left 4 Dead engine branch PC: Windows, Mac, Linux
Console(s): Xbox 360
Originally was planned to be an update for Left 4 Dead, it was later released as standalone game. Like Left 4 Dead, it also runs on the same L4D branch, but much newer.
Like TF2, the console version (Xbox 360) of the game is no longer updated, as opposed to PC version of the game.
This game was also ported to Source 2 back in 2014, but this version remains unreleased to this day, and one of its maps has been remade in Source 2 as a tech demo back in 2010, which its image was leaked in 2014.
19 Jul 2010 Alien Swarm Alien Swarm Alien Swarm engine branch Alien Swarm engine branch PC: Windows A co-op alien shooter, which was a remake of the Unreal Tournament 2004 mod with the same name. It succeeded the Left 4 Dead engine branch Left 4 Dead engine branch and adds new features on its branch.
18 Apr 2011 Portal 2 Portal 2 Portal 2 engine branch Portal 2 engine branch PC: Windows, Mac, Linux
Console(s): Xbox 360, PlayStation 3, Nintendo Switch (part of Portal Companion Collection)
Has its own engine branch, and once again, introduced new features and succeeded Alien Swarm engine branch Alien Swarm engine branch. Sequel of Portal. For the first time since 2007, the PlayStation 3 version was developed by Valve themselves, and does not suffer various issues that The Orange Box on PS3 had, such as poor optimization, and high-pitched audio issue.
21 Aug 2012 Counter-Strike: Global Offensive Counter-Strike: Global Offensive Hidden Path Entertainment CS:GO engine branch CS:GO engine branch PC: Windows, Mac, Linux
Console(s): Xbox 360, PlayStation 3
Sequel to Counter-Strike: Source, originally developed as a Xbox 360 port of Counter-Strike: Source before Valve eventually turned it into a new Counter-Strike game.

The game runs on the CS:GO engine branch, which is based off of the Left 4 Dead engine branch with Portal 2 engine branch code. CS:GO used Source 1 engine until 2023, now uses the new Source 2 engine under the name Counter-Strike 2, replacing CS:GO (except the console version). Console version is no longer updated since 2013, but remains purchasable.
Prior to being delisted, it was Free to Play on PC since 2018.
9 Jul 2013 Dota 2 Dota 2 Dota 2 engine branch Dota 2 engine branch (Pre-Reborn) PC: Windows, Mac, Linux Sequel to 2003's Warcraft III mod, Defense of the Ancients (retroactively called as Dota 1, DotA for short). Formerly using Source until 2015, when it was switched to Source 2, as part of Dota 2's Reborn update. This is also the last Valve game to be released on the Source engine.

Third-Party

Games, tool and mods made by third-party companies and mod teams.

Released

2004 - 2019
2020 - present (edit)
Year Title Developer(s) Publisher(s) Engine branch Platforms Notes
2020 Black Mesa Black Mesa Crowbar Collective Crowbar Collective Xengine Xengine PC: Windows, Linux Black Mesa was originally released in 2012 as a mod running on Source 2007, and later released on Steam in 2015 as a Early Access title, upgrading it to Source 2013, which was later heavily modified with new features, creating a custom branch named Xengine. Fan remake of Half-Life Half-Life.
2020 G-String Eyaura LunchHouse Software Source 2013 Source 2013 PC: Windows
2021 Portal Reloaded Portal Reloaded PORTAINIS PORTAINIS Portal 2 engine branch Portal 2 engine branch PC: Windows, Mac, Linux
2022 Divinia Chronicles: Relics of Gan-Ti Divinia Chronicles: Relics of Gan-Ti Team Monkey Team Monkey Source 2013 Singleplayer Source 2013 Singleplayer PC: Windows
2022 BrainBread 2 BrainBread 2 Reperio Studios Reperio Studios Source 2013 Multiplayer Source 2013 Multiplayer PC: Windows, Mac, Linux Originally available as Early Access in 2016.
2022 Entropy : Zero 2 Entropy : Zero 2 Breadman Breadman Source 2013 Singleplayer Source 2013 Singleplayer (Mapbase Mapbase) PC: Windows Sequel to Entropy : Zero Entropy : Zero.
2022 They Hunger: Source They Hunger: Source Post-GoldSOURCE Post-GoldSOURCE Source 2013 Singleplayer Source 2013 Singleplayer PC: Windows
2022 Jabroni Brawl: Episode 3 Jabroni Brawl: Episode 3 Team Jabroni Team Jabroni CS:GO engine branch CS:GO engine branch PC: Windows, Linux
2023 Treason Treason Tomorrow Software Klaus Veen Source 2013 Multiplayer Source 2013 Multiplayer PC: Windows
2023 Mistake: Source Mistake: Source NOUG4AT Unified Network Source 2013 Singleplayer Source 2013 Singleplayer PC: Windows
2023 Swelter Swelter SnowDropEscape development team Eduard Rostovtsev, SnowDropEscape development team Source 2013 Singleplayer Source 2013 Singleplayer PC: Windows, Linux
2024 Portal: Revolution Portal: Revolution Second Face Software Second Face Software Strata Source Strata Source PC: Windows, Linux First Source Source game to use Strata Source Strata Source engine, a heavily modified version of Source which features many changes and improvements to bring it closer to modern standards.
2025 The Cleaning Game Michael Rumpff Michael Rumpff Portal 2 engine branch Portal 2 engine branch PC: Windows

In development (Unreleased)

This section are for unreleased third-party games and tools that have been announced, and it is currently in development, not publicly released, is in Beta/Early Access, or planned to be released.

List of Source games currently in development (edit)
Release Date Title Developer(s) Publisher(s) Engine branch Platforms Notes
2025 Military Conflict: Vietnam Military Conflict: Vietnam Dustfade Dustfade CS:GO engine branch CS:GO engine branch PC: Windows, Linux Early access since 2022, planned to be released around 2025.
Quote from Military Conflict: Vietnam Steam page:
The game will stay in Early Access until all planned initial content is released, the current estimate of which is during 2025.
TBA CS:Legacy CS:Legacy CS:Legacy Team TBA Source 2013 Source 2013 (sub-branch TBD) PC: TBA Remake of Counter-Strike, developed by (some) former CSPromod developers. Runs on modified version of Source 2013 (presumably Team Fortress 2 branch), with the game renderer completely rewritten. Features PBR shaders, CSM and other graphical improvements.
TBA Half-Life 2 RTX Half-Life 2 RTX Orbifold Studios Orbifold Studios Source 2013 Singleplayer Source 2013 Singleplayer (with Mapbase Mapbase) PC: Windows Second Source game to use RTX Remix technology which adds ray-tracing support along with (PBR textures, etc.). The mod also uses Mapbase. A demo version was released on March 18, 2025.
TBA Infestus Team Infestus Team Infestus Source 2013 Multiplayer Source 2013 Multiplayer PC: Windows, Mac, Linux Currently in closed beta.
TBA Momentum Mod Momentum Mod Momentum Team Momentum Team Strata Source Strata Source PC: Windows, Linux Currently in closed beta.
TBA Portal 2: Community Edition Portal 2: Community Edition P2:CE Team P2:CE Team Strata Source Strata Source PC: Windows, Linux Currently in closed beta.
TBA PUNT PUNT LunchHouse Software LunchHouse Software Portal 2 engine branch Portal 2 engine branch (heavily modified) PC: Windows

More Third-party Source Engine games

See also

External links

Todo: How relevant and current these guides are? Keep links to current manuals instead of all at appropriate places. Use Special:LinkSearch for this.