Source engine
From Free net encyclopedia
Image:HalfLife2 SourceDemo.jpg
The Source engine (officially the Valve Source Engine) is a 3D game engine developed largely by Valve Software for their first-person shooter computer game Half-Life 2 and for licensing to other developers. It provides rendering, sound, animation, lip syncing, UI (specifically VGUI), networking, artificial intelligence, and physics. Source supports both 32-bit and 64-bit environments and currently runs under Microsoft Windows and on the Xbox.
Source requires modern hardware to run with all visual and audio effects enabled, but is extremely scalable and can run smoothly on an array of older systems.
The engine debuted on Half-Life 2. Valve has also ported the original Half-Life and mods such as Counter-Strike to the Source engine (appropriately titled Counter-Strike: Source and Half-Life: Source). Other games include Half-Life 2: Deathmatch, Day of Defeat: Source, Half-Life: Source Deathmatch and Half-Life 2: Episode One.
Troika Games' Vampire: The Masquerade - Bloodlines was the first publicly announced licensee of the Source engine. In fact, Bloodlines "went gold" before Half-Life 2, though its commercial release was contractually delayed so that Half-Life 2 would hit stores before Bloodlines. Valve later announced licensees including Arkane Studios (for the first-person RPG Dark Messiah of Might & Magic) and Smiling Gator Productions (for Twilight War: After the Fall, a MMORPG).
Ritual Entertainment announced on July 4, 2005 that they had licensed both Source and Steam for their new episodic sequel to Sin, SiN Episodes.
Warren Spector's and Art Min's Junction Point Studios has announced that it has licensed both Source and Steam for an as yet unannounced title.
Contents |
Technology
The most obvious improvements of Source over the old Half-Life GoldSrc engine are in the areas of rendering and physics. Rendering now takes a shader-based approach that allows greater control over the graphics to create interesting visual effects. Source uses Direct3D exclusively for its rendering.
The physics, based on a heavily-modified version of the Havok physics engine, allows for an extra dimension of interactivity in both single player and online environments. Character death can now be handled by ragdoll physics and many physically simulated objects can exist in a map without a notable performance hit. Source also provides sophisticated vehicle physics including torque, power, gears, tire material, suspension and mode. Multiple players can be in the same vehicle, but this feature has yet to be used.
Source features 3D skyboxes, which allow for an area outside (or even inside) the accessible map to be displayed as a skybox at an exponentially increased scale with full 3D parallax. This adds a greater sense of depth to the surrounding environment, and allows for the illusion of far larger maps than the engine actually supports.
Image:SourceDemo Characters.jpg
Image:Hl2 lostcoast fisherman.jpg Source also has the ability to simulate characters' facial expressions in real-time. Valve says that forty-two digital "facial muscles" are used for facial simulation. Lip syncing is also a major feature, and is auto-generated by SDK tools. Lip sync data is stored with audio files, allowing for easy localization of dialogue.
Source also includes and expands on Valve's existing animation blending technology, allowing any animation to merge with any other animation - including facial animation, lip syncing, and gestures. Similarly, Source supports Inverse Kinematics, or IK, to ensure character's limbs react to environments. For instance, feet will angle themselves to the surface they are on and legs will bend higher when climbing stairs. Both technologies work in real-time.
The game also aimed to improve audio design. The sounds in the game are seperated into two distinct frequencies which are then played at an accurate volume depending on distance of the sound source, giving the sound effect realistic properites. An explosion at great distances sounds like a low pitched bellow, but up close, a sharp, loud crack. The player can also observe this effect by going near one of the talking terminals in the game, and walking to and from the machine while listening to the pitch shift.
Modularity
Image:Dod source film effects.jpgSource is designed from the ground up to be highly modular. This allows for the easy upgrade and modification of certain features without breaking other facets of the engine and, when coupled with Steam, these updates can be distributed retroactively to Steam-enabled Source games. For instance, if Source is upgraded to support hardware physics, every Source title on Steam will instantly benefit.
HDR is a recent example of this modularity. Upon its release, all Source engine games and mods could immediately use it (though only special HDR-enabled maps utilize the technology). It has also been recently announced that Valve is working to add depth of field, motion blur, color correction and film grain effects to their engine, principally to enhance the 'period cinema' feel of Day of Defeat: Source. These effects were detailed in depth on bit-tech in December 2005. Valve's motion blur implementation is currently not real time and will likely not become part of Source for some time.
Criticism
Stutter
The Source Engine uses a caching system, whereby the loading of certain resources is handled and managed on the fly, rather than in a single operation behind a traditional loading screen. Texture and sound data are the primary areas in which this occurs. Textures are loaded to memory but only moved to the system's video card when needed; audio files are loaded with an unusual "soundcache" system, whereby only the first 0.125 seconds of each file are precached, the short clip used to cover the asynchronous buffering of the full sound file in the background when the file is first requested.
Both systems keep data in the heap until there is no more room and older resources are flushed out, and when either is held up or otherwise slowed down the engine will either freeze or go into a temporary loop until the data arrives. 'Stuttering', or 'hitching' as it is sometimes known, is the result of these pauses.
While stutter can be caused by poor system performance, it has also been noted on hardware setups that should be more than powerful enough to cope with the data rate, and despite many theories, the precise cause remains unknown even over a year after the engine's debut. Most solutions that have been found involve bypassing the caching system, as it cannot be directly disabled, or system-specific optimisations (e.g. driver updates). As of January 8th 2006, Valve programmers are "looking at [the problem] actively".
When Half-Life 2 was first released and stuttering became a widely-known problem, community member Mark McWilliams set up a page covering the issue and Valve's communication and work on resolving it [1]. Several updates were released by Valve, the effects of which varied from complete fixes by some users to previously smooth systems becoming "infected" with the problem.
- Example 1, showing a relatively low level of stutter. The hitches coincide with the drawing of new areas (a process that is by design not visible without debugging tools).
- Example 2, showing a far more violent case. This user's stutter seems tied to audio.
Most recently (February 7 2006), changes to the Source engine were introduced alongside a beta test of Steam's Friends chat service, with the aim of 'narrowing down' the problem [2].
Looping Audio
The Source Engine suffers from an error whereby the asynchronous loading (see Stutter, above) of a new sound file will cause the engine to lock up with looping audio. Because of the nature of DirectX, once the engine enters such a state it will remain on the screen unless the user can blindly terminate the program, or reboots their computer. The error occurs in a standard Windows library associated with on-board sound cards, and can be resolved by decreasing DirectSound Acceleration [3].
Control
There appear to be a few aspects of the Source engine which make player control problematic.
One such aspect is the tendancy of the game to unexpectedly supply a "push", thus unexpectedly propelling the character forwards or sideways.
Two particular situations exist where this occurs; when disconnecting from a ladder and when falling from a platform. In both cases, the player character receives a significant "push", from nowhere.
For example, if the player character is on a very narrow ledge over a high fall and is attempting to connect to a ladder, it is quite easy to connect without knowing that connection has occured, since there is no indication of connection - no noise, no status indicator, etc. At that point, any movement away from the ladder leads to disconnection (since the player character is at the base of the ladder, where the game engine treats movement away from the ladder as a wish to disconnect). This causes the "push" which abruptly and uncontrollably propels the player off of the ledge.
Likewise, if the player character edges extremely slowly off of a ledge into a fall, the moment the player character departs from the ledge, a sideways push is spontaniously applied.
Another issue is that the engine doesn't necessarily respond well to simultaneous use of foward and jump; rather than a running jump, which is the player's intention, what occurs is a jump followed by very slow in-air forward movement.
This tends to make rapid movements problematic, since when under pressure (combat, ceiling collapsing, incoming artillery, etc) there is a natural tendancy on the part of the human player to operate quickly, which is antagonistic to the way in which the game engine requires the player to behave to achieve running jumps.
Finally, control of movement up and down ladders is non-intuitive. When the player is on a ladder, his movement up or down is dictated by whether or not he is looking up or down - regardless of whether he pushes the backwards or fowards movement key.
This is entirely opposite with the control of the player at all other times, where forwards and backwards control movement and the direction of view, up or down, has absolutely no effect whatsoever.
In general it is well understood that forwards and backwards become up and down when on a ladder; unfortunately, HL2 does not adhere to this convention (whereas for example HL1 does).
This leads to problems in situations where, for example, the player has stealthily inched up a ladder and noticed hostiles and explosive barrels nearby; the players view is angled up, so that his body can remain out of sight while his gun can fire at the top of a barrel. Having fired, the barrel begins to burn and the player dives down the ladder into cover - except, of course, in that precise moment where the player now needs to operate rapidly due to time constraints and the possibility of incoming fire and so has far less mental capability left over to manage the game engine, the instinctive pressing of the down key ("I want to move down the ladder") actually causes the player to rise up the ladder, since his view is angled up, and this leads to dismount from the top - in full view of all hostiles and probably close to a barrel which is about to explode.
The Valve Developer Community
On the 28th June 2005, Valve opened the Valve Developer Community Wiki. The VDC replaced the previously available Source SDK documentation with a full MediaWiki-powered community site. Within a matter of days Valve reported that "the number of useful articles... nearly doubled". These new articles covered the previously undocumented Counter-Strike: Source bot (added by the bot's author, Mike Booth) and Half-Life 2 AI, source control for Source engine mods, and more.
Licensed Source games
Valve
- Counter-Strike: Source
- Day of Defeat: Source
- Half-Life: Source
- Half-Life: Source Deathmatch
- Half-Life 2
- Half-Life 2: Episode One
- Half-Life 2: Deathmatch
- Team Fortress 2
From other developers
- Alien Swarm: Infested
- Dark Messiah of Might & Magic
- Kuma\War (being recreated in Source)
- Realms of Valhallon: Age of Nations [4]
- SiN Episodes
- They Hunger: Lost Souls
- Twilight War: After the Fall (production resumed)
- Vampire: The Masquerade - Bloodlines
- Unannounced Kuma Reality Games title [5]
- Unannounced Turtle Rock Studios game [6]
- Unannounced Warren Spector game [7]
External links
- Valve's Source licensing site
- The Valve Developer Community
- GameSpy: "Original Half-Life to be Released in Source Engine"
- Half-Life 2 Fallout.net's comprehensive "Source: Belly of the Beast" article
- DevMaster.net Source Engine details
- HLForums.com - A popular Half Life related community along with Half Life related news
- Bit-tech.net's in depth look at Cinematic Effects in Source
Template:Half-Lifeda:Valve Source Engine de:Source Engine fr:Source engine pl:Source fi:Source