Source (game engine)
From Wikipedia, the free encyclopedia
| Developer(s) | Valve Corporation |
|---|---|
| Stable release | Protocol 37, Build 3679 / December 5, 2008 |
| Written in | C++ |
| 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 June 2004 with Counter-Strike: Source and shortly thereafter Half-Life 2. Other games using the engine range from the sandbox style of Garry's Mod to the First Person Fighter Zeno Clash.
Contents |
[edit] Notable technology
- For a more complete list, see Source Engine Features at the Valve Developer Community.
- Direct3D rendering from 6 (available but unsupported), to 9 with DirectX 10 hardware (referred to by the engine as "9.8")[1]
- OpenGL ES on Playstation 3.[citation needed]
- High dynamic range rendering (HDR). It was the first major instance of Source's modularity in use, with the release of Half-Life 2: Lost Coast.
- Lag-compensating network communications[2]
- Network-enabled and bandwidth-efficient physics engine[3]. Source uses a heavily tweaked version of the Havok physics engine[4].
- Multiprocessor support (any number of cores)[5]
- Facial animation system: A full range of human and non-human facial movements, based on Professor Paul Ekman's Facial Action Coding System. It works in tandem with lip-syncing, which is auto-generated and localizable[6]. Facial animation already had two upgrades since the release of Half-Life 2.
- Blended skeletal animation system[7], including inverse kinematics[8]
- Full-screen motion blur.
- Dynamic lighting and shadowing[9][10]
- Alpha to coverage[11] edge smoothing for foliage etc.[12]
- Significant source code access for mod teams[13]
- Network- or internet-distributed map compiler[14]
[edit] 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, as the latter's automatic updates allow new versions of the former to 'pollinate' a user base to all intents and purposes instantaneously.
In practice however, 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.[15] |
| 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.[citation needed] |
| 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).[16] |
| 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.[17] |
| 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.[18][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 Alpha to coverage[11] 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.[19] |
| Multiprocessor optimizations | October 10, 2007 | Orange Box games | Unlocked faster processing on systems with multiple CPUs or CPU cores, including the Xbox 360 and PlayStation 3 consoles.[10][20]On the PC this feature was experimental and unstable [21], Left 4 Dead brought improved support.[22] |
| 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, affect mood, or emulate a certain visual style[23][24] |
| 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[23] |
[edit] AI Director
During the development of Left 4 Dead Valve created a new artificial intelligence technology they dubbed The Director.[25] 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.[26].
A much simpler version of the A.I. Director was already used for some key battles in Half-Life 2: Episode Two[27].
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.[28]
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. [29]
[edit] Future technology
[edit] 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, Tyndall effects, Dynamic Lighting, 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.[citation needed]
[edit] Image-Based Rendering
Image-based rendering technology had been in development for Half-Life 2[30] 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.[31]
[edit] 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:[32]
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
$/Goldsrcand/$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[33] 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"[34] and numerous development interfaces are similar to Quake's, at least at a high level.
[edit] Criticism
[edit] Toolset
The Source SDK tools are criticised for being outdated and difficult to use.[35] 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.[36] 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.[37] Third-party tools provide GUIs,[38] but are not supported by Valve.
The interface of Valve's Hammer Editor, the SDK's world-creation tool, 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 limited.[39]
[edit] Programming
Unlike most modern game engines, Source requires all program code to be written in C++. This can be contrast with the Unreal engine and its UnrealScript language, which allows code to be written as discrete "mutators" and distributed piecemeal. The closest Source comes to this is server plug-ins in multiplayer games that can be installed by administrators — those aside, 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, starting with Garry's Mod and including Fortress Forever, GoldenEye: Source 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 that have formed around each (which have sometimes created entire games within games) cannot migrate to the Source engine in general.
[edit] 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 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.
[edit] Licensed Source games
- Valve
- Counter-Strike: Source
- Day of Defeat: 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 Deathmatch: Source
- Half-Life: Source
- Left 4 Dead
- Left 4 Dead 2
- Portal
- Team Fortress 2
- Other developers
- The Crossing[40]
- Dark Messiah of Might and Magic
- E.Y.E [1]
- Garry's Mod
- Mabinogi: Heroes
- Nuclear Dawn [2] [3]
- Postal III[41]
- Salvation
- SiN Episodes
- Sting: The Secret Operations
- The Ship
- They Hunger: Lost Souls
- Vampire: The Masquerade – Bloodlines
- Zeno Clash
- Untitled Threewave Software game[42]
- 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 [4]
[edit] Mods
See also: Category:Source engine mods
[edit] 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.
[edit] See also
| Wikimedia Commons has media related to: Zeno Clash |
[edit] References
- ^ "DirectX Versions". Valve Developer Community. 2005-07-07. http://developer.valvesoftware.com/wiki/DirectX_Versions. Retrieved on 2008-07-20.
- ^ "Source Multiplayer Networking". Valve Developer Community. 2005-06-30. http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking. Retrieved on 2008-07-20.
- ^ "VPhysics". Valve Developer Community. 2006-10-15. http://developer.valvesoftware.com/wiki/Vphysics. Retrieved on 2008-07-20.
- ^ "Source: Belly of the Beast". hlfallout.net. 2004-06-21. http://www.hlfallout.net/articles.php/article_2/4/. 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."
- ^ "Multi-Core in the Source Engine Core". Bit-tech. 2006-11-02. http://www.bit-tech.net/gaming/2006/11/02/Multi_core_in_the_Source_Engin/1.html. Retrieved on 2006-11-02.
- ^ "Face-to-Face with TF2's Heavy". Steam news. 2007-05-14. http://steamgames.com/v/index.php?area=news&id=1039. Retrieved on 2007-05-15.
- ^ "$sequence". Valve Developer Community. 2007-09-08. http://developer.valvesoftware.com/wiki/$sequence. Retrieved on 2008-07-20.
- ^ "$ikchain". Valve Developer Community. 2007-09-08. http://developer.valvesoftware.com/wiki/$ikchain. Retrieved on 2008-07-20.
- ^ "New technology for EP2". HL2World.com. http://www.hl2world.com/bbs/new-technology-for-ep2-vt44745.html.
- ^ a b c "Half-Life 2: Episode Two Impressions". GameSpot. August 24, 2006. http://gamespot.com/pc/action/halflife2episode2/news.html?sid=6156429. Retrieved on 2006-08-24.
- ^ a b "$distancealpha". http://developer.valvesoftware.com/wiki/%24distancealpha. Retrieved on 2009-07-05.
- ^ "Improved Alpha-Tested Magnification for Vector Textures and Special Effects". SIGGRAPH 2007. 2007-08-05. http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf. Retrieved on 2008-05-20.
- ^ "Mod wizard complete". Valve Developer Community. 2008-02-24. http://developer.valvesoftware.com/wiki/Mod_wizard_complete. Retrieved on 2008-07-20.
- ^ "VMPI". Valve Developer Community. http://developer.valvesoftware.com/wiki/VMPI. Retrieved on December 5 2008.
- ^ 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.
- ^ "Half-Life 2: Episode 2 Hands-on Preview (Xbox 360)". http://previews.teamxbox.com/xbox-360/1660/HalfLife-2-The-Orange-Box/p3/.
- ^ Face-to-Face with TF2's Heavy
- ^ "New technology for EP2". HL2World.com. http://www.hl2world.com/bbs/new-technology-for-ep2-vt44745.html.
- ^ Blast Code 1.6 Released
- ^ "Interview: Gabe Newell". PC Zone. 2006-09-11. http://www.computerandvideogames.com/article.php?id=145846. Retrieved on 2006-09-20.
- ^ "Dual Core Performance". 2008-10-11. http://forums.steampowered.com/forums/showpost.php?p=8413873&postcount=92. Retrieved on 2008-12-23.
- ^ Lombardi, Doug (2008-05-13). "PCGH interview about Left 4 Dead, part 2". http://www.pcgameshardware.de/aid,643448/Interview/PCGH_interview_about_Left_4_Dead_part_2/?page=2. Retrieved on 2008-12-23.
- ^ a b Gabe Newell. (2008). Making Left 4 Dead E3 2008 Presentation. [Video presentation]. Valve Corporation. http://www.viddyou.com/viddstream?videoid=41607.
- ^ Valve Corporation (July 2008). "How Valve Connects Art Direction to Gameplay". http://www.valvesoftware.com/publications/2008/GameFest08_ArtInSource.pdf. Retrieved on 2008-08-02.
- ^ "Left 4 Dead". Valve Corporation. http://www.l4d.com/info.html.
- ^ "Left 4 Dead Hands-on Preview". Left 4 Dead 411. http://www.left4dead411.com/left-4-dead-preview-pg2.
- ^ "Left 4 Dead 2 Interview". eurogamer.net. 2009-07-03. http://www.eurogamer.net/articles/left-4-dead-2-interview?page=2. Retrieved on 2009-07-05. "The AI director - I don't want to say it fell out of Half-Life 2, but it was definitely a jumping-off point of stuff we did in Half-Life 2, particularly Episode 2. There are a couple of key battles where the number of Combine, and where they come at you from, uses something like that. It's much cruder than what we accomplished with Left 4 Dead, but there was some of that there"
- ^ Newell, Gabe (2008-11-21). "Gabe Newell Writes for Edge". edge-online.com. http://www.edge-online.com/blogs/gabe-newell-writes-edge. 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. "
- ^ "VGChartz Interviews Valve's Doug Lombardi on Left 4 Dead". vgchartz. http://news.vgchartz.com/news.php?id=2167.
- ^ "Interview with Gabe Newell". DriverHeaven.net. http://www.driverheaven.net/dhinterviews/gabenewell/.
- ^ "Valve Week". 1UP.com. http://valve.1up.com/. Retrieved on 2006-07-14.
- ^ Erik Johnson (2005-09-01). "Talk:Erik Johnson". Valve Developer Community. http://developer.valvesoftware.com/w/index.php?title=User_talk:Erik_Johnson&oldid=10088#GoldSource. Retrieved on 2007-08-15.
- ^ Hodgson, David (2004). Half-Life 2: Raising the Bar. Prima Games. ISBN 0-7615-4364-3.
- ^ "Welcome, Q3 source, Graphics". John Carmack's Blog. 2004-12-31. http://www.armadilloaerospace.com/n.x/johnc/recent%20updates/archive?news_id=290.
- ^ "Stuck Valve". Dirigible Development Diary. 2006-11-15. http://www.dirigible-games.com/diary/?p=15. Retrieved on 2007-10-20.
- ^ "Vtex CLI use". Valve Developer Community. 2007-08-28. http://developer.valvesoftware.com/wiki/Vtex_CLI_use. Retrieved on 2008-07-21.
- ^ "Half Life 0 Oblivion 1 - Half Life Update". Digital Urban. 2006-09-28. http://digitalurban.blogspot.com/2006/09/half-life-0-oblivion-1-half-life-update.html. Retrieved on 2007-10-20.
- ^ "Category:Third Party Tools". Valve Developer Community. n.d.. http://developer.valvesoftware.com/wiki/Category:Third_Party_Tools. Retrieved on 2007-10-20.
- ^ "Phoneme Tool". Valve Developer Community. 2006-06-29. http://developer.valvesoftware.com/w/index.php?title=Phoneme_Tool&oldid=13445. Retrieved on 2007-10-20.
- ^ "The Crossing Revealed". HalfLife2.net. http://www.halflife2.net/forums/showthread.php?t=117880. Retrieved on 2006-12-23.
- ^ "Postal 3 Officially Announced". Firing Squad. http://www.firingsquad.com/news/newsarticle.asp?searchid=12790. Retrieved on 2006-10-18.
- ^ "First-Person Advertiser - Talking In-Game Ads With Threewave Software". Gamasutra. http://www.gamasutra.com/features/20060914/kumar_03.shtml. Retrieved on 2006-09-16.
|
||||||||||||||
|
||||||||||||||||

