Source: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Added Jabroni Brawl: Episode 3 to third party games list)
No edit summary
Line 1: Line 1:
{{lang|Source}}
{{lang|Source|noline=1|noborder=1}}
{{GameHierarchy}}   
{{Hierarchy}}   
{{Game name|source|name=Source}} is a 3D game engine created by [[Valve]], it is the successor to {{game name|Gldsrc|name=GoldSource}}.  Source has been used by [[Valve]], third-party Companies, and much like GoldSource, it has been used in countless community mods by people around the globe.
{{source|p=4}} is a 3D game engine created by [[Valve]], it is the successor to {{gldsrc|p=4}}.  Source has been used by [[Valve]], third-party Companies, and much like GoldSource, it has been used in countless community mods by people around the globe.


[[File:20180823234321 1.jpg|thumbnail|Screenshot in-game of Counter-Strike: Source, using the Source Engine.]]
[[File:20180823234321 1.jpg|thumbnail|Screenshot in-game of Counter-Strike: Source, using the Source Engine.]]
[[File:Csgo_de_inferno_sourcescreenshot.jpg|thumbnail|Screenshot taken in-game Counter-Strike: Global Offensive which currently uses a newer branch of the Source Engine.]]
[[File:Csgo_de_inferno_sourcescreenshot.jpg|thumbnail|Screenshot taken in-game Counter-Strike: Global Offensive which currently uses a newer branch of the Source Engine.]]


== [[:Category:Programming|Renderer]] ==
==[[:Category:Programming|Renderer]]==
* Version 3.0 (and below) [[Pixel shader|Shaders]]
* Version 3.0 (and below) [[Shader]]s
* [[Bump mapping]] and [[Normal mapping]] on models and the world
* [https://en.wikipedia.org/wiki/Bump_mapping Bump mapping] and [https://en.wikipedia.org/wiki/Normal_mapping Normal mapping] on models and the world
* Author [[Pixel shader|Shaders]] with [[HLSL]]
* Author [[Shader]]s with [[HLSL]]
* Cube and environment mapping
* Cube and environment mapping
** Cubemapping also supports Anisotropy {{CSGO add}}
** Cubemapping also supports Anisotropy {{csgo|p=in|type=since}}
* [[$phong|Phong]] shading for models
* [[$phong|Phong]] shading for models
** Phong is also supported on world brushes {{CSGO add}}
** Phong is also supported on world brushes {{csgo|p=in|type=since}}
* Dynamic lights, vertex lighting and [[Vrad|light maps]], many light types including flickering, pulsing etc.
* Dynamic lights, vertex lighting and [[lightmap]]s, many light types including flickering, pulsing etc.
* [[HDR]] and LDR lighting
* [[HDR]] and LDR lighting
* Water with refraction, real-time world reflections and fresnel effects
* Water with refraction, real-time world reflections and fresnel effects
** Water also supports [[Water_Shader#Flowmaps|flow maps]] {{L4D2 add}}
** Water also supports [[Water (shader)#Special behaviour|flow mapping]] {{l4d2|p=in|type=since}}
* Advanced particle system that can emit sprites or models
* [[:Category:Particle System|Advanced particle system]] that can emit [[sprite]]s or [[model]]s
* Render-to-texture shadows allow for a large number of characters per scene
* Render-to-texture shadows allow for a large number of characters per scene
* Occluder entities for visibility blocking
* [[Func occluder|Occluder entities]] for visibility blocking
* Indoor/Outdoor environments
* Indoor/Outdoor environments
** Deformable terrain
** Deformable terrain
Line 27: Line 27:
* Subdivision surfaces, diffuse & specular bump maps
* Subdivision surfaces, diffuse & specular bump maps
* Real-time radiosity lighting
* Real-time radiosity lighting
* Real-time [http://msdn.microsoft.com/en-us/library/windows/desktop/ee416307(v=vs.85).aspx cascaded shadowmapping] that comes from the Skybox {{CSGO add}}
* Real-time [http://msdn.microsoft.com/en-us/library/windows/desktop/ee416307(v=vs.85).aspx cascaded shadowmapping] that comes from the Skybox {{csgo|p=in|type=since}}
* Effects include but are not limited to: particles, beams, volumetric smoke, sparks, blood, environmental effects like fog and rain
* Effects include but are not limited to: particles, beams, volumetric smoke, sparks, blood, environmental effects like fog and rain
* Scalability
* Scalability
** [[DirectX_Versions|DX8-DX9]] hardware supported (DX6-DX9 with modifications and fixed-function shaders)
** [[DirectX_Versions|DX8-DX9]] hardware supported (DX6-DX9 with modifications and fixed-function shaders)


== [[:Category:Material_System|Materials System]] ==
==[[:Category:Material_System|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 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
* 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
* Materials can interact with objects or [[NPC]]s such as mud or ice for vehicles to slide/lose traction on
* 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 gamers around the world
* Support for both [[Wikipedia:LAN|LAN]] based multiplayer and Internet based multiplayer games
* Support for both [https://en.wikipedia.org/wiki/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


== [[: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
Line 53: Line 53:
* Layered animation system can synthesize complex animations out of several pieces
* Layered animation system can synthesize complex animations out of several pieces


== [[:Category:Physics|Physics]] ==
==[[:Category:Physics|Physics]]==
* More responsive world with realistic interactions
* More responsive world with realistic interactions
* Sounds & graphics follow from physics
* Sounds & graphics follow from physics
* 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]]
* Ropes/cables, machines, constraint systems, [https://en.wikipedia.org/wiki/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 69: Line 69:
** 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]] allowing level designers to control [[:Category:AI|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
Line 76: Line 76:
* 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, know 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
* 7.1, 5.1 surround sound, 4 speaker surround
* High-quality 3D spatialization
* High-quality 3D spatialization
Line 90: Line 90:
* [[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.
* '''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.
* '''[[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:
* '''[[:Category: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:
** Dynamic in-game [[HUD]] display
** Dynamic in-game [[HUD Elements|HUD]] display
** Many [[Wikipedia:Widget (computing)|widget]]s/controls (i.e. buttons, treeview, html control, ...)
** Many [https://en.wikipedia.org/wiki/Graphical_widget widgets]/controls (i.e. buttons, treeview, html control, ...)
** Themes/custom visualization allowed
** Themes/custom visualization allowed
** Platform independent
** Platform independent
** Localized texts (Unicode compliant)
** Localized texts (Unicode compliant)


== [[:Category:Programming|Programming]] ==
==[[:Category:Programming|Programming]]==
* All code written in C/C++ using Visual Studio .NET 2003. Easily and quickly derive new entities from existing base classes
* All code written in C/C++ using Visual Studio .NET 2003. Easily and quickly derive new entities from existing base classes
* Internal context sensitive performance monitoring system
* Internal context sensitive performance monitoring system
* Graphics performance measurement tools built into the engine
* Graphics performance measurement tools built into the engine
* Modular code design (via DLLs) allows swapping out of core components for easy upgrading or code replacement
* Modular code design (via DLLs) allows swapping out of core components for easy upgrading or code replacement
* [[Wikipedia:DirectX|DX9]] [[shader]]s all written in [[HLSL]]
* [https://en.wikipedia.org/wiki/DirectX#DirectX_9 DX9] [[shader]]s all written in [[HLSL]]
* [[VScript]] scripting system allows using external coding languages such as Squirrel and Lua in maps to create more complex systems {{L4D2 add}}
* [[VScript]] scripting system allows using external coding languages such as Squirrel and Lua in maps to create more complex systems {{l4d2|p=in|type=since}}


== [[:Category:Tools|Tools]] ==
==[[:Category:Tools|Tools]]==
* [[Face Poser]]
* [[Faceposer]]
** Facial expression tool used to craft speech and emotions
** Facial expression tool used to craft speech and emotions
* [[Valve Hammer Editor]]
* [[Valve Hammer Editor]]
Line 118: Line 118:
** Place triggers, clip brushes, logic etc.
** Place triggers, clip brushes, logic etc.
** Allows level designer to hook up I/O between entities to control AI within the game
** Allows level designer to hook up I/O between entities to control AI within the game
* [[Half-Life Model Viewer]]
* [[Model Viewer]]
** Full model previewer
** Full model previewer
** Rotate models in any direction
** Rotate models in any direction
Line 127: Line 127:
* 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, 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 .smd exporters for exporting 3D models


== Games On Source ==
==Games On Source==
=== Valve ===
===Valve===
Games made by Valve.
Games made by Valve.
* {{game name|css|name=Counter-Strike: Source}}
* {{css|p=4}}
* {{game name|hl2|name=Half-Life 2}}
* {{hl2|p=4}}
* {{game name|hl2dm|name=Half-Life 2: Deathmatch}}
* {{hl2dm|p=4}}
* {{game name|ep1|name=Half-Life 2: Episode 1}}
* {{hl2ep1|p=4}}
* {{game name|ep2|name=Half-Life 2: Episode 2}}
* {{hl2ep2|p=4}}
* {{game name|lostcoast|name=Half-Life 2: Lost Coast}}
* {{hl2lc|p=4}}
* {{game name|hl1|name=Half-Life: Source}}
* {{hl|p=4}}
* {{game name|hldms|name=Half-Life Deathmatch: Source}}
* {{hldms|p=4}}
* {{game name|portal|name=Portal}}
* {{portal|p=4}}
* {{game name|tf2|name=Team Fortress 2}}
* {{tf2|p=4}}
* {{game name|dods|name=Day of Defeat: Source}}
* {{dods|p=4}}
* {{game name|l4d|name=Left 4 Dead}}
* {{l4d|p=4}}
* {{game name|l4d2|name=Left 4 Dead 2}}
* {{l4d2|p=4}}
* {{game name|as|name=Alien Swarm}}
* {{as|p=4}}
* {{game name|portal2|name=Portal 2}}
* {{portal2|p=4}}
* {{game name|csgo|name=Counter-Strike: Global Offensive}}
* {{csgo|p=4}}


=== Third-Party ===
===Third-Party===
Games and mods made by third-party companies and mod teams.
Games and mods made by third-party companies and mod teams.
* {{game name|insurgency|name=Insurgency}}
* {{insurgency|p=4}}
* {{game name|bms|name=Black Mesa: Source}}
* {{bms|p=4}}
* {{game name|infra|name=INFRA}}
* {{infra|p=4}}
* {{game name|doi|name=Day of Infamy}}
* {{doi|p=4}}
* {{game name|tsp|name=The Stanley Parable}}
* {{tsp|p=4}}
* {{game name|ship|name=The Ship}}
* {{ship|p=4}}
* [[Blade Symphony]]
* [[Blade Symphony]]
* {{game name|con|name=Contagion}}
* {{con|p=4}}
* {{game name|ddd|name=Dino D-Day}}
* {{ddd|p=4}}
* {{game name|zc|name=Zeno Clash}}
* {{zc|p=4}}
* {{game name|dm|name=Dark Messiah}}
* {{dmmm|p=4}}
* {{game name|tbg|name=The Beginner's Guide}}
* {{tbg|p=4}}
* {{game name|nd|name=Nuclear Dawn}}
* {{nd|p=4}}
* [[Double Action]]
* [[Double Action]]
* [[Consortium]]
* [[Consortium]]
* [[Revelations 2012]]
* [[Revelations 2012]]
* [[Divinia Chronicles]]
* [[Divinia Chronicles]]
* {{game name|sin|name=SiN Episodes: Emergence}}
* {{sin|p=4}}
* [[Vampire: The Masquerade]]
* [[Vampire: The Masquerade]]
* {{game name|lw|name=Lambda Wars}}
* {{lw|p=4}}
* [[Bloody Good Time]]
* [[Bloody Good Time]]
* [[Tactical Intervention]]
* [[Tactical Intervention]]
* {{game name|Dear Esther|name=Dear Esther}}
* {{Desther|p=4}}
* {{Game link|Vindictus}}
* {{Game link|Vindictus}}
* {{Game name|zps|name=Zombie Panic! Source}}
* {{zps|p=4}}
* [[No More Room In Hell]]
* {{Nmrih|p=4}}
* {{game name|eyedc|name=E.Y.E: Divine Cybermancy}}
* {{eyedc|p=4}}
* [[Apex Legends]]
* [[Apex Legends]]
* {{game link|Infestus}}
* {{game link|Infestus}}
* [[G-String]]
* [[G-String]]
* [[Postal III]]
* [[Postal III]]
* {{game name|jbep3|name=Jabroni Brawl: Episode 3}}
* {{jbep3|p=4}}
* {{source}} [[:Category:Source mods| Source mods]]
* [[:Category:Source mods|Category: Source mods]]
 
== See also ==
* [[wikipedia:Source engine]]


==See also==
* [https://en.wikipedia.org/wiki/Source_(game_engine) Source engine on Wikipedia]


[[Category:Technical]]
[[Category:Technical]]
[[Category:Glossary]]
[[Category:Glossary]]

Revision as of 00:19, 18 April 2022

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 is a 3D game engine created by Valve, it is the successor to GoldSrc. Source has been used by Valve, third-party Companies, and much like GoldSource, it has been used in countless community mods by people around the globe.

Screenshot in-game of Counter-Strike: Source, using the Source Engine.
Screenshot taken in-game Counter-Strike: Global Offensive which currently uses a newer branch of the Source Engine.

Renderer

  • Version 3.0 (and below) Shaders
  • Bump mapping and Normal mapping on models and the world
  • Author Shaders with HLSL
  • Cube and environment mapping
    • Cubemapping also supports Anisotropy Counter-Strike: Global Offensive
  • Phong shading for models
    • Phong is also supported on world brushes Counter-Strike: Global Offensive
  • Dynamic lights, vertex lighting and lightmaps, many light types including flickering, pulsing etc.
  • HDR and LDR lighting
  • Water with refraction, real-time world reflections and fresnel effects
  • Advanced particle system that can emit sprites or models
  • Render-to-texture shadows allow for a large number of characters per scene
  • Occluder entities for visibility blocking
  • Indoor/Outdoor environments
    • Deformable terrain
    • 3D Skyboxes extend the horizon and add parallax on distant objects
    • Dynamically rendered organics (grass, trees, etc.)
  • Subdivision surfaces, diffuse & specular bump maps
  • Real-time radiosity lighting
  • Real-time cascaded shadowmapping that comes from the Skybox Counter-Strike: Global Offensive
  • Effects include but are not limited to: particles, beams, volumetric smoke, sparks, blood, environmental effects like fog and rain
  • Scalability
    • DX8-DX9 hardware supported (DX6-DX9 with modifications and fixed-function shaders)

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 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
  • 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 gamers 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

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 naturally speak in many languages
  • Skeletal/bone system for animation
  • Layered animation system can synthesize complex animations out of several pieces

Physics

  • More responsive world with realistic interactions
  • Sounds & graphics follow from physics
  • AI characters can interact with physically simulated objects
  • Ropes/cables, machines, constraint systems, 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 in a vehicle in multiplayer
    • Hovercraft support for cheaper simulation

Advanced AI

  • I/O system allowing level designers to control AI
  • Sophisticated navigation: characters that run, fly, jump, crouch, climb stairs and ladders, and burrow underground
  • AI 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, know when to advance, retreat, lay cover fire, etc.

Sound System

  • 7.1, 5.1 surround sound, 4 speaker surround
  • High-quality 3D spatialization
  • Custom software DSP
  • Automatic DSP based on environmental geometry
  • ADPCM decompression
  • 16-bit 44KHz, stereo wave data with all features
  • MP3 decompression (requires Miles license)
  • Support for audio streaming on any wave
  • Real-time wave file stitching
  • Pre-authored Doppler effect encoded waves
  • Pre-authored distance variant encoded waves
  • Commentary system

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.
  • 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:
    • Dynamic in-game HUD display
    • Many widgets/controls (i.e. buttons, treeview, html control, ...)
    • Themes/custom visualization allowed
    • Platform independent
    • Localized texts (Unicode compliant)

Programming

  • All code written in C/C++ using Visual Studio .NET 2003. Easily and quickly derive new entities from existing base classes
  • Internal context sensitive performance monitoring system
  • Graphics performance measurement tools built into the engine
  • Modular code design (via DLLs) allows swapping out of core components for easy upgrading or code replacement
  • DX9 shaders all written in HLSL
  • VScript scripting system allows using external coding languages such as Squirrel and Lua in maps to create more complex systems Left 4 Dead 2

Tools

  • Faceposer
    • Facial expression tool used to craft speech and emotions
  • Valve Hammer Editor
    • WYSIWYG World editor
    • Create world brushes
    • Terrain editor
    • Place detailed world models and AI NPCs
    • Set navigation points/paths for NPCs
    • Place triggers, clip brushes, logic etc.
    • Allows level designer to hook up I/O between entities to control AI within the game
  • Model Viewer
    • Full model previewer
    • Rotate models in any direction
    • Setup hit boxes
    • View physics hull
    • View normals
    • Wireframe, shaded or textured view modes
  • Studiomdl
    • Model compiler
  • VBSP, VRAD, VVIS, VMPI
    • Map compilation tools (bsp, lighting and visibility)
    • VMPI - distributed compilation tool allowing level compiles to be spread across many PCs greatly reducing compile times
  • Exporters
    • XSI, Max and Maya .smd exporters for exporting 3D models

Games On Source

Valve

Games made by Valve.

  • Counter-Strike: Source
  • Half-Life 2
  • Half-Life 2: Deathmatch
  • Half-Life 2: Episode One
  • Half-Life 2: Episode Two
  • Half-Life 2: Lost Coast
  • Half-Life
  • Half-Life Deathmatch: Source
  • Portal
  • Team Fortress 2
  • Day of Defeat: Source
  • Left 4 Dead
  • Left 4 Dead 2
  • Alien Swarm
  • Portal 2
  • Counter-Strike: Global Offensive

Third-Party

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

See also