Un puerto fuente es un proyecto de software basado en el código fuente de un motor de juego que permite jugar el juego en sistemas operativos o plataformas informáticas con los que el juego no era originalmente compatible.
Los source ports suelen ser creados por fans después de que el desarrollador original cede el soporte de mantenimiento de un juego al publicar su código fuente (véase Lista de videojuegos comerciales con código fuente publicado posteriormente ). En algunos casos, el código fuente utilizado para crear un source port debe obtenerse mediante ingeniería inversa , en situaciones en las que los desarrolladores del juego nunca publicaron formalmente la fuente original. El término fue acuñado después del lanzamiento del código fuente de Doom . Debido a problemas de derechos de autor relacionados con la biblioteca de sonidos utilizada por la versión original de DOS, id Software publicó solo el código fuente de la versión Linux del juego. [1] [2] Dado que la mayoría de los jugadores de Doom eran usuarios de DOS, el primer paso para un proyecto de fans fue portar el código fuente de Linux a DOS. [3] Un source port normalmente solo incluye la parte del motor del juego y requiere que los archivos de datos del juego en cuestión ya estén presentes en los sistemas de los usuarios.
Los source ports comparten la similitud con los parches no oficiales en el sentido de que ninguno de ellos cambia la jugabilidad original, ya que dichos proyectos son, por definición, mods . Sin embargo, muchos source ports añaden soporte para mods de jugabilidad, lo que suele ser opcional (por ejemplo, DarkPlaces consta de un motor de source port y un mod de jugabilidad que incluso se distribuyen por separado [4] ). Si bien el objetivo principal de cualquier source port es la compatibilidad con hardware más nuevo, muchos proyectos admiten otras mejoras. Los ejemplos comunes de adiciones incluyen soporte para resoluciones de video más altas y diferentes relaciones de aspecto , renderizadores acelerados por hardware ( OpenGL y/o Direct3D ), soporte de entrada mejorado (incluida la capacidad de mapear controles en dispositivos de entrada adicionales), modelos de personajes 3D (en caso de juegos 2.5D ), texturas de mayor resolución, soporte para reemplazar MIDI con audio digital ( MP3 , Ogg Vorbis , etc.) y soporte multijugador mejorado mediante Internet .
Se han creado varios source ports para varios juegos específicamente para abordar el soporte multijugador en línea. La mayoría de los juegos más antiguos no fueron creados para aprovechar Internet y las conexiones a Internet de baja latencia y alto ancho de banda disponibles para los jugadores de computadora hoy en día. Además, los juegos antiguos pueden usar protocolos de red obsoletos para crear conexiones multijugador, como el protocolo IPX , en lugar del Protocolo de Internet . Otro problema eran los juegos que requerían una dirección IP específica para conectarse con otro jugador. Este requisito dificultaba encontrar rápidamente un grupo de extraños con los que jugar, la forma en que los juegos en línea se juegan más comúnmente hoy en día. Para abordar esta deficiencia, los source ports específicos como Skulltag agregaron "lobbies", que son básicamente salas de chat integradas en las que los jugadores pueden reunirse y publicar la ubicación de los juegos que están organizando o a los que desean unirse. Se pueden encontrar instalaciones similares en juegos más nuevos y servicios de juegos en línea como Steam de Valve , battle.net de Blizzard y GameSpy Arcade .
Si el código fuente de un software no está disponible, los enfoques alternativos para lograr la portabilidad son la emulación , las remakes del motor y la recompilación estática .