Source (game engine)

From Wikipedia, the free encyclopedia
  (Redirected from Source Engine)
Jump to: navigation, search
Source Engine
Source engine logo
Non-photorealistic rendering in Team Fortress 2
Photorealistic character rendering in Left 4 Dead 2
From top to bottom: Source engine logo,
Non-photorealistic rendering in Team Fortress 2, and photorealistic rendering in Left 4 Dead 2
Developer(s) Valve Corporation
Stable release Build 5595 / 2014
Development status Active
Written in C++
Operating system Windows
Platform Windows
OS X
Linux
PlayStation 3
Xbox
Xbox 360
Android
Type Game engine
License Proprietary
Website source.valvesoftware.com

Source is a 3D video game engine and the successor for GoldSrc both developed by Valve Corporation. It debuted in June 2004 with Counter-Strike: Source, followed shortly by Half-Life 2, and has been in active development ever since. Source does not have a meaningful version numbering scheme; instead, it is designed in constant incremental updates.[1]

Source was created to power first-person shooters, but has also been used professionally to create role-playing, side-scroller, MOBA, puzzle, MMORPG, top-down shooter and real-time strategy games.

Notable Features[edit]

The Blade Symphony trailer shows the Source engine in action.

These are some notable technologies (a full list of features can be found at Valve's Developer Feature List.):

Tools and Resources[edit]

Source SDK[edit]

Main article: Source SDK

Source SDK is a software development kit for the Source engine, and contains many of the tools used by Valve to develop assets for their games. It comes with several command-line programs designed for special functions within the asset pipeline, as well as a few GUI-based programs designed for handling more complex functions.

Among these programs is Valve Hammer Editor, the engine's official level editor, which uses compilation tools included in the SDK.

Source SDK was launched as a free standalone toolset through Steam, and required a Source game to be purchased on the same account. Since the release of Left 4 Dead in 2009, Valve began releasing "Authoring Tools" for individual games, which constitute the same programs adapted for each game's engine build. After Team Fortress 2 became free-to-play, Source SDK was effectively made open to all Steam users.

Source Dedicated Server[edit]

The Source Dedicated Server or SRCDS is a standalone launcher for the Source engine that runs multiplayer game sessions without requiring a client.[18] It can be launched through Windows or Linux, and can allow for custom levels and assets.

Most third-party servers additionally run Metamod:Source and SourceMod, which together provide a framework on top of SRCDS for custom modification of gameplay on existing titles.[19][20]

Source Filmmaker[edit]

Main article: Source Filmmaker

The Source Filmmaker (SFM) is a video capture and editing application that works from within the Source engine.[21] Developed by Valve, the tool was originally used to create movies for Day of Defeat: Source, but is more associated with Team Fortress 2. Today, it is open for public use and downloadable via the Steam client.

Valve Developer Community[edit]

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 other articles.

Papers[edit]

Valve staff occasionally produce professional and/or academic papers for various events and publications, including SIGGRAPH, Game Developer Magazine and Game Developers Conference, explaining various aspects of Source's development.[22]

History[edit]

Screenshot from Zeno Clash, a third-party Source game.

Source distantly originates from the GoldSrc engine, itself a heavily modified version of John D. Carmack's Quake engine. Carmack commented on his blog in 2004 that "there are still bits of early Quake code in Half-Life 2".[23] Valve employee Erik Johnson explained the engine's nomenclature on the Valve Developer Community:[24]

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[25] and, in part, explaining the reasons behind its unusually modular nature. Valve's development of Source since has been a mixture of licensed middleware and in-house-developed code. Among others, Source uses Ipion technology bought out by Havok to drive its internal physics engine,[26][27] and Miles Sound System and Bink Video respectively for music and video playback.[28]

Modularity and notable upgrades[edit]

A screenshot of Half-Life 2: Episode One. The HDR and Phong shading effects are evident.

Source was created to evolve incrementally with new technology, as opposed to the backwards compatibility-breaking "version jumps" of its competitors. Different systems within Source are represented by separate modules which can be updated independently. With Steam, Valve can distribute these updates automatically among its many users.

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.[29] Both cases required markedly less work to update its version than competing engines. This was demonstrated in 2010, when Valve updated all of their core Source games to the latest engine build.[30]

Since Source's release in 2004, the following major architectural changes have been made:

Source 2006[edit]

(2006, Half-Life 2: Episode One)
The Source 2006 branch was the term used for Valve's games using technology that culminated with the release of Half-Life 2: Episode One.
HDR rendering and color correction were first implemented in 2005 using Day of Defeat: Source, which required the engine's shaders to be rewritten.[31] The latter, along with developer commentary tracks, were showcased in Half-Life 2: Lost Coast. Finally, Episode One introduced Phong shading and other smaller features.
Since the transition to Steam Pipe, this branch was made deprecated and is now used for backwards compatibility with older mods.[32]

Source 2007[edit]

(2007, The Orange Box)
The Source 2007 branch represented a full upgrade of the Source engine for the release of The Orange Box.
An artist-driven, threaded particle system replaced previously hard-coded effects for all of the games within.[5] An in-process tools framework was created to support it, which also supported the initial builds of Source Filmmaker. In addition, the facial animation system was made hardware-accelerated on modern video cards for "feature film and broadcast television" quality.[6]
The release of The Orange Box on multiple platforms allowed for a large code refactoring, which let the Source engine take advantage of multiple CPU cores.[33] However, support on the PC was experimental and unstable[34] until the release of Left 4 Dead.[35] Multiprocessor support was later backported to Team Fortress 2 and Day of Defeat: Source.[36]
Valve created the Xbox 360 release of The Orange Box in-house, and support for the console is fully integrated into the main engine codeline. It includes asset converters, cross-platform play and Xbox Live integration.[37] Program code can be ported from PC to Xbox 360 simply by recompiling it.[38]
The PlayStation 3 release was outsourced to Electronic Arts, and was plagued with issues throughout the process. Gabe Newell cited these issues when criticizing the console during the release of The Orange Box.[39]

Left 4 Dead branch[edit]

(2008-2009, Left 4 Dead)
The Left 4 Dead branch was a complete overhaul of the Source engine through the development of the Left 4 Dead series.
Multiprocessor support was further expanded, allowing for features like split screen multiplayer, additional post-processing effects, event scripting with Squirrel, and the highly-dynamic AI Director. The menu interface was re-implemented with a new layout designed to be more console-oriented.
This branch later fueled the releases of Alien Swarm and Portal 2, the former released with source code outlining many of the changes made since the branch began. Portal 2, in addition, served as the result of Valve taking the problem of porting to PlayStation 3 in-house, and in combination with Steamworks integration creating what they called "the best console version of the game".[40]

OS X and Linux support[edit]

(2010-2012, multiple games)
In April 2010, Valve released all of their major Source games on OS X, coinciding with the release of the Steam client on the same platform. Valve announced that all their future games will be released simultaneously for Windows and Mac.[41][42] The first of Valve's games to support Linux was Team Fortress 2, the port released in October 2012 along with the closed beta of the Linux version of Steam. Both the OS X and Linux ports of the engine take advantage of OpenGL and are powered by SDL.[43]
During the process of porting, Valve rearranged most of the games released up to The Orange Box into separate, but parallel 'singleplayer' and 'multiplayer' branches. The game code to these branches was made public to mod developers in 2013, and they serve as the current stable release of Source designated for mods. Support for Valve's internal Steam Pipe distribution system as well as the Oculus Rift are included.[44]

Android support[edit]

(2014, Portal and Half-Life 2)
In May 2014, Nvidia released ports of Portal and Half-Life 2 to their Tegra 4-based Android handheld game console Nvidia Shield.[45]

Future technology[edit]

Source 2 engine[edit]

As far back as May 2011, one of Valve's largest projects has been the development of new content authoring tools for Source.[1] These would replace the current outdated tools, allowing content to be created faster and more efficiently. Gabe Newell has described the creation of content with the engine's current toolset as "very painful" and "sluggish".[46]

In August 2012, the Valve fan site ValveTime speculated that Valve might be in development of a "Source 2" engine, based on coding from the Source Filmmaker that directed technology from the upcoming version.[47] Later that year, in November, Gabe Newell confirmed that a Source 2 engine is under development, and that Valve is "waiting for a game to roll it out with".[48][49]

On January 27, 2014, a Neogaf user known as CBOAT posted a leaked PowerPoint presentation showing multiple screenshots of the Source 2 engine. The screenshots show an updated version of the Plantation map from Left 4 Dead 2 with enhanced lighting and shadows, improved foliage, and higher quality models.[50]

On August 7, 2014, Valve announced[51] the alpha release of Dota 2 Workshop Tools with the entirety of the game's code and assets ported over to a new engine, leading many to speculate[52] on a possible "soft release" of the Source 2 engine.

On March 3, 2015, Valve announced the Source 2 engine, which will be free for developers and compatible with the new Vulkan Graphics API.[53][54]

Image-based rendering[edit]

Image-based rendering technology had been in development for Half-Life 2[55] 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 Source to implement support for much larger scenes that are impossible with strictly polygonal objects.[56]

File streaming[edit]

One of the technologies developed for Half-Life 2‍ '​s Xbox release was file streaming, wherein a map's resources could be loaded as the player moved around in it rather than in one operation before playability. With the system in place, loading times were reduced to as little as fifteen seconds. The system expanded on the caching system already implemented. There is no time frame for its release, as implementing such a system on the potentially infinite variations of PC hardware setups in use supposedly poses serious performance problems[citation needed]. However, this has not interfered with successful implementations of large-scale streaming in other modern engines on all platforms.

Criticism[edit]

Toolset[edit]

The Source SDK tools are criticised for being outdated and difficult to use.[57][58][better source needed] 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 lengthy console commands.[59] 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.[60] Third-party tools provide GUIs,[61] 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.

Games using Source[edit]

Valve Games[edit]

Games by other developers[edit]

See also[edit]

References[edit]

  1. ^ a b Crossley, Rob (May 12, 2011). "Valve on Source and studio culture". Develop Magazine. Retrieved August 14, 2011. We have as many people working on our tools as we have working on a single project. So, about twenty to thirty core people. 
  2. ^ "Source Multiplayer Networking". Valve Developer Community. 2005-06-30. Retrieved 2008-07-20. 
  3. ^ "VPhysics". Valve Developer Community. Retrieved 2011-08-15. 
  4. ^ "Multi-Core in the Source Engine Core". Bit-tech. 2006-11-02. Retrieved 2006-11-02. 
  5. ^ a b "Source - Rendering System". Source Engine Brochure. Valve Corporation. Retrieved August 15, 2011. 
  6. ^ a b "Face-to-Face with TF2's Heavy". Steam news. 2007-05-14. Retrieved 2010-04-25. 
  7. ^ "$sequence". Valve Developer Community. 2007-09-08. Retrieved 2008-07-20. 
  8. ^ "$ikchain". Valve Developer Community. 2007-09-08. Retrieved 2008-07-20. 
  9. ^ Vlachos, Alex (July 28, 2010). "Water flow in Portal 2" (PDF). Valve Corporation. 
  10. ^ "Valve's Developers community page for Bump Mapping". Valve Corporation. May 14, 2013. 
  11. ^ Vlachos, Alex (March 9, 2010). "Rendering Wounds in Left 4 Dead 2" (PDF). Valve Corporation. 
  12. ^ "$distancealpha". Retrieved 2009-07-05. 
  13. ^ "Improved Alpha-Tested Magnification for Vector Textures and Special Effects" (PDF). SIGGRAPH 2007. 2007-08-05. Retrieved 2008-05-20. 
  14. ^ "L4D2 VScripts". Valve Developer Community. Retrieved February 12, 2010. 
  15. ^ "Mod wizard complete". Valve Developer Community. 2008-02-24. Retrieved 2008-07-20. 
  16. ^ "VMPI". Valve Developer Community. Retrieved December 5, 2008. 
  17. ^ "Vertex animation". Retrieved May 4, 2014. 
  18. ^ Source Dedicated Server Valve Dev Wiki
  19. ^ MetaMod:S
  20. ^ SourceMod
  21. ^ "Source Filmmaker". Source Filmmaker. Retrieved 31 March 2013. 
  22. ^ "Valve Publications". Retrieved 25 September 2013. 
  23. ^ "Welcome, Q3 source, Graphics". John Carmack's Blog. 2004-12-31. 
  24. ^ Johnson, Erik (2005-09-01). "Talk:Erik Johnson". Valve Developer Community. Retrieved 2007-08-15. 
  25. ^ Hodgson, David (2004). Half-Life 2: Raising the Bar. Prima Games. ISBN 0-7615-4364-3. 
  26. ^ "HL2 Source code leaked, all goes to hell? - Page 7". Adventure Forums. Retrieved 2015-04-21. 
  27. ^ "Havok buy Ipion in consolidation of major physics players". Havok. 12 June 2000. Archived from the original on 1 September 2000. Retrieved 21 April 2015. 
  28. ^ O'Donnell, Ryan (Jul 19, 2004). "Counter-Strike: Source - Full-Screen E3 2004 Presentation". GameSpy. Retrieved Apr 20, 2015. 
  29. ^ "New Update Breaking New and Old Mods?". PlanetPhillip. Retrieved 2014-10-17. 
  30. ^ "Source 2009". Valve Developer Community. Retrieved 17 September 2010. 
  31. ^ Valve Corporation. "Half-Life 2: Lost Coast" PC. Chris Green: The Source engine supports a wide variety of shaders. The refraction shader on the window here requires us to copy the scene to a texture, refract it, and then apply it the window surface. To fully support HDR, every shader in the engine needed to be updated, so this refraction shader was improved to the support the full range of contrast. 
  32. ^ "Episode One (engine branch)". Valve Developer Community. Retrieved 2015-04-21. 
  33. ^ "Interview: Gabe Newell". PC Zone. 2006-09-11. Retrieved 2006-09-20. 
  34. ^ "Dual Core Performance". 2008-10-11. Retrieved 2008-12-23. 
  35. ^ Lombardi, Doug (2008-05-13). "PCGH interview about Left 4 Dead, part 2". Interviewer: Frank Stöwer. Retrieved 2008-12-23. 
  36. ^ Nick, Breckon (2008-03-18). "Team Fortress 2 Update Adds Multicore Rendering". Retrieved 2009-08-19. 
  37. ^ "Source - Console Support". Valve. Retrieved August 8, 2009. 
  38. ^ "Joystiq interviews Doug Lombardi about Xbox 360 Source". Joystiq. October 17, 2006. Retrieved August 8, 2009. 
  39. ^ Yoon, Andrew (11 October 2007). "Gabe Newell calls PS3 'waste of everybody's time'". Engadget. Retrieved 20 April 2015. 
  40. ^ "Portal 2: Pretty Much Every PS3 Question Answered (And That Cake Thing, Too)". Sony Computer Entertainment America. April 14, 2011. 
  41. ^ "Valve to Deliver Steam & Source on the Mac". Valve. 2010-03-08. Retrieved 2010-03-08. 
  42. ^ "Left 4 Dead 2, Team Fortress 2, Portal and Steam Coming to Mac in April". Kotaku. 2010-03-08. Retrieved 2010-03-08. 
  43. ^ "Simple DirectMedia Layer - Homepage". Retrieved 2015-04-21. 
  44. ^ "News - Source SDK 2013 Release". Steam. Retrieved 2015-04-21. 
  45. ^ "The Greatest PC Games of All-Time – ‘Half-Life 2′ and ‘Portal’ – Now Available on SHIELD". Nvidia. 2014-05-12. Retrieved 2014-05-12. 
  46. ^ "Steamcast #47". Steamcast. February 9, 2011. Retrieved August 14, 2011. Oh yeah, we're spending a tremendous amount of time on tools right now. So, our current tools are... very painful, so we probably are spending more time on tools development now than anything else and when we’re ready to ship those I think everybody's life will get a lot better. Just way too hard to develop content right now, both for ourselves and for third parties so we’re going to make enormously easier and simplify that process a lot. 
  47. ^ -smash- (6 August 2012). "EXCLUSIVE: Next-Gen Source 2 Engine Is In Development". 
  48. ^ "Gabe Newell confirms Source Engine 2 has been in development for a while, Valve are "waiting for a game to roll it out with"". PCGamesN. 11 December 2012. Retrieved 15 February 2013. 
  49. ^ "Possible proof of Source 2 and Left 4 Dead 3.". "Game Trailers". August 6, 2013. 
  50. ^ Omnomnick (27 January 2014). "Source 2 Left 4 Dead 2 Prototype Screenshots Leaked". Retrieved 27 January 2014. 
  51. ^ "valve dota 2 workshop tools announcement". www.eurogamer.net. Retrieved 7 August 2014. 
  52. ^ "Source 2 possible soft launch". www.eurogamer.net. Retrieved 7 August 2014. 
  53. ^ Philip Kollar (3 March 2015). "Valve announces Source 2 engine, free for developers". Retrieved 3 March 2015. 
  54. ^ Mahardy, Mike (3 March 2015). "GDC 2015: Valve Announces Source 2 Engine". IGN. Retrieved 3 March 2015. 
  55. ^ "Interview with Gabe Newell". DriverHeaven.net. Retrieved 2009-11-21. 
  56. ^ "Valve Week". 1UP.com. Retrieved 2006-07-14. 
  57. ^ Roberts, Neale (November 15, 2006). "Stuck Valve". Dirigible Development Diary. Archived from the original on 2007-12-27. Retrieved December 20, 2007. 
  58. ^ Jedrzejewski, Neil (July 23, 2009). "Re: whats happening with this engine". hlcoders (official Valve mailing list). Retrieved July 29, 2009. 
  59. ^ "Vtex CLI use". Valve Developer Community. August 28, 2007. Retrieved July 21, 2008. 
  60. ^ "Half Life 0 Oblivion 1 - Half Life Update". Digital Urban. September 28, 2006. Retrieved December 20, 2007. 
  61. ^ "Category:Third Party Tools". Valve Developer Community. Retrieved October 20, 2007. 
  62. ^ "Vampire: The Masquerade - Bloodlines Designer Diary #3". GameSpot. 2003-12-16. Retrieved 2015-01-04. 
  63. ^ "Hieronymus: ACE Team Explain Zeno Clash II". Rock, Paper, Shotgun. 2012-06-07. Retrieved 2015-01-04. 

External links[edit]