Source (game engine)

Source engine
Developed by Valve Corporation
Latest release Protocol 37, Build 3679 / December 5, 2008
Platform Microsoft Windows, Playstation 3, Xbox, Xbox 360
License Proprietary
Website http://source.valvesoftware.com/

The Source engine is a 3D game engine developed by Valve Corporation. The engine supports Microsoft Windows (32-bit and 64-bit), Xbox, Xbox 360, and PlayStation 3.

It debuted in October 2004 with Counter-Strike: Source and shortly thereafter Half-Life 2. Other games using the engine include Team Fortress 2, Portal, Left 4 Dead, Dark Messiah of Might and Magic, Mabinogi Heroes and Postal III.

Contents

Notable technology

For a more complete list, see Source Engine Features at the Valve Developer Community.

Modularity and notable upgrades

Source was created to evolve incrementally as technology moved onwards, as opposed to the backwards compatibility-breaking "version jumps" of its competitors. This becomes especially relevant when considering Source's links to Steam, and the latter's automatic updates that allow new versions of software to 'pollinate' a user base to all intents and purposes instantaneously.

However, in practice there have been occasional breaks in this chain of compatibility. The release of Half-Life 2: Episode One and The Orange Box both introduced new versions of the engine that could not be used to run older games or mods without the developers performing upgrades to code and, in some cases, content. But both times the work required to move from the older version to the newer was significantly less than what one might have come to expect from other engines - where such an action may well not even be possible without total re-development.

Feature Date of release First use Description
High dynamic range rendering September 29, 2005 Day of Defeat: Source
Half-Life 2: Lost Coast
Simulation of brightness values beyond computer monitors' actual range.
Facial animation 2 June 1, 2006 HL2: Episode One Increased the details of facial expressions at close range.[14]
Soft particles October 10, 2007 Team Fortress 2
HL2: Episode Two
Artist-driven and multiprocessor-optimised particles. Techniques are used to prevent particles being 'clipped' by 3D geometry.
Full-screen motion blur October 10, 2007 Orange Box games Not the same as the "cinematic" blur used to render Valve's various trailers; only appears when the camera is moved at high speed (e.g. spinning or falling).[15]
Facial animation 3 October 10, 2007 Team Fortress 2
HL2: Episode Two
Hardware accelerated on modern video cards for "feature film and broadcast television" quality.[16]
Dynamic lighting and shadowing October 10, 2007 HL2: Episode Two New texture-projecting dynamic lighting and shadow mapping system. Used primarily for Ep2's flashlight shadows.[17][10]
Landscape and flora rendering October 10, 2007 HL2: Episode Two Internal optimisations for the compiling and drawing of large open areas, and the addition of support for vector-like edge smoothing on raster images (e.g. leaves).
Cinematic physics October 10, 2007 HL2: Episode Two Not actually a feature of the engine - a common misconception. Cinematic "physics" are actually pre-calculated animations created with Maya plug-in Blast Code.[18]
Multiprocessor optimizations October 10, 2007 Orange Box games Unlocked faster processing on dual or quad core systems, including the Xbox 360 and PlayStation 3 consoles.[10][19]
Physics-animation blending October 10, 2007 Team Fortress 2
HL2: Episode Two
Support for bone joints to be physically simulated on an otherwise pre-animated model. Used for flexible clothing and hair, wings, belt items, blubber, etc.
Post processing effects November 18, 2008 Left 4 Dead Dynamic color correction and filters like contrast, sharpening, film grain and vignetting. Used to draw the players attention, effect mood, or emulate a certain visual style[20][21]
Rendering and AI improvements November 18, 2008 Left 4 Dead Improvements to rendering and AI calculation to allow much larger number of characters to be rendered at once[20]
Dynamic lighting and shadowing improvements November 18, 2008 Left 4 Dead Self Shadowed Normal mapping added to convey the tactile qualities of the surface (rough, smooth, gritty, etc) along with other improvements[22][20][21]

AI Director

During the development of Left 4 Dead Valve created a new artificial intelligence technology they dubbed The Director[23]. The Director is used to procedurally generate a different experience for the players each time the game is played. It monitors individual players performance and how well they work together as a group to pace the game, determining the number of zombies that attack the player and the location of boss infected encounters based on information gathered. Besides pacing the Director also controls some video and audio elements of the game to set a mood for a boss encounter or to draw the players' attention to a certain area.[24].

Valve calls the way the Director is working "Procedural narrative" because instead of having a difficulty level which just ramps up to a constant level, the A.I. analyze how the players fared in the game so far, and try to add subsequent events that would give them a sense of narrative[25]

Valve is looking for ways to apply the Director in their future games to make pacing and difficulty more dynamic. It will also be made available to mod makers through a Source SDK update following the release of Left 4 Dead. [26]

Future technology

Source Filmmaker

The tool used to create Team Fortress 2's "Meet the Team" videos as well as Left 4 Dead's introduction videos is the Source Filmmaker, an application that runs inside the engine. It allows users to record themselves many times over in the same scene, creating the illusion of many participants, as well as supporting a wide range of cinematographic effects and techniques such as motion blur and depth of field. (Motion blur has now been added to the games themselves, though only when the view is moving at high speeds - not per-object as in the film-maker.) This tool is expected to be released to the public upon release of the final "Meet the Team" video.

Image-Based Rendering

Image-based rendering technology had been in development for Half-Life 2[27] but was cut from the engine before its release. It was mentioned again by Gabe Newell in 2006 as a piece of technology he would like to add to his company's engine, in order for them to support far larger scenes than are possible with strictly polygonal objects.[28]

Origins

Source distantly originates from the GoldSrc engine, itself a heavily modified version of John D. Carmack's original Quake engine, as is explained by Valve employee Erik Johnson on the Valve Developer Community:[29]

When we were getting very close to releasing Half-Life (less than a week or so), we found there were already some projects that we needed to start working on, but we couldn't risk checking in code to the shipping version of the game. At that point we forked off the code in VSS to be both $/Goldsrc and /$Src. Over the next few years, we used these terms internally as "Goldsource" and "Source". At least initially, the Goldsrc branch of code referred to the codebase that was currently released, and Src referred to the next set of more risky technology that we were working on. When it came down to show Half-Life 2 for the first time at E3, it was part of our internal communication to refer to the "Source" engine vs. the "Goldsource" engine, and the name stuck.

Source was developed part-by-part from this fork onwards, slowly replacing GoldSrc in Valve's internal projects[30] and explaining in part the reasons behind its unusually modular nature. Valve's development of Source since has been a mixture of licensed middleware (Havok Physics, albeit heavily modified, and MP3 playback) and in-house-developed code.

John Carmack commented on his blog in 2004 that "there are still bits of early Quake code in Half-Life 2"[31] and numerous development interfaces are similar to Quake's, at least at a high level - but with both easily likely of being Valve avoiding reinventing the wheel, neither are indicative of a notable reliance on the older engine. Indeed given the fact that Source's 2003 code leak did not produce any such claims it can only be assumed that no incriminating evidence was to be found.

Source distances itself further from Quake as time goes on.

Criticism

Toolset

The Source SDK tools are criticised for being outdated and difficult to use.[32] A large number of the tools, including those for texture and model compilation, require varying levels of text-editor scripting from the user before they are executed at the command line with sometimes quite lengthy console commands.[33] This obtuseness was cited by the University of London when they moved their exploration of professional architectural visualisation in computer games to Bethesda Softworks' Gamebryo-based Oblivion engine after a brief period with Source.[34] Third-party tools provide GUIs,[35] but are not supported by Valve.

Valve's Hammer Editor, the SDK's world-creation tool, does have an interface, but one that has not changed significantly since its initial release for GoldSrc and the original Half-Life in 1998.

Before the Valve Developer Community Wiki was opened the SDK's user documentation was also often lacking.[36]

Programming

Unlike most modern game engines, Source requires all program code to be written in C++. This is in particular contrast with the Unreal engine and its UnrealScript language that allows code to be written in discrete 'Mutator' units that can be distributed piecemeal. The closest Source comes to this is server plug-ins in multiplayer games that must be installed by administrators -- aside from those, even the smallest change to a game's behaviour requires source code access and the creation of a different and quite possibly incompatible version of the game's binaries.

In response to this, several Source engine games and mods (including Garry's Mod, Fortress Forever and Smod) have implemented the Lua scripting language. These implementations are not available in either the consumer or licensee SDKs however, and as a result the development communities each have formed (which include entire games and mods running or being developed inside them) cannot migrate to the Source engine in general.

Valve Developer Community

On June 28, 2005, Valve opened the Valve Developer Community Wiki. VDC replaced Valve's static Source SDK documentation with a full MediaWiki-powered community site; within a matter of days Valve reported that "the number of useful articles [had] nearly doubled". These new articles covered the previously undocumented Counter-Strike: Source bot (added by the bot's author, Mike Booth), Valve's NPC AI, advice for mod teams on setting up source control, and more.

Licensed Source games

Valve
Counter-Strike: Source
Day of Defeat: Source
Half-Life: Source
Half-Life 2
Half-Life 2 Episodes (One, Two and Three)
Half-Life 2: Deathmatch
Portal
Team Fortress 2
Left 4 Dead
Other developers
Alien Swarm: Infested
The Crossing[37]
Dark Messiah of Might and Magic
Garry's Mod
Mabinogi Heroes
Postal III[38]
Prime
Salvation [1]
SiN Episodes
Sting: The Secret Operations [2]
The Ship
They Hunger: Lost Souls
Twilight War: After the Fall [3]
Vampire: The Masquerade – Bloodlines
Zeno Clash [4]
Untitled Threewave Software game[39]
Kuma Reality Games
DinoHunters
Dogfights: The Game
The History Channel's ShootOut! The Game
The Kill Point: Game
Kuma\War 2
Education and research
VR Worlds 2 [5]

Mods

While no authoritative list of mods has been created, ModDB hosts what is probably the most-complete in existence here. Mods notable enough to have articles on Wikipedia can also be found at Category:Source engine mods.

Papers

Valve staff infrequently produce papers for various events and publications, including SIGGRAPH, Game Developer Magazine and Game Developers Conference, explaining various aspects of Source's development. They are aimed at professional audiences and often discuss complex concepts. They are listed on Valve's corporate website.

See also

References

  1. "DirectX Versions". Valve Developer Community (2005-07-07). Retrieved on 2008-07-20.
  2. "Source Multiplayer Networking". Valve Developer Community (2005-06-30). Retrieved on 2008-07-20.
  3. "VPhysics". Valve Developer Community (2006-10-15). Retrieved on 2008-07-20.
  4. "Source: Belly of the Beast". hlfallout.net (2004-06-21). Retrieved on 2008-12-06. "Since they licensed and integrated it into Source, Valve have been tweaking and adding to Havok to the point it's virtually a new animal. Almost every aspect of the Source engine follows on from the physics — including the sound, graphics, AI and animation. When asked whether or not they would be upgrading to Havok 2, Valve seemed to suggest they probably wouldn't, in part because H2 wouldn't be much of a step forward from what they currently have."
  5. "Multi-Core in the Source Engine Core". Bit-tech (2006-11-02). Retrieved on 2006-11-02.
  6. "Face-to-Face with TF2's Heavy". Steam news (2007-05-14). Retrieved on 2007-05-15.
  7. "$sequence". Valve Developer Community (2007-09-08). Retrieved on 2008-07-20.
  8. "$ikchain". Valve Developer Community (2007-09-08). Retrieved on 2008-07-20.
  9. "New technology for EP2". HL2World.com.
  10. 10.0 10.1 10.2 "Half-Life 2: Episode Two Impressions". GameSpot (August 24, 2006). Retrieved on 2006-08-24.
  11. "Improved Alpha-Tested Magnification for Vector Textures and Special Effects". SIGGRAPH 2007 (2007-08-05). Retrieved on 2008-05-20.
  12. "Mod wizard complete". Valve Developer Community (2008-02-24). Retrieved on 2008-07-20.
  13. "VMPI". Valve Developer Community. Retrieved on December 5 2008.
  14. Ken Birdwell explains the upgrade's features in the game's commentary track:When we designed the Half-Life 2 facial system back in 2000, our goal was to get a natural-looking performance at a moderate distance. For Episode One, we wanted to extend the characters' facial systems to support more intense performances with a wider range of facial expressions, that would hold up better at close range.
  15. "Half-Life 2: Episode 2 Hands-on Preview (Xbox 360)".
  16. Face-to-Face with TF2's Heavy
  17. "New technology for EP2". HL2World.com.
  18. Blast Code 1.6 Released
  19. "Interview: Gabe Newell". PC Zone (2006-09-11). Retrieved on 2006-09-20.
  20. 20.0 20.1 20.2 Gabe Newell. (2008). Making Left 4 Dead E3 2008 Presentation [Video presentation]. Valve Corporation.
  21. 21.0 21.1 Valve Corporation (July 2008). "How Valve Connects Art Direction to Gameplay". Retrieved on 2008-08-02.
  22. Callaham, John (2007-03-22). "Left 4 Dead Interview". FiringSquad. Retrieved on 2008-09-01.
  23. "Left 4 Dead". Valve Corporation.
  24. "Left 4 Dead Hands-on Preview". Left 4 Dead 411.
  25. Newell, Gabe (2008-11-21). "Gabe Newell Writes for Edge". edge-online.com. Retrieved on 2008-11-22. "The events are trying to give them a sense of narrative. We look at sequences of events and try to take what their actions are to generate new sequences. If they’ve been particularly challenged by one kind of creature then we can use that information to make decisions about how we use that creature in subsequent encounters. This is what makes procedural narrative more of a story-telling device than, say, a simple difficulty mechanism. "
  26. "VGChartz Interviews Valve's Doug Lombardi on Left 4 Dead". vgchartz.
  27. "Interview with Gabe Newell". DriverHeaven.net.
  28. "Valve Week". 1UP.com. Retrieved on 2006-07-14.
  29. Erik Johnson (2005-09-01). "Talk:Erik Johnson". Valve Developer Community. Retrieved on 2007-08-15.
  30. Hodgson, David (2004). Half-Life 2: Raising the Bar. Prima Games. ISBN 0-7615-4364-3. 
  31. "Welcome, Q3 source, Graphics". John Carmack's Blog (2004-12-31).
  32. "Stuck Valve". Dirigible Development Diary (2006-11-15). Retrieved on 2007-10-20.
  33. "Vtex CLI use". Valve Developer Community (2007-08-28). Retrieved on 2008-07-21.
  34. "Half Life 0 Oblivion 1 - Half Life Update". Digital Urban (2006-09-28). Retrieved on 2007-10-20.
  35. "Category:Third Party Tools". Valve Developer Community (n.d.). Retrieved on 2007-10-20.
  36. "Phoneme Tool". Valve Developer Community (2006-06-29). Retrieved on 2007-10-20.
  37. "The Crossing Revealed". HalfLife2.net. Retrieved on 2006-12-23.
  38. "Postal 3 Officially Announced". Firing Squad. Retrieved on 2006-10-18.
  39. "First-Person Advertiser - Talking In-Game Ads With Threewave Software". Gamasutra. Retrieved on 2006-09-16.