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 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, puzzle, MMORPG, top-down shooter and real-time strategy games.

Notable technology[edit]

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

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.[18] Developed by Valve, the tool was used to create movies for Team Fortress 2, the Left 4 Dead series, Portal 2, and more. Today, it is open for public use and downloadable via the Steam client.

Modularity and notable upgrades[edit]

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

Source was created to evolve incrementally as technology moves onwards, as opposed to the backwards compatibility-breaking "version jumps" of its competitors. With Steam, Valve can distribute automatic updates with new versions of the engine among its many users.

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.[citation needed] 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.[19]

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

High dynamic range rendering (2005, Day of Defeat: Source)
Simulation of a camera aperture and the ability to fake the effects of brightness values beyond computer monitors' actual range. Required all of the game's shaders to be rewritten.[20]
"Soft" particles (2007, The Orange Box)
An artist-driven, threaded particle system replaced previously hard-coded effects.[5]
Hardware facial animation (2007, The Orange Box)
Hardware accelerated on modern video cards for "feature film and broadcast television" quality.[6]
Multiprocessor support (2007, The Orange Box)
A large code refactoring allowed the Source engine to take advantage of multiple CPU cores on the PC, Xbox 360 and PlayStation 3.[21] On the PC, support was experimental and unstable[22] until the release of Left 4 Dead.[23] Multiprocessor support was later backported to Team Fortress 2 and Day of Defeat: Source.[24]
Xbox 360 support (2007, The Orange Box)
Valve created the Xbox 360 release of The Orange Box in-house, and support for the console, unlike support for the PlayStation 3, is fully integrated into the main engine codeline. It includes asset converters, cross-platform play and Xbox Live integration.[25] Program code can be ported from PC to Xbox 360 simply by recompiling it.[26]
Nuclear Dawn is a Source engine game from InterWave Studios that includes Mac support.
PlayStation 3 support (2007, The Orange Box)
Source first appeared on the PlayStation 3 in 2007, but with an engine port that was created externally and which was plagued with issues. Valve took the problem in-house for Portal 2, and in combination with Steamworks integration created what they called "the best console version of the game".[27]
Mac OS X support (2010, multiple games)
In April 2010 Valve released all of their major Source games on Mac OS X. All future Valve games will be released simultaneously for Windows and Mac.[28][29] Games will only use Direct3D on Windows and Xbox 360 while using OpenGL on the other platforms.
Linux support (2012, multiple games)
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.
Android support (2014, Portal, 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.[30]

Source Dedicated Server[edit]

The Source Dedicated Server or SRCDS is a tool that runs the server component of a Source game without the client component. In other words, it simulates the game without drawing it. SRCDS is chiefly used by server providers who want to serve up as many games from the same computer as they can.[31]

Connectivity[edit]

The ports SRCDS officially uses are:

  • 26901 UDP (master server)
  • 27015 TCP/UDP (game transmission, pings and RCON)
  • 27020 UDP (SourceTV transmission)

SRCDS has also been spotted opening connections on 27005 and 51840 UDP, but these may be outbound only.

Uses[edit]

A Source engine based multiplayer game can be hosted in three different ways:

  1. Inside the game client (a listen server).
  2. Using the Steam-based dedicated server (only on Windows).
  3. Using a standalone dedicated server.

Most high-performance servers use the third option. The Windows build of the standalone dedicated server can optionally be run with a graphical front-end, but graphical is the default mode when running in Steam. Most often commercial game server hosts choose the Linux build as it is regarded as a more flexible server operating system with higher performance.[citation needed]

Technical[edit]

Most online Source servers are dedicated servers running SRCDS, as opposed to listen servers. SRCDS-servers can be remotely controlled using RCON. SRCDS servers can host additional custom content for games, which can be downloaded to players, when they join the server. This made it possible to make custom maps (such as fy or fight yard) available, that were not shipped with the original Source games.

Using Metamod:Source, the server can load and unload dynamic library modules (.so on Linux, .dll on Windows).[32] The most popular MetaMod:S plugin is SourceMod. SourceMod is a big Administration Tool for the Source Engine. Most SRCDS servers use SourceMod or MetaMod:S in some way.[33]

Installation[edit]

See SteamCMD for most games. See HLDSUpdateTool for games that DO NOT use SteamPipe.

Future technology[edit]

New authoring tools[edit]

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

An in-process tools framework was created in 2007, and is currently used by the engine's particle editor and by Source Filmmaker.

In 2013, an update was released for Source SDK that allowed users to build OS X and Linux versions of their mods. Additionally, support was added for Valve's new Steampipe content distribution system as well as the Oculus Rift.[35]

Source 2 engine[edit]

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.[36] 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".[37][38]

On 27 January 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.[39]

On 7 August 2014, Valve announced[40] 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[41] on a possible "soft release" of the Source 2 engine.

Image-based rendering[edit]

Image-based rendering technology had been in development for Half-Life 2[42] 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.[43]

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. However, this has not interfered with successful implementations of large-scale streaming in other modern engines on all platforms.

Origins[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".[44] Valve employee Erik Johnson explained the engine's nomenclature on the Valve Developer Community:[45]

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[46] and, in part, explaining 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.

Criticism[edit]

Toolset[edit]

The Source SDK tools are criticised for being outdated and difficult to use.[47][48][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.[49] 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.[50] Third-party tools provide GUIs,[51] 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.

Although this is criticized a lot, it is actually appreciated by Source modders because they didn't have to relearn a new set of mapping tools when HL2 was released, as a lot of Half-Life 1 mapping skills still apply to Source engine mapping.[citation needed] It has been noted that an updated, easier to use mapping tool will most likely be released in the future, along with a new engine (Source 2).

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.[52]

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". 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". Valve Corporation. 
  12. ^ "$distancealpha". Retrieved 2009-07-05. 
  13. ^ "Improved Alpha-Tested Magnification for Vector Textures and Special Effects". 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 Filmmaker". Source Filmmaker. Retrieved 31 March 2013. 
  19. ^ "Source 2009". Valve Developer Community. Retrieved 17 September 2010. 
  20. ^ 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." 
  21. ^ "Interview: Gabe Newell". PC Zone. 2006-09-11. Retrieved 2006-09-20. 
  22. ^ "Dual Core Performance". 2008-10-11. Retrieved 2008-12-23. 
  23. ^ Lombardi, Doug (2008-05-13). "PCGH interview about Left 4 Dead, part 2". Interviewer: Frank Stöwer. Retrieved 2008-12-23. 
  24. ^ Nick, Breckon (2008-03-18). "Team Fortress 2 Update Adds Multicore Rendering". Retrieved 2009-08-19. 
  25. ^ "Source - Console Support". Valve. Retrieved August 8, 2009. 
  26. ^ "Joystiq interviews Doug Lombardi about Xbox 360 Source". Joystiq. October 17, 2006. Retrieved August 8, 2009. 
  27. ^ "Portal 2: Pretty Much Every PS3 Question Answered (And That Cake Thing, Too)". Sony Computer Entertainment America. April 14, 2011. 
  28. ^ "Valve to Deliver Steam & Source on the Mac". Valve. 2010-03-08. Retrieved 2010-03-08. 
  29. ^ "Left 4 Dead 2, Team Fortress 2, Portal and Steam Coming to Mac in April". Kotaku. 2010-03-08. Retrieved 2010-03-08. 
  30. ^ "The Greatest PC Games of All-Time – ‘Half-Life 2′ and ‘Portal’ – Now Available on SHIELD". Nvidia. 2014-05-12. Retrieved 2014-05-12. 
  31. ^ Source Dedicated Server Valve Dev Wiki
  32. ^ MetaMod:S
  33. ^ SourceMod
  34. ^ "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." 
  35. ^ "Source SDK 2013 Release". Steam News. Valve Software. Retrieved 4 July 2013. 
  36. ^ -smash- (6 August 2012). "EXCLUSIVE: Next-Gen Source 2 Engine Is In Development". 
  37. ^ "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. 
  38. ^ "Possible proof of Source 2 and Left 4 Dead 3.". "Game Trailers". August 6, 2013. 
  39. ^ Omnomnick (27 January 2014). "Source 2 Left 4 Dead 2 Prototype Screenshots Leaked". Retrieved 27 January 2014. 
  40. ^ "valve dota 2 workshop tools announcement". www.eurogamer.net. Retrieved 7 August 2014. 
  41. ^ "Source 2 possible soft launch". www.eurogamer.net. Retrieved 7 August 2014. 
  42. ^ "Interview with Gabe Newell". DriverHeaven.net. Retrieved 2009-11-21. 
  43. ^ "Valve Week". 1UP.com. Retrieved 2006-07-14. 
  44. ^ "Welcome, Q3 source, Graphics". John Carmack's Blog. 2004-12-31. 
  45. ^ Johnson, Erik (2005-09-01). "Talk:Erik Johnson". Valve Developer Community. Retrieved 2007-08-15. 
  46. ^ Hodgson, David (2004). Half-Life 2: Raising the Bar. Prima Games. ISBN 0-7615-4364-3. 
  47. ^ Roberts, Neale (November 15, 2006). "Stuck Valve". Dirigible Development Diary. Archived from the original on 2007-12-27. Retrieved December 20, 2007. 
  48. ^ Jedrzejewski, Neil (July 23, 2009). "Re: whats happening with this engine". hlcoders (official Valve mailing list). Retrieved July 29, 2009. 
  49. ^ "Vtex CLI use". Valve Developer Community. August 28, 2007. Retrieved July 21, 2008. 
  50. ^ "Half Life 0 Oblivion 1 - Half Life Update". Digital Urban. September 28, 2006. Retrieved December 20, 2007. 
  51. ^ "Category:Third Party Tools". Valve Developer Community. Retrieved October 20, 2007. 
  52. ^ "Valve Publications". Retrieved 25 September 2013. 

External links[edit]