Puneet Varma (Editor)

Source (game engine)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Valve Corporation

Written in
  
C++

Development status
  
Active

Type
  
Game engine

Stable release
  
Build 5595 / 2014; 3 years ago (2014)

Operating system
  
Microsoft Windows, OS X, Linux, Android

Source is a 3D video game engine developed by Valve Corporation as the successor of GoldSrc. It debuted with Counter-Strike: Source in June 2004, followed shortly by Half-Life 2, and has been in active development since. Source does not have a concise version numbering scheme; instead, it is designed in constant incremental updates. The successor, Source 2, was officially announced in March 2015, with the first game to use it being Dota 2, which was ported over from Source later that year.

Contents

History

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

Source was developed part-by-part from this fork onwards, slowly replacing GoldSrc in Valve's internal projects 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, and Miles Sound System and Bink Video respectively for music and video playback.

Modularity and notable upgrades

Source was created to evolve incrementally with new technology, as opposed to the backward 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. 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.

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

Source 2006

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. The former, along with developer commentary tracks, were showcased in Half-Life 2: Lost Coast. 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 backward compatibility with older mods. Image-based rendering technology had been in development for Half-Life 2, 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.

Source 2007

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. 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. 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. However, support on the PC was experimental and unstable until the release of Left 4 Dead. Multiprocessor support was later backported to Team Fortress 2 and Day of Defeat: Source. 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. Program code can be ported from PC to Xbox 360 simply by recompiling it. 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.

Left 4 Dead branch

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".

OS X, Linux, and Android support

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. 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. 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. In May 2014, Nvidia released ports of Portal and Half-Life 2 to their Tegra 4-based Android handheld game console Nvidia Shield.

Source 2

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

On March 3, 2015, coinciding with the Game Developers Conference, Valve announced the Source 2 engine, and that it will be free for developers. Valve also announced that the engine would receive a rendering path for the Vulkan API. In addition, Valve confirmed that it would be using a new in-house physics engine named Rubikon. On June 17, 2015, Valve released a beta update for Dota 2, titled "Reborn", becoming the first game using the Source 2 engine. The original Source client for the game was phased out in September 2015, with the Source 2 update becoming official.

Notable features

  • Direct3D rendering on Microsoft Windows, Xbox and Xbox 360; OpenGL rendering on Linux (including SteamOS) and OS X; OpenGL ES rendering on Android
  • Steam integration on Windows, Linux, OS X, and PlayStation 3
  • High dynamic range (HDR) rendering
  • Lag-compensated client-server networking model
  • Network-enabled and bandwidth-efficient physics engine (derived from Havok in Source 1, in-house in Source 2).
  • Scalable multiprocessor support
  • Pre-computed radiosity lighting and dynamic shadow maps. Deferred lighting is supported on consoles.
  • Facial animation system. Lip-sync using the system is auto-generated and localizable.
  • Blended skeletal animation system, including inverse kinematics
  • Water flow effects
  • 3D bump mapping
  • Dynamic 3D wounds
  • Alpha to coverage edge smoothing for foliage etc.
  • Map-logic scripting with Squirrel programming language.
  • Significant source code access for mod teams
  • Distributed VMPI map compiler
  • Keyframed vertex animation (introduced in Dota 2)
  • Reception

    The Source SDK tools are criticised for being outdated and difficult to use. For example, the interface and workflow of Valve's Hammer Editor has not changed significantly since its initial release for GoldSrc and the original Half-Life in 1998. 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. 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. Third-party tools provide GUIs, but are not officially supported by Valve.

    Valve games

  • Half-Life 2 (2004)
  • Half-Life 2: Deathmatch (2004)
  • Half-Life: Source (2004)
  • Counter-Strike: Source (2004)
  • Day of Defeat: Source (2005)
  • Half-Life 2: Lost Coast (2005)
  • Half-Life Deathmatch: Source (2006)
  • Half-Life 2: Episode One (2006)
  • Half-Life 2: Episode Two (2007)
  • Team Fortress 2 (2007)
  • Portal (2007)
  • Left 4 Dead (2008)
  • Left 4 Dead 2 (2009)
  • Alien Swarm (2010)
  • Portal 2 (2011)
  • Counter-Strike: Global Offensive (2012)
  • Dota 2 (2013) (ported over to Source 2 in 2015)
  • Games by other developers

  • Vampire: The Masquerade – Bloodlines (2004)
  • Garry's Mod (2004)
  • SiN Episodes (2006)
  • Dark Messiah of Might and Magic (2006)
  • The Ship (2006)
  • KumaWar (2006)
  • Dystopia (2007)
  • Insurgency: Modern Infantry Combat (2007)
  • Insurgency (2014)
  • Zeno Clash (2009)
  • NeoTokyo (2009)
  • Bloody Good Time (2010)
  • Vindictus (2010)
  • E.Y.E.: Divine Cybermancy (2011)
  • No More Room in Hell (2011)
  • Nuclear Dawn (2011)
  • Postal III (2011)
  • Dino D-Day (2011)
  • Dear Esther (2012)
  • Black Mesa (2012)
  • Tactical Intervention (2013)
  • The Stanley Parable (2013)
  • Blade Symphony (2014)
  • Consortium (2014)
  • Contagion (2014)
  • Titanfall (2014)
  • Portal Stories: Mel (2015)
  • The Beginner's Guide (2015)
  • Infra (2016)
  • Titanfall 2 (2016)
  • References

    Source (game engine) Wikipedia