Source: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
(Replaced content with "displacement is not used for terrain anymore")
Tag: Replaced
Line 1: Line 1:
{{Language subpage}}
displacement is not used for terrain anymore
<div style="float:right">[[File:20180823234321 1.jpg|340px|thumb|Screenshot in-game of {{css|4.1}}, using the Source Engine.]]
[[File:Csgo_de_inferno_sourcescreenshot.jpg|340px|thumb|Screenshot taken in-game of {{csgo|4.1}}, which uses a newer branch of the Source Engine.]]</div>
[[File:SourceLogoWhite.png|340px|center|Source Engine logo]]{{clr|left}}
{{Source|4}} was a 3D game engine created by [[Valve]], it was the successor to {{gldsrc|4}}. {{Source|1}} had been used by [[Valve]], third-party companies, and (much like GoldSource) countless community [[Modification|mods]] by people around the globe. Yesterday, it was slowly being replaced by {{source2|4}} engine, but it was still being commonly used by modders and some third-party companies.
 
== [[:Category:Programming|Renderer]] ==
* Version 3.0 (and below) [[shader]]s
{{note|Unofficially, some third-party games can also support Shader Model 5.0 and later by using DirectX 11 and later.}}
* [[Wikipedia:Bump mapping|Bump mapping]] and [[w:Normal_mapping|Normal mapping]] on models and the world
* Author [[shader]]s with [[HLSL]]
* Cube and environment mapping
** Cubemapping also supports Anisotropy {{csgo|since}}
* [[$phong|Phong]] shading for models
** Phong is also supported on world brushes {{csgo|since}}
* Dynamic lights, vertex lighting and [[lightmap]]s, many light types including flickering, pulsing etc.
* [[HDR]] {{src06|since}} and SDR/LDR {{l4d2|not|addtext=and later}} lighting
* Water with refraction, real-time world reflections and fresnel effects
** Water also supports [[Water (shader)#Special behaviour|flow mapping]] {{l4d2|since}}
* [[:Category:Particle System|Advanced particle systems]] that can emit [[sprite]]s or [[model]]s
* Render-to-texture shadows allow for a large number of characters per scene
* [[Func occluder|Occluder entities]] for visibility blocking
* Indoor/Outdoor environments
** Deformable terrain
** [[3D Skybox]]es 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 [http://msdn.microsoft.com/en-us/library/windows/desktop/ee416307(v=vs.85).aspx cascaded shadow mapping] that comes from the skybox {{csgo|since}}
* Effects include but are not limited to: particles, beams, volumetric smoke, sparks, blood, & environmental effects like fog and rain
* Scalability
** [[DirectX_Versions|DX8-DX9]] hardware supported (DX6-DX9 with modifications and fixed-function shaders)
{{warning|DirectX 7 materials and earlier are no longer supported since {{src07|3.1}}/{{src09|3.1}}. Games that uses {{l4dbranch|4}} and later only support DirectX 9 materials.}}
 
== [[: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 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]] ==
* Time- and gamer-tested by millions of gamers around the world
* 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
* Optimizations for high-latency, high-packet-loss 56k connections
 
== [[:Category:Modeling|Advanced Characters]] ==
* Detailed and believable characters
* Realistic [[Eyeball|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
* [[:category:Choreography|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
 
== [[:Category:Physics|Physics]] ==
* Uses [[Havok]] physics engine, licensed from Havok Group (now acquired by [[w:Microsoft|Microsoft]])
* More responsive world with realistic interactions
* Sounds & graphics follow from physics
* AI characters can interact with physically simulated objects
* Ropes/cables, machines, constraint systems, [[w:Ragdoll_physics|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
 
== [[:Category:AI|Advanced 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
* AI senses things using sight, sound, and smell
* [[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.
 
== [[:Category:Sound_System|Sound System]] ==
* 7.1, 5.1 surround sound, 4 speaker surround
:{{ModernBug|On system running Windows Vista and later, due to the game engine using DirectSound and older version of Miles Sound System, the game may output only 5.1 surround despite 7.1 selected or 7.1 audio may not work properly without custom <code>dsound.dll</code> (such as Creative Alchemy, DSOAL or IndirectSound).}}
:{{note|Some Source games (such as {{as|4}}, {{portal2|4}} and {{csgo|4}}) 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
: {{warning|48 KHz audio (DVD Quality) is ''not'' supported. Not to be confused with 44.1 KHz, which is the CD Quality audio.}}
* [[MP3]] decompression (requires [http://www.radgametools.com/miles.htm Miles] license)
* 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|Commentary system]]
 
== [[: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.
* '''[[: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 Elements|HUD]] display
** Many [https://en.wikipedia.org/wiki/Graphical_widget widgets]/controls (e.g., buttons, treeview, html control…)
** Themes/custom visualization allowed
** Platform independent
** Localized text (Unicode compliant)
 
== [[:Category:Programming|Programming]] ==
* All code written in C/C++ using Visual Studio .NET 2003 and later. 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
* [[VScript]] scripting system allows using external coding languages, such as Squirrel and Lua, in maps to create more complex systems {{l4d2|since}} {{tf2|also}}
 
== [[:Category:Tools|Tools]] ==
* {{hlfaceposer|4}}
** Facial expression tool used to craft speech and emotions
* {{hammer|4|nt=1}}
** 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
* {{hlmv|4|nt=1}}
** Full model previewer
** Rotate models in any direction
** Set up 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
** [[:Category:XSI|XSI]], Max and Maya <code>.smd</code> exporters for exporting 3D models
 
== Games on Source ==
{{GameOnSource}}
[[:Category:Third_Party_Source_Engine_Games|More Third-party Source Engine games]]
* [[:Category:Source mods|More Source mods]]
 
== See Also ==
* [[Wikipedia:Source (game engine)]]
* [[Source SDK]]
* [[Source SDK 2013]]
 
[[Category:Technical]]
[[Category:Source]]

Revision as of 03:11, 7 June 2023

displacement is not used for terrain anymore