Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Source port
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{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 [[Computer port (software)|port]] from which a [[Packet (information technology)|packet]] is sent, e.g. a [[Transmission Control Protocol|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 [[Fan labor|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 (1993 video game)|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>{{cite web |first=John |last=Carmack |author-link=John D. Carmack |url=ftp://ftp.idsoftware.com/idstuff/source/doomsrc.txt |title=doomsrc.txt |access-date=2008-10-23 |work=Doom source code release notes |publisher=[[id Software]] |archive-url=https://web.archive.org/web/20151202081913/ftp://ftp.idsoftware.com/idstuff/source/doomsrc.txt |archive-date=2015-12-02 |url-status=dead |date=1997-12-23 }}</ref><ref>{{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}}</ref> Since the majority of Doom players were DOS users the first step for a fan project was to ''[[Porting|port]]'' the Linux ''source'' code to DOS.<ref>{{cite web |url=https://doomwiki.org/wiki/Source_port |title=Source Ports |access-date=2008-10-23 |publisher=Doom Wiki}}</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 patch]]es that both don't change the original gameplay as such projects are by definition [[mod (computer gaming)|mods]]. However many source ports add support for gameplay mods, which is usually optional (e.g. [[DarkPlaces engine|DarkPlaces]] consists of a source port engine and a gameplay mod that are even distributed separately<ref>{{cite web |url=http://icculus.org/twilight/darkplaces/download.html |title=LordHavoc's DarkPlaces Quake Modification: Downloads |access-date=2008-10-23 }}</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 ratio (image)|aspect ratio]]s, 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 video game|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 room]]s 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 (service)|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 [[Video game console emulator|Emulation]], [[Game engine recreation|Engine remake]]s, and [[Static recompilation]]. ==Notable source ports== {| class="wikitable collapsible sortable" ! Original name !! Port |- |''[[Aliens versus Predator (1999 video game)|Aliens versus Predator]]''|| icculus.org/avp |- |''[[Arx Fatalis]]'' || Arx Libertatis |- |[[Blake Stone: Aliens of Gold|''Blake Stone: Aliens Of Gold'']] |BStone, Blake4SDL |- |''[[Blake Stone: Planet Strike]]'' |BStone, Blake4SDL |- |''[[Blood (video game)|Blood]]'' || [[Build (game engine)#Other game ports|BloodGDX, NBlood, Raze]] |- |''[[Carmageddon]]'' |[https://github.com/dethrace-labs/dethrace Dethrace] |- |''[[Catacomb (video game)|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 (video game)|Descent]]/[[Descent II]]''|| DXX-Rebirth, D2X-XL, DXX-Retro |- |''[[Diablo (video game)|Diablo]]/[[Diablo: Hellfire|Hellfire Expansion]]'' |[https://github.com/diasurgical/devilutionx DevilutionX], [https://mod.diablo.noktis.pl/ Diablo 1 Mod (Belzebub)] |- |''[[Doom (1993 video game)|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]]'' || Rigel Engine<ref>{{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}}</ref> |- |''[[Duke Nukem 3D]]''|| [[Build (game engine)#EDuke32|EDuke32]], [[Build (game engine)#Other game ports|DukeGDX]], [[Build (game engine)#JonoF port|JFDuke3D]], Rancidmeat Port, xDuke Port, nDuke Port, hDuke Port, [[Build (game engine)#Other game ports|Rednukem, Raze]] |- |''[[FreeSpace 2]]''||[[FreeSpace 2 Source Code Project]] |- |''[[Gloom (video game)|Gloom]]''||ZGloom |- |''[[Heretic (computer game)|Heretic]]''|| Chocolate Heretic, ZDoom, [https://dengine.net Doomsday], GLHeretic for Linux, Heretic for Linux, HHeretic |- |''[[Hexen: Beyond Heretic|Hexen]]''|| Chocolate Hexen, ZDoom, [https://dengine.net 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 (computer game)|Aleph One]], Aleph One/SDL |- |''[[Myth II]]''|| Project Magma |- |''[[PowerSlave]]''|| [[Build (game engine)#Other game ports|PowerSlaveGDX, PCExhumed]], PowerSlaveEX, ExhumedEX-Plus |- |''[[Quake (video game)|Quake]]''|| QuakeSpasm, 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 III]]''||[[ioquake3]], Quake3e, OpenMoHAA, Q3Base, Quake III: Arena for FreeBSD, Spearmint |- ||''[[Quake 4]]''||Quake4Doom, gbQuake4 |- |''[[Redneck Rampage]]''|| [[Build (game engine)#Other game ports|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]]'' /<br> ''[[Serious Sam: The Second Encounter]]'' || icculus,<ref>{{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]]}}</ref> Ray-Traced,<ref>{{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]]}}</ref> Serious Sam Classic, Serious Sam Evolution |- |''[[Shadow Warrior (1997 video game)|Shadow Warrior]]''|| JFShadowWarrior, SWP, VoidSW, Raze, WangGDX |- |''[[SimCity (1989 video game)|SimCity]]''|| Micropolis |- |''[[Spelunky]]''|| Spelunky ClassicHD<ref>[https://github.com/yancharkin/SpelunkyClassicHD/ SpelunkyClassicHD] on [[github.com]]</ref> |- |''[[Star Control II]]''|| The Ur-Quan Masters |- |''[[Star Trek: Voyager β Elite Force]]'' (holomatch)|| iostvoyHM,<ref>{{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}}</ref> cMod,<ref>{{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}}</ref> Lilium Voyager<ref>{{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}}</ref> |- |''[[Star Wars: Dark Forces]]'' || The Force Engine<ref>{{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}}</ref> |- |[[Star Wars Jedi Knight: Dark Forces II]] / <br>[[Star Wars Jedi Knight: Mysteries of the Sith]]|| OpenJKDF2<ref>{{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}}</ref> |- |''[[Star Wars Jedi Knight II: Jedi Outcast]] /<br>[[Star Wars Jedi Knight: Jedi Academy]]''|| OpenJK |- |''[[Strife (1996 video game)|Strife]]''|| Chocolate Strife, Vavoom |- |''[[Super 3D Noah's Ark]]'' || ECWolf |- |''[[Super Mario 64]]''|| Super Mario 64 PC Port |- |''[[System Shock]]''||Shockolate<ref>{{cite web| url = https://www.gamedeveloper.com/programming/nightdive-shares-source-code-for-i-system-shock-i-on-mac | 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]] }}</ref><ref>{{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]]}}</ref> |- |''[[System Shock 2]]'' |NewDark |- |''[[Thief: The Dark Project]]'' |NewDark |- |''[[Thief II: The Metal Age]]'' |NewDark |- |''[[Tomb Raider (video game)|Tomb Raider]]'' || OpenTomb,<ref>{{cite web|url=https://www.polygon.com/2017/4/24/15406478/tomb-raider-browser-project-github|website=[[Polygon (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}}</ref> OpenCroft, OpenLara,<ref>{{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]]}}</ref> CroftEngine, TR1X<ref>{{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}}</ref> |- |''[[Tyrian (video game)|Tyrian]]''|| OpenTyrian |- |''[[Warzone 2100]]''|| Warzone Resurrection |- |''[[William Shatner's TekWar]]''|| [[Build (game engine)#Other game ports|BuildGDX, JFTekWar]] |- |''[[Witchaven]]''|| [[Build (game engine)#Other game ports|BuildGDX, JFWitchaven]] |- |''[[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== {{Reflist}} ==External links== {{Video game engines}} [[Category:Video game engines| ]] [[Category:Software maintenance]] [[Category:Software release]] [[Category:Unofficial adaptations]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Hatnote
(
edit
)
Template:Multiple issues
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Video game engines
(
edit
)