Source port
A source port, a portmanteau of source (code) and port(ing), is a software project based on the source code of a game engine that allows the game to be played on operating systems or computing platforms with which the game was not originally compatible.
Description
Source ports are often created by fans after the original developer hands over the maintenance support for a game by releasing its source code to the public (see List of commercial video games with later released source code). 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.[1] 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.[2] A legitimate source port includes only the engine portion of the game and require that the data files of the game in question already be present on users' systems. Source ports are in no way meant to encourage copyright infringement of software.
Source ports share the similarity with unofficial patches that both don't 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 a gameplay mod that are even distributed separately[3]). While the primary goal of any source port is compatibility with newer hardware, many projects support other enhancements. Common examples of additions include support for higher video resolutions and different aspect ratios, hardware accelerated renderers (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 to replace MIDI with digital audio (MP3, Ogg Vorbis, etc.), and enhanced multiplayer support using the Internet.
Several source ports have been created for various games specifically to address online multiplayer support. 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 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.
Alternatives
If the source code of a software is not available, alternative approaches to achieve portability are Emulation, Engine remakes, and Static recompilation.
Notable source ports
Original name | Port |
---|---|
Aliens versus Predator | |
Arx Fatalis | Arx Libertatis |
Call to Power II | Apolyton Civilization Site: Call to Power II: Source Code Project |
Commander Keen | Commander Genius |
Descent/Descent II | DXX-Rebirth, D2X-XL |
Doom/Doom II | See Doom source port for a detailed list. |
Duke Nukem 3D | EDuke32, JFDuke3D, Rancidmeat Port, xDuke Port, nDuke Port, hDuke Port |
FreeSpace 2 | FreeSpace 2 Source Code Project |
Heretic | Chocolate Heretic, ZDoom, Doomsday, GLHeretic for Linux, Heretic for Linux, HHeretic |
Hexen | Chocolate Hexen, ZDoom, Doomsday, GLHexen, HHexen, WinHexen |
Hexen II | Anvil of Thyrion, Hammer of Thyrion |
Homeworld | Homeworld SDL |
Ken's Labyrinth | LAB3D/SDL |
Jagged Alliance 2 Wildfire | Stracciatella/SDL |
Marathon 2 | Aleph One, Aleph One/SDL |
Myth II | Project Magma |
Quake | QuakeSpasm, QuakeDS, DarkPlaces, FitzQuake, GLQuake, Project: Twilight, Telejano, Tenebrae, WinQuake, QuakeWorld |
Quake II | KMQuake II, q^2, Quetoo, Yamagi Quake II |
Quake III | ioquake3, OpenMoHAA, Q3Base, Quake III: Arena for FreeBSD |
Rise of the Triad | WinROTT and GLROTT |
Savage: The Battle for Newerth | Savage: Rebirth |
Shadow Warrior | JFShadowWarrior, SWP |
SimCity | Micropolis |
Star Control II | The Ur-Quan Masters |
Star Trek Voyager: Elite Force (holomatch) | iostvoyHM |
Star Wars Jedi Knight II: Jedi Outcast/Star Wars Jedi Knight: Jedi Academy | OpenJK |
Strife | Chocolate Strife |
Tyrian | OpenTyrian |
Warzone 2100 | Warzone Resurrection |
Wolfenstein 3D | ECWolf, NewWolf, Wolf4SDL, Wolfenstein 3-D Redux, WolfGL, WolfGL-3D |
Wolfenstein: Enemy Territory | ioWolfET, ET: Legacy |
See also
- Enhanced remake
- Game engine recreation
- Static recompilation
- Unofficial patch
- List of commercial video games with later released source code
- Fork (software development)
References
- ↑ Carmack, John (1997-12-23). "doomsrc.txt". Doom source code release notes. id Software. Retrieved 2008-10-23.
- ↑ "Source Ports". Doom Wiki. Retrieved 2008-10-23.
- ↑ "LordHavoc's DarkPlaces Quake Modification: Downloads". Retrieved 2008-10-23.