source port

{{short description|Altering a game engine's source code to allow it to run on incompatible systems}}

{{hatnote|This article is about software ported by the associated fan community. For software ported by the original developer, see porting. The term "source port" can also refer to the port from which a packet is sent, e.g. a TCP port.}}

{{Multiple issues|

{{More citations needed|date=August 2021}}

{{Original research|date=August 2021}}

{{Unreliable sources|date=August 2021}}

}}

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.

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). 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.{{cite web |first=John |last=Carmack |author-link=John D. Carmack |url=ftp://ftp.idsoftware.com/idstuff/source/doomsrc.txt |archive-url=https://web.archive.org/web/20151202081913/ftp://ftp.idsoftware.com/idstuff/source/doomsrc.txt |url-status=dead |archive-date=2015-12-02 |title=doomsrc.txt |access-date=2008-10-23 |work=Doom source code release notes |publisher=id Software |date=1997-12-23 }}{{cite web |last=Wilson |first=Hamish | date=2022-03-14 | title=Building a Retro Linux Gaming Computer - Part 16: We Are All Doomed | url=https://www.gamingonlinux.com/2022/03/building-a-retro-linux-gaming-computer-part-16-we-are-all-doomed/ | website=GamingOnLinux | access-date=2023-02-02}} 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.{{cite web |url=https://doomwiki.org/wiki/Source_port |title=Source Ports |access-date=2008-10-23 |publisher=Doom Wiki}} 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{{cite web |url=http://icculus.org/twilight/darkplaces/download.html |title=LordHavoc's DarkPlaces Quake Modification: Downloads |access-date=2008-10-23 }}). 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

class="wikitable collapsible sortable"

! Original name !! Port

Aliens versus Predatoricculus.org/avp
Arx FatalisArx Libertatis
Blake Stone: Aliens Of Gold

|BStone, Blake4SDL

Blake Stone: Planet Strike

|BStone, Blake4SDL

BloodBloodGDX, NBlood, Raze
Carmageddon

|[https://github.com/dethrace-labs/dethrace Dethrace]

CatacombCatacombSDL
Catacomb 3DReflection Keen, CatacombGL
Call to Power IIApolyton Civilization Site: Call to Power II: Source Code Project
Commander KeenCommander Genius
Descent/Descent IIDXX-Rebirth, D2X-XL, DXX-Retro
Diablo/Hellfire Expansion

|[https://github.com/diasurgical/devilutionx DevilutionX], [https://mod.diablo.noktis.pl/ Diablo 1 Mod (Belzebub)]

Doom/Doom IISee List of Doom source ports for a detailed list.
Doom 64Doom64EX, Doom64Ex+
Doom 3dhewm3, RBDOOM-3-BFG
Duke Nukem IIRigel Engine{{cite web|url=https://www.retrorefurbs.com/lgr-plays-duke-nukem-ii-in-widescreen/|title=LGR plays Duke Nukem II in widescreen|website=Retro Refurbs|date=2021-08-04|access-date=2023-12-18}}
Duke Nukem 3DEDuke32, DukeGDX, JFDuke3D, Rancidmeat Port, xDuke Port, nDuke Port, hDuke Port, Rednukem, Raze
FreeSpace 2FreeSpace 2 Source Code Project
GloomZGloom
HereticChocolate Heretic, ZDoom, [https://dengine.net Doomsday], GLHeretic for Linux, Heretic for Linux, HHeretic
HexenChocolate Hexen, ZDoom, [https://dengine.net Doomsday], GLHexen, HHexen, WinHexen
Hexen IIjsHexen 2, UQE Hexen 2, Hammer of Thyrion
HomeworldHomeworld SDL
Ken's LabyrinthLAB3D/SDL
Jagged Alliance 2 WildfireStracciatella/SDL
The Legend of Zelda: Ocarina of TimeShip of Harkinian
Marathon 2Aleph One, Aleph One/SDL
Myth IIProject Magma
PowerSlavePowerSlaveGDX, PCExhumed, PowerSlaveEX, ExhumedEX-Plus
QuakeQuakeSpasm, QuakeDS, DarkPlaces, FitzQuake, GLQuake, Project: Twilight, Telejano, Tenebrae, WinQuake, QuakeWorld, ezQuake, fodQuake, FreeQuake, vkQuake
Quake II[https://github.com/kondrak/vkQuake2 vkQuake2], [http://www.markshan.com/knightmare/ KMQuake II], q^2, Q2PRO, Yamagi Quake II
Quake IIIioquake3, Quake3e, OpenMoHAA, Q3Base, Quake III: Arena for FreeBSD, Spearmint
|Quake 4Quake4Doom, gbQuake4
Redneck RampageRedneckGDX, Rednukem, Raze
Return to Castle Wolfensteiniortcw
Rise of the TriadWinROTT, GLROTT, icculus, rottexpr, NakedTriad
Savage: The Battle for NewerthSavage: Rebirth
Serious Sam: The First Encounter /
Serious Sam: The Second Encounter
icculus,{{cite web|url=https://www.phoronix.com/news/Serious-Engine-1-On-Linux|title=Open-Source Serious Engine 1 Now Running On Linux|first=Michael|last=Larabel|date=2016-04-04|access-date=2023-12-18|website=Phoronix}} Ray-Traced,{{cite web|url=https://www.eurogamer.net/digitalfoundry-2021-serious-sam-gets-a-fully-path-traced-rt-upgrade-and-its-beautiful|title=Serious Sam gets a fully path-traced RT upgrade - and it's beautiful|first=Alex|last=Battaglia|date=2021-09-09|access-date=2023-12-18|website=Eurogamer}} Serious Sam Classic, Serious Sam Evolution
Shadow WarriorJFShadowWarrior, SWP, VoidSW, Raze, WangGDX
SimCityMicropolis
SpelunkySpelunky ClassicHD[https://github.com/yancharkin/SpelunkyClassicHD/ SpelunkyClassicHD] on github.com
Star Control IIThe Ur-Quan Masters
Star Trek: Voyager – Elite Force (holomatch)iostvoyHM,{{cite web|url=https://clover.moe/2019/11/02/ioef-preservation/|title=ioEF preservation|first=Zack|last=Middleton|website=ZTM's World of Wonder|date=2019-11-02|access-date=2023-04-04}} cMod,{{cite web|url=https://www.wepc.com/news/star-trek-voyager-elite-force-holomatch-gets-free-20th-anniversary-re-release/|title=Star Trek: Voyager Elite Force Holomatch Gets Free 20th Anniversary Re-Release|first=Lewie|last=Procter|website=wePC|date=2020-08-13|access-date=2023-03-25}} Lilium Voyager{{cite web|url=https://clover.moe/2019/11/02/lilium-voyager-1-40-released/|title=Lilium Voyager 1.40 released|first=Zack|last=Middleton|website=ZTM's World of Wonder|date=2019-11-02|access-date=2023-04-04}}
Star Wars: Dark ForcesThe Force Engine{{cite web|url=https://www.ign.com/articles/dark-forces-classic-star-wars-shooter-4k-overhaul|title=Dark Forces: Classic Star Wars Shooter Gets 4K Overhaul Thanks to Fan Remaster|website=IGN|first=Kat|last=Bailey|date=2022-12-19|access-date=2023-12-18}}
Star Wars Jedi Knight: Dark Forces II /
Star Wars Jedi Knight: Mysteries of the Sith
OpenJKDF2{{cite web|url=https://www.pcgamer.com/games/fps/nothing-is-too-niche-for-modders-to-remaster-not-even-a-90s-star-wars-fps-expansion-pack-where-you-play-as-luke-skywalkers-weird-non-canon-wife-rescuing-my-favorite-expanded-universe-dork/|title=Nothing is too niche for modders to remaster, not even a '90s Star Wars FPS expansion pack where you play as Luke Skywalker's weird non-canon wife rescuing my favorite Expanded Universe dork|website=PC Gamer|first=Ted|last=Litchfield|date=2024-05-19|access-date=2024-05-19}}
Star Wars Jedi Knight II: Jedi Outcast /
Star Wars Jedi Knight: Jedi Academy
OpenJK
StrifeChocolate Strife, Vavoom
Super 3D Noah's ArkECWolf
Super Mario 64Super Mario 64 PC Port
System ShockShockolate{{cite web| url = https://www.gamasutra.com/view/news/316257/Nightdive_shares_source_code_for_System_Shock_on_Mac.php | title = Nightdive shares source code for System Shock on Mac | first= Alex | last = Wawro | date = April 6, 2018 | access-date = April 6, 2018 | work = Gamasutra }}{{cite web|url=https://www.kotaku.com.au/2018/06/shockolate-is-a-cross-platform-system-shock-built-on-the-original-open-sourced-code/|archive-url=https://web.archive.org/web/20180616071501/https://www.kotaku.com.au/2018/06/shockolate-is-a-cross-platform-system-shock-built-on-the-original-open-sourced-code/|url-status=dead|archive-date=June 16, 2018|title='Shockolate' Is A Cross-Platform System Shock Built On The Original, Open-Sourced Code|author=Logan Booker |date=2018-06-16 |publisher=Kotaku}}
System Shock 2

|NewDark

Thief: The Dark Project

|NewDark

Thief II: The Metal Age

|NewDark

Tomb RaiderOpenTomb,{{cite web|url=https://www.polygon.com/2017/4/24/15406478/tomb-raider-browser-project-github|website=Polygon|title=Modders bring original Tomb Raider to browsers with new open-source project|first=Julia|last=Alexander|date=2017-04-24|access-date=2023-12-18}} OpenCroft, OpenLara,{{cite web|url=https://www.phoronix.com/news/OpenLara-Tomb-Raider|title=OpenLara: Open-Source Engine Remake For Tomb Raider, Including WebGL Version|first=Michael|last=Larabel|date=2017-04-24|access-date=2023-12-18|website=Phoronix}} CroftEngine, TR1X{{cite web|url=https://www.gamingonlinux.com/2023/11/open-source-re-implementation-of-tomb-raider-1-tr1x-gets-linux-builds/|title=Open source re-implementation of Tomb Raider 1 'TR1X' gets Linux builds|first=Liam|last=Dawe|date=2023-11-21|access-date=2023-12-18|website=GamingOnLinux}}
TyrianOpenTyrian
Warzone 2100Warzone Resurrection
William Shatner's TekWarBuildGDX, JFTekWar
WitchavenBuildGDX, JFWitchaven
Wolfenstein 3DECWolf, NewWolf, Wolf4SDL, Wolfenstein 3-D Redux, WolfGL, WolfGL-3D
Wolfenstein: Enemy TerritoryioWolfET, ET: Legacy

See also

References

{{Reflist}}