Source port

Revision as of 10:59, 27 May 2025 by imported>GreenC bot (Move 1 url. Wayback Medic 2.5 per WP:URLREQ#citeftp)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short description {{#invoke:Hatnote|hatnote}} Template:Multiple issues A source port 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.

DescriptionEdit

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). In some cases, the source code used to create a source port must be obtained through reverse engineering, in situations where the original source was never formally released by the game's developers. The term was coined after the release of the source code to Doom. Due to copyright issues concerning the sound library used by the original DOS version, id Software released only the source code to the Linux version of the game.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> 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.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> A source port typically only includes the engine portion of the game and requires that the data files of the game in question already be present on users' systems.

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<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>). 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.

AlternativesEdit

If the source code of a software is not available, alternative approaches to achieve portability are Emulation, Engine remakes, and Static recompilation.

Notable source portsEdit

Original name Port
Aliens versus Predator icculus.org/avp
Arx Fatalis Arx Libertatis
Blake Stone: Aliens Of Gold BStone, Blake4SDL
Blake Stone: Planet Strike BStone, Blake4SDL
Blood BloodGDX, NBlood, Raze
Carmageddon Dethrace
Catacomb CatacombSDL
Catacomb 3D Reflection Keen, CatacombGL
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, DXX-Retro
Diablo/Hellfire Expansion DevilutionX, Diablo 1 Mod (Belzebub)
Doom/Doom II See List of Doom source ports for a detailed list.
Doom 64 Doom64EX, Doom64Ex+
Doom 3 dhewm3, RBDOOM-3-BFG
Duke Nukem II citation CitationClass=web

}}</ref>

Duke Nukem 3D EDuke32, DukeGDX, JFDuke3D, Rancidmeat Port, xDuke Port, nDuke Port, hDuke Port, Rednukem, Raze
FreeSpace 2 FreeSpace 2 Source Code Project
Gloom ZGloom
Heretic Chocolate Heretic, ZDoom, Doomsday, GLHeretic for Linux, Heretic for Linux, HHeretic
Hexen Chocolate Hexen, ZDoom, Doomsday, GLHexen, HHexen, WinHexen
Hexen II jsHexen 2, UQE Hexen 2, Hammer of Thyrion
Homeworld Homeworld SDL
Ken's Labyrinth LAB3D/SDL
Jagged Alliance 2 Wildfire Stracciatella/SDL
The Legend of Zelda: Ocarina of Time Ship of Harkinian
Marathon 2 Aleph One, Aleph One/SDL
Myth II Project Magma
PowerSlave PowerSlaveGDX, PCExhumed, PowerSlaveEX, ExhumedEX-Plus
Quake QuakeSpasm, QuakeDS, DarkPlaces, FitzQuake, GLQuake, Project: Twilight, Telejano, Tenebrae, WinQuake, QuakeWorld, ezQuake, fodQuake, FreeQuake, vkQuake
Quake II vkQuake2, KMQuake II, q^2, Q2PRO, Yamagi Quake II
Quake III ioquake3, Quake3e, OpenMoHAA, Q3Base, Quake III: Arena for FreeBSD, Spearmint
Quake 4 Quake4Doom, gbQuake4
Redneck Rampage RedneckGDX, Rednukem, Raze
Return to Castle Wolfenstein iortcw
Rise of the Triad WinROTT, GLROTT, icculus, rottexpr, NakedTriad
Savage: The Battle for Newerth Savage: Rebirth
Serious Sam: The First Encounter /
Serious Sam: The Second Encounter
citation CitationClass=web

}}</ref> Ray-Traced,<ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref> Serious Sam Classic, Serious Sam Evolution

Shadow Warrior JFShadowWarrior, SWP, VoidSW, Raze, WangGDX
SimCity Micropolis
Spelunky Spelunky ClassicHD<ref>SpelunkyClassicHD on github.com</ref>
Star Control II The Ur-Quan Masters
Star Trek: Voyager – Elite Force (holomatch) citation CitationClass=web

}}</ref> cMod,<ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref> Lilium Voyager<ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

Star Wars: Dark Forces citation CitationClass=web

}}</ref>

Star Wars Jedi Knight: Dark Forces II /
Star Wars Jedi Knight: Mysteries of the Sith
citation CitationClass=web

}}</ref>

Star Wars Jedi Knight II: Jedi Outcast /
Star Wars Jedi Knight: Jedi Academy
OpenJK
Strife Chocolate Strife, Vavoom
Super 3D Noah's Ark ECWolf
Super Mario 64 Super Mario 64 PC Port
System Shock citation CitationClass=web

}}</ref><ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

System Shock 2 NewDark
Thief: The Dark Project NewDark
Thief II: The Metal Age NewDark
Tomb Raider citation CitationClass=web

}}</ref> OpenCroft, OpenLara,<ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref> CroftEngine, TR1X<ref>{{#invoke:citation/CS1|citation

CitationClass=web

}}</ref>

Tyrian OpenTyrian
Warzone 2100 Warzone Resurrection
William Shatner's TekWar BuildGDX, JFTekWar
Witchaven BuildGDX, JFWitchaven
Wolfenstein 3D ECWolf, NewWolf, Wolf4SDL, Wolfenstein 3-D Redux, WolfGL, WolfGL-3D
Wolfenstein: Enemy Territory ioWolfET, ET: Legacy

See alsoEdit

ReferencesEdit

Template:Reflist

External linksEdit

Template:Video game engines