Coined in the late 90's to designate a class of software projects meant to transfer (or port) a game's source code to a different platform, the phrase source port has in the years since its genesis expanded in colloquial use to encompass any endeavor whose primary purpose is the modification of a game's engine. While its use is somewhat of a misnomer in many cases seeing as a large number of source ports aim to enhance or otherwise alter their game engines rather than simply port them to a new platform, the term has become shorthand for any of a series of fan-created engine modifications which may or may not bear resemblance to the engine in its original form. For reasons of legality, source ports typically include only the engine itself, requiring the user to supply any of the necessary data files required to actually run the game in question.
While the original objective of the source port was simply to faithfully recreate the performance and gameplay of the original game, increasingly they began to include new features beyond the scope of their original executables. These features often incorporated but were not limited to bug fixes, graphical enhancements (such as high resolution and hardware acceleration support), and game balance adjustments. The types of modifications that can be engendered by a source port are in fact so numerous that individual ports often serve a highly specialized purpose. They may focus on providing a multiplayer framework more akin to that of modern games (Skulltag, ZDaemon), add highly advanced graphics options not available at the time of the game's releas (DarkPlaces, Doomsday), open new doors for game editors (Boom, ZDoom), or they may seek to allow current systems to emulate the exact performance of the original executable files as closely as possible (Chocolate Doom).
Origin of the Source Port
The concept of the source port originated around the time of Doom's source code release in 1997. Due to concerns over the copyrighted sound library used in the original MS-DOS version of Doom, id Software released the source code for the less popular Linux version of the game in its stead. News of this release generated a great deal of enthusiasm within the Doom fan community, and work began to port the source from Linux back to DOS even before the code had been made public. The first fruit of these efforts was the appropriately named DOSDoom, created by Chi Hoang, whose v.02 release is commonly credited as the first instance in which the term "source port" is used to describe software created with a game's modified source code. Since then, the term has gone on to act as a broad catch-all phrase for any and all source code modification projects, and while the Doom engine is still perhaps the most widely edited engine judging by the sheer number of ports available for it, source ports exist for a large number of other engines as well. Unsurprisingly given id's tradition of releasing source code for its games, this includes many ports which were (and still are) developed for later id technology.
Rise of the Triad
- WinRott - Created by Birger N. Andreasen, WinRott is a Windows compatibility port for Rise of the Triad with many bug fixes and high resolution support.
- WinRottGL - Also called GLRott, WinRottGL is a version of Andreasen's WinRott created with assistance from Jared Stafford that supports OpenGL rendering.
- NewWolf - NewWolf is an OpenGL source port of Wolfenstein 3D with a few other modern touches thrown in like a drop-down console (a la Quake) and optional fog effects.
- WinWolf3D - Made by Adam Biser, WinWolf3D is a Windows Wolfenstein port with its own scripting language that allows users to alter a large number of game variables.
- Wolf4SDL - Wolf4SDL is a Windows port of the Wolfenstein executable that supports new features like floor and ceiling textures and directional 3D sprites.
- WolfGL - The objective of the WolfGL project is to create a faithful OpenGL counterpart to the Wolfenstein 3D engine while leaving the game otherwise unadulterated.
Doom / Ultimate Doom / Doom II / Final Doom
- Boom - An early DOS-based engine created by TeamTNT of Final Doom fame, Boom is often called an editor's engine due to the large number of configurable options added to the game.
- Chocolate Doom - A play on the term vanilla Doom, which refers to the unmodified Doom executables, Chocolate Doom seeks to recreate the performance of the original games as closely as possible.
- DOSDoom - The original Doom source port, DOSDoom was created primarily to port the initial Linux source code release back to DOS, though it added a few new features to the engine as well.
- GZDoom - A ZDoom derivative which adds OpenGL rendering and several new upgrades to the engine, such as dynamic lighting and three-dimensional floors.
- Skulltag - Skulltag focuses primarily on streamlining the multiplayer experience of Doom, simplifying the process of finding matches and adding many multiplayer modes not present in the original game.
- ZDaemon - Similaly to Skulltag, ZDaemon attempts to modernize Doom multiplayer, offering features such as stat tracking and persistent levels for those who create a ZDaemon account.
- ZDoom - Considered an editor's engine much like Boom, ZDoom adds many new configurable options both on the player and mapmaker's side.
- GLHeretic - An OpenGL Windows port of the Heretic code complete with high resolution support.
- HHeretic - Hacked Heretic, or HHeretic for short, is a port designed to work on a wide variety of operating systems.
- GLHexen - The Hexen equivalent of GLHeretic, with support for OpenGL and higher resolutions.
- HHexen - Hacked Hexen, abreviated HHexen, is a compatibility source port with some bug fixes for good measure.
Duke Nukem 3D
- EDuke32 - Easily the most advanced Duke Nukem source port, EDuke32 boasts support for multiple platforms, high resolutions, and both software and OpenGL rendering, among many other things.
- JFDuke3D - A port created by Jonathon Fowler, JFDuke3D natively supports Linux and Windows, OpenGL, and true-color textures.
- xDuke - xDuke is a fairly straightforward Windows port of the Duke 3D engine, with very little in the way of additional frills.
- JFShadowWarrior - Like JFDuke3D, Jonathon Fowler's JFShadowWarrior adds Linux, Windows, OpenGL, and true-color texture support.
- SWP - Based on the Jonathon Fowler port, SWP (short for Shadow Warrior Port) comes with a detailed front-end with a great deal of launch options.
- Anvil of Thyrion - Anvil of Thyrion (or AoT) is a Linux compatibility port of the Hexen II engine which was succeeded by the multi-platform Hammer of Thyrion.
- Hammer of Thyrion - Hammer of Thyrion is a cross-platform Hexen II engine with a few additional features as well, such as in-game resolution changing.
- UQE Hexen II - UQE (Ultimate Quake Engine) Hexen II is an OpenGL source port with some more advanced graphics features like HD resolution support and light bloom.
- DarkPlaces - The DarkPlaces mod focuses on improved visual fidelity over vanilla Quake, with improvements made to dynamic lighting and various effects, to name just a few of the changes.
- ezQuake - A modern day equivalent to QuakeWorld, ezQuake is designed to get users into multiplayer matches with a minimum of fuss.
- FitzQuake - The main objective of FitzQuake is to fix bugs which, in the author's words, "made glquake inferior to the software renderer."
- Tenebrae - With an ostensible focus on improving graphics, Tenebrae brings features such as per pixel lighting and stencil shading to the Quake engine.
- TomazQuake - An OpenGL source port for Quake with many new effects like colored lighting and persistent bullet holes.
- Berserker - The Berserker engine is a Russian Quake II modification that supports more advanced graphics features like real-time lighting and bump mapping.
- Quake2maX - A cosmetically oriented mod which adds many new embellishments to the engine without breaking compatibility with vanilla Quake II.
- Quake II Evolved - Quake II Evolved (Q2E) bolsters Quake II's standard visuals with a number of new effects and support for high resolution textures.
Quake III: Arena
- ioQuake3 - Aiming to be the definative Quake III user experience, ioQuake3 incorporates many bug fixes into the original engine and adds support for new platforms.
- Q3Base - Q3Base is a Quake III port that natively supports FreeBSD and also uses SDL in order to establish network connections.