Source (game engine)


Source is a 3D game engine developed by Valve. It debuted as the successor to GoldSrc in 2004 with the releases of Half-Life: Source, Counter-Strike: Source, and Half-Life 2. Valve used Source in many of their games in the following years, including Team Fortress 2, Counter-Strike: Global Offensive, Dota 2, and the Portal and Left 4 Dead franchises. Other notable third-party games using Source include most games in the Titanfall franchise, Vampire: The Masquerade – Bloodlines, Dear Esther, The Stanley Parable and Garry’s Mod. Valve coninues to support several Source games into the present day, and would incrementally release new branches of the engine until it was succeeded by Source 2 in 2015.

History

Source distantly originates from the GoldSrc engine, itself a heavily modified version of John Carmack's Quake engine with some code from the Quake II 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. Older versions of Source use Bink Video for video playback, however more recent releases of the Source engine use WebM videos for menu backgrounds, Full Motion Videos, and splash screens.

Modularity and notable updates

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.

''Left 4 Dead'' branch

The Left 4 Dead branch is an overhaul of many aspects 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 would 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 Simple DirectMedia Layer. 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.

Tools and resources

Hammer Editor

The Hammer Editor, the engine's official level editor, uses rendering and compiling tools included in the SDK to create maps using the binary space partitioning method. Level geometry is created with 3D polygons called brushes; each face can be assigned a texture which also defines the properties of the surface such as the sounds used for footsteps. Faces can also be converted into a displacement allowing for more natural shapes such as hills to be created.
Scenery objects or complex geometry can be imported as separate 3D models from the game directory. These models can also be used as physics objects or interactive props. The editor also features an in-depth logic I/O system that can be used to create complex interactive elements. Signals to trigger different responses or change the state of an entity can be sent between entities such as buttons, NPCs, intangible trigger brushes, and map props.

Destinations Workshop Tools

In June 2016, Valve released the Destinations Workshop Tools, a set of free virtual reality creation tools running using the Source 2 SDK.

Valve Developer Community

In June 2005, Valve opened the Valve Developer Community wiki. It replaced Valve's static Source SDK documentation with a full MediaWiki-powered community site.

Academic papers

Valve staff have occasionally produced professional and/or academic papers for various events and publications, including SIGGRAPH, Game Developer magazine and Game Developers Conference, explaining various aspects of Source engine's development.