From Valve Developer Community
Jump to navigation
Jump to search
Source is a 3D game engine created by Valve in 2004, and is the successor to GoldSrc. Source has been used by Valve, third-party companies, and (much like GoldSrc) countless community mods by people around the globe. Today, it has largely been replaced by the Source 2 engine for first-party usage since 2015, but it's still being commonly used today by modders and some third-party companies, and it's still regularly being maintained with engine and security updates.
Clarify: The features list below may not applies to third-party or newer Source engine branches. For the list of branches, see this category page.
Note:Unofficially, some third-party games can also support Shader Model 5.0 and later by using Direct3D 11 and later, like Titanfall.
- Anti-aliasing support
- Source is the first Valve engine to support anti-aliasing, prior to MSAA (4X) being added to GoldSrc in 2013.
- MSAA is the traditional anti-aliasing method, works by samples (renders) each pixel multiple times at different locations within the frame and averages the samples to produce the final pixel value. It is commonly used in most older video games, including almost all Source engine games (except Black Mesa (since the Xen update), Apex Legends, etc...). Up to 8x MSAA (or 6x MSAA in Source 2004) is supported. Older GPUs (such as pre-Maxwell Nvidia cards) also support CSAA.
- FXAA is also supported in CS:GO engine branch. Unlike MSAA, FXAA has less performance hit than most other AA methods due to it being a post-processing effect, which meant that it can be unofficially added to older Source engine games (or even other video games, other engines and other applications in general), using software such as ReShade, or even built-in via the graphics driver settings, and unlike MSAA, FXAA and other post-processing method will affect transparent textures, however, due to it's nature, this makes FXAA looks worse than many other AA methods as it's appear to blur the image, plus it does not reconstruct the pixel which was missing due to lack of an traditional anti-aliasing.
- TAA is a modern AA method commonly used in most modern games, superseded the MSAA method for anti-aliasing, it works by combining information from past frames and the current frame to remove jaggies in the current frame. However, as mentioned, TAA combines information from past and current frames can cause blurring and ghosting effect while in motion, more noticeable with low FPS. In Source engine case, it is only available in few games such as Apex Legends.
Tip:If the game is running in 4K resolution or above, or by downscaling 4K to 1080p or lower, the need for anti-aliasing is greatly reduced.
- Bump mapping and Normal mapping on models and the world
- Author shaders with HLSL
- Cube and environment mapping
- Cubemapping also supports Anisotropy (in all games since )
- Phong shading for models
- Phong is also supported on world brushes (in all games since )
- Dynamic lights, vertex lighting and lightmaps, many light types including flickering, pulsing etc.
- HDR (in all games since ) and SDR/LDR (not in and later) lighting
- 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
- 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 shadow mapping that comes from the skybox (in all games since )
- 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)
- DX11 and later are also supported on some third-party branches.
Note:Source allows up to 8 LOD Models, although it does not have automatic level of detail out of box. Manual LoD is supported, however.
- 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 NPCs, such as mud or ice for vehicles to slide/lose traction on
- 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
- 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
- Uses Havok physics engine, licensed from Havok Group (now acquired by 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, 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
- 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 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.
- 7.1, 5.1 surround sound, 4 speaker surround
Bug: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 dsound.dll
(such as Creative Alchemy, DSOAL or IndirectSound). This issue is not affected by some third-party games, such as Titanfall 2, Apex Legends. [todo tested in?]
- 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 by default. Not to be confused with 44.1 KHz, which is the CD Quality audio.
- MP3 decompression (requires 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
- 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 (e.g., buttons, treeview, html control…)
- Themes/custom visualization allowed
- Platform independent
- Localized text (Unicode compliant)
- Panorama (in all games since ) — Introduced in 2018, Valve's new Custom GUI interface that resembles modern web design and authoring (HTML5/CSS/JS). Using
.XML
and JavaScript files, developers can create dynamic and clean huds and menus and even high-quality in-game intractable panels.
- 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 (in all games since ) (also in )
- HLFaceposer
- 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
- Half-Life Model Viewer
- Full model previewer
- Rotate models in any direction
- Set up hit boxes
- View physics hull
- View normals
- Wireframe, shaded or textured view modes
- Studiomdl
- 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
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.
Stub
This article or section is a stub. You can help by adding to it.