A source port is a source code modification to a computer game's engine that allows it to be played on operating systems or computing platforms for which it was not originally created or compatible with. Source ports are generally created and released under a free software license like the GNU General Public License and are created not by a game's original developer, but by the associated fan community. As such, the creation of source ports does not usually begin until several years after a game's initial release when, and if, the source code is released to the public. The term was coined after the release of the source code to Doom. Due to copyright issues concerning the sound library used by original DOS version, id Software released only the source code to the Linux version of the game. Since the majority of Doom players were DOS users the first step for a fan project was to port the Linux source code to DOS.
Source ports are created for older games, with enduring popularity, which were originally written for platforms and operating systems which are now obsolete. Most commonly, source ports are created to make games originally written for personal computers running DOS compatible with their modern equivalents running Linux, Mac OS X, or Windows. Secondarily, source ports may be written to make a game compatible with types of computer hardware for which it was not originally intended, such as game consoles or mobile computing devices. Legitimate source ports include only the engine portion of the game and require that the original versions of the games in question already be present on users' computers. Source ports are not meant to encourage copyright infringement of software or the illegal distribution of older games as "abandonware".
Source ports do not change the original gameplay as such projects are by definition mods. However many source ports add support for gameplay mods, which is usually optional (e.g. DarkPlaces consists of a source port engine and an gameplay mod that are even distributed separately). While the primary goal of any source port is compatibility with newer hardware, many projects support other enhancements. Common examples of additions include higher video resolutions, support for different aspect ratios, hardware accelerated renderers utilizing OpenGL and/or Direct3D, enhanced input support (including the ability to map controls onto additional input devices), 3D character models (in case of 2.5D games), higher resolution textures, support for MP3 and Ogg Vorbis audio, or enhanced multiplayer support using the Internet.
Returning to the issue of online multiplayer support, several source ports have been created for various games specifically to address this issue. Most older games were not created to take advantage of the Internet and the low latency, high bandwidth Internet connections available to computer gamers today. Furthermore, old games may use outdated network protocols to create multiplayer connections, such as IPX protocol, instead of Internet Protocol. Another problem was games that required a specific IP address for connecting with another player. This requirement made it difficult to quickly find a group of strangers to play with — the way that online games are most commonly played today. To address this shortcoming, specific source ports such as Skulltag and QuakeWorld added "lobbies", which are basically integrated chat rooms in which players can meet and post the location of games they are hosting or may wish to join. Similar facilities may be found in newer games and online game services such as Valve's Steam, Blizzard's battle.net, and Gamespy Arcade.