# Source

Source es un motor de videojuego 3D desarrollado por Valve. Debutó como sucesor de GoldSrc en 2004 con los lanzamientos de Half-Life: Source, Counter-Strike: Source y Half-Life 2. Es más conocido por su uso por parte de Valve, pero el motor se ha utilizado tanto por pequeños equipos e individuos para crear modificaciones de los juegos de Valve, y otros estudios que crean juegos distintos, en particular el título de Troika Games Vampire: The Masquerade – Bloodlines. Valve continuó creando actualizaciones incrementales para el motor Source después de su lanzamiento en 2004, la mayoría de las cuales coincidieron con videojuegos creados por ellos. El motor es más conocido por sus avances en física, inteligencia artificial y gráficos.
A finales de la década de 2010, Valve creó el motor Source 2 como sucesor y reemplazo de Source, y debutó públicamente junto con Half-Life: Alyx.

## Historia

Source se origina lejanamente en el motor GoldSrc, en sí mismo una versión muy modificada del motor Quake de John Carmack con algo de código del motor Quake II. Carmack comentó en su blog en 2004 que "todavía hay fragmentos del código inicial de Quake en Half-Life 2". El empleado de Valve, Erik Johnson, explicó la nomenclatura del motor en la comunidad de desarrolladores de Valve:
El motor se desarrolló parte por parte a partir de esta bifurcación en adelante, reemplazando lentamente a GoldSrc en los proyectos internos de Valve y, en parte, explicando las razones detrás de su naturaleza inusualmente modular. Desde entonces, el desarrollo de Source por parte de Valve ha sido una mezcla de middleware con licencia y código desarrollado internamente. Las versiones anteriores de Source usan Bink Video para la reproducción de video, sin embargo, las versiones más recientes del motor Source usan videos WebM para fondos de menú, videos de movimiento completo y pantallas de presentación.

### Modularidad y actualizaciones notables

Source fue creado para evolucionar gradualmente con nueva tecnología, a diferencia de los "saltos de versión" de retrocompatibilidad de sus competidores que rompen la compatibilidad con versiones anteriores. Los diferentes sistemas dentro de Source están representados por módulos separados que se pueden actualizar de forma independiente. Con Steam, Valve puede distribuir estas actualizaciones automáticamente entre sus numerosos usuarios. En la práctica, sin embargo, ha habido rupturas ocasionales en esta cadena de compatibilidad. El lanzamiento de Half-Life 2: Episode One y The Orange Box introdujeron nuevas versiones del motor que no podían usarse para ejecutar juegos o modificaciones más antiguos sin que los desarrolladores realizaran actualizaciones del código y, en algunos casos, del contenido. Ambos casos requirieron mucho menos trabajo para actualizar su versión que los motores de la competencia.

#### Source 2006

La rama Source 2006 fue el término utilizado para los juegos de Valve que utilizan tecnología que culminó con el lanzamiento de Half-Life 2: Episode One. La renderización HDR y la corrección de color se implementaron por primera vez en 2005 utilizando Day of Defeat: Source, lo que requirió que se reescribieran los sombreadores del motor. El primero, junto con los comentarios de los desarrolladores, se mostraron en Half-Life 2: Lost Coast. Episode One introdujo el sombreado Phong y otras características más pequeñas. La tecnología de renderizado basada en imágenes había estado en desarrollo para Half-Life 2, pero fue eliminada del motor antes de su lanzamiento. Gabe Newell lo mencionó nuevamente en 2006 como una pieza de tecnología que le gustaría agregar a Source para implementar soporte para escenas mucho más grandes que son imposibles con objetos estrictamente poligonales.

#### Source 2007

La rama Source 2007 representó una actualización completa del motor Source para el lanzamiento de The Orange Box. Un sistema de partículas enhebradas impulsado por artistas reemplazó los efectos previamente codificados para todos los juegos incluidos. Se creó un marco de herramientas en proceso para respaldarlo, que también admitió las compilaciones iniciales de Source Filmmaker. Además, el sistema de animación facial se aceleró por hardware en tarjetas de video modernas para una calidad de "largometrajes y transmisiones televisivas". El lanzamiento de The Orange Box en múltiples plataformas permitió una gran refactorización de código, lo que permitió que el motor Source aprovechara múltiples núcleos de CPU. Sin embargo, el soporte en PC era experimental e inestable hasta el lanzamiento de Left 4 Dead. El soporte multiprocesador fue posteriormente compatible con Team Fortress 2 y Day of Defeat: Source. Valve creó la versión Xbox 360 de The Orange Box internamente y el soporte para la consola está completamente integrado en la línea de código del motor principal. Incluye convertidores de activos, juego multiplataforma e integración con Xbox Live. El código del programa se puede transferir desde una PC a Xbox 360 simplemente recompilándolo. El lanzamiento de PlayStation 3 se subcontrató a Electronic Arts y estuvo plagado de problemas durante todo el proceso. Gabe Newell citó estos problemas al criticar la consola durante el lanzamiento de The Orange Box.

#### Rama de Left 4 Dead

La rama Left 4 Dead es una revisión de muchos aspectos del motor Source a través del desarrollo de la serie Left 4 Dead. La compatibilidad con multiprocesador se amplió aún más, permitiendo funciones como multijugador en pantalla dividida, efectos de posprocesamiento adicionales, secuencias de comandos de eventos con Squirrel y el Director de IA altamente dinámico. La interfaz del menú se volvió a implementar con un nuevo diseño diseñado para estar más orientado a la consola. Esta rama luego impulsó los lanzamientos de Alien Swarm y Portal 2, el primero lanzado con el código fuente que describe muchos de los cambios realizados desde que comenzó la rama. Portal 2, además, fue el resultado de que Valve asumiera el problema de migrar a PlayStation 3 internamente y, en combinación con la integración de Steamworks, creara lo que llamaron "la mejor versión de consola del juego".

#### Soporte para OS X, Linux y Android

En abril de 2010, Valve lanzó todos sus principales juegos Source en OS X, coincidiendo con el lanzamiento del cliente Steam en la misma plataforma. Valve anunció que todos sus juegos futuros se lanzarían simultáneamente para Windows y Mac. El primero de los juegos de Valve compatible con Linux fue Team Fortress 2, el puerto lanzado en octubre de 2012 junto con la beta cerrada de la versión Linux de Steam. Tanto las versiones del motor para OS X como para Linux toman ventaja de OpenGL y funcionan con Simple DirectMedia Layer. Durante el proceso de portabilidad, Valve reorganizó la mayoría de los juegos lanzados hasta The Orange Box en ramas separadas, pero paralelas, de "un jugador" y "multijugador". El código del juego para estas ramas se hizo público para los desarrolladores de mods en 2013 y sirven como la versión estable actual de la fuente designada para mods. Se incluye soporte para el sistema de distribución interno Steam Pipe de Valve, así como para Oculus Rift. En mayo de 2014, Nvidia lanzó versiones de Portal y Half-Life 2 para su consola de juegos portátil Android basada en Tegra 4, la Nvidia Shield.

## Herramientas y recursos
### Source SDK

Source SDK es el kit de desarrollo de software para el motor Source y contiene muchas de las herramientas utilizadas por Valve para desarrollar recursos para sus juegos. Viene con varios programas de línea de comandos diseñados para funciones especiales dentro de la canalización de activos, así como algunos programas basados en GUI diseñados para manejar funciones más complejas. Source SDK se lanzó como un conjunto de herramientas independiente y gratuito a través de Steam y requería la compra de un juego Source en la misma cuenta. Desde el lanzamiento de Left 4 Dead a finales de 2008, Valve comenzó a lanzar "Herramientas de creación" para juegos individuales, que constituyen los mismos programas adaptados para la construcción del motor de cada juego. Después de que Team Fortress 2 se convirtiera en un juego gratuito, Source SDK se abrió efectivamente a todos los usuarios de Steam. Cuando algunos juegos de Source se actualizaron a Source 2013, los SDK de Source más antiguos se eliminaron. Las tres aplicaciones que se mencionan a continuación ahora están incluidas en la instalación de cada juego.
Hay tres aplicaciones empaquetadas en Source SDK: Hammer Editor, Model Viewer y Face Poser. Model Viewer es un programa que permite a los usuarios ver modelos y puede usarse para una variedad de propósitos diferentes, incluido el desarrollo. Los desarrolladores pueden utilizar el programa para ver modelos y sus correspondientes animaciones, puntos de unión, huesos, etc. Face Poser es la herramienta que se utiliza para acceder a animaciones faciales y sistemas de coreografía. Esta herramienta permite editar expresiones faciales, gestos y movimientos de personajes, sincronizar los labios y secuenciar expresiones y otras señales de actuación, y obtener una vista previa de cómo se verá la escena en el motor del juego.

#### Hammer Editor

Hammer Editor es el editor de niveles oficial del motor, utiliza herramientas de renderizado y compilación incluidas en el SDK para crear mapas utilizando el método de partición de espacio binario (BSP). La geometría de nivel se crea con polígonos 3D llamados pinceles; A cada cara se le puede asignar una textura que también define las propiedades de la superficie, como los sonidos utilizados para las pisadas. Las caras también se pueden convertir en un desplazamiento que permite crear formas más naturales, como colinas.
Los objetos de paisaje o la geometría compleja se pueden importar como modelos 3D separados desde el directorio del juego. Estos modelos también se pueden utilizar como objetos de física o accesorios interactivos. El editor también presenta un sistema de E/S lógico detallado que se puede utilizar para crear elementos interactivos complejos. Se pueden enviar señales para desencadenar diferentes respuestas o cambiar el estado de una entidad entre entidades como botones, NPC's, pinceles de activación intangibles y accesorios de los mapas.

### Source Dedicated Server

El Source Dedicated Server (SRCDS) es un launcher o iniciador independiente para el motor Source que ejecuta sesiones de juegos multijugador sin necesidad de un cliente. Se puede iniciar a través de Windows o Linux y puede permitir niveles y recursos personalizados. La mayoría de los servidores de terceros ejecutan además Metamod:Source y SourceMod, que juntos proporcionan un framework además de SRCDS para la modificación personalizada del juego en títulos existentes.

### Source Filmmaker

Source Filmmaker (SFM) es una aplicación de animación 3D creada a partir del motor Source. Desarrollada por Valve, la herramienta se usó originalmente para crear películas para Day of Defeat: Source y Team Fortress 2. También se usó para crear algunos avances de los juegos con el motor. SFM se lanzó al público en 2012.

### Destinations - Herramientas de Workshop

En junio de 2016, Valve lanzó Destinations Workshop Tools, un conjunto de herramientas gratuitas de creación de realidad virtual (VR) que se ejecutan con Source 2 SDK.

### Comunidad de desarrolladores de Valve

En junio de 2005, Valve abrió la wiki de la comunidad de desarrolladores de Valve. Reemplazó la documentación estática del Source SDK de Valve con un sitio comunitario completo impulsado por MediaWiki.

### Papeles académicos

El personal de Valve ha producido ocasionalmente artículos profesionales y/o académicos para diversos eventos y publicaciones, incluidos SIGGRAPH, Game Developer Magazine y Game Developers Conference, explicando varios aspectos del desarrollo del motor Source.

## Videojuegos que usan Source
### Videojuegos de Valve

| Año | Título | Desarrollador | Editor | Fecha de lanzamiento |
| | Half-Life: Source | Valve | Valve | 1 de junio |
| 2004 | Counter-Strike: Source | Valve | Valve | 1 de noviembre |
| 2004 | Half-Life 2 | Valve | Valve | 16 de noviembre |
| 2004 | Half-Life 2: Deathmatch | Valve | Valve | 30 de noviembre |
| 2005 | Day of Defeat: Source | Valve | Valve | 26 de septiembre |
| 2005 | Half-Life 2: Lost Coast | Valve | Valve | 27 de octubre |
| 2006 | Half-Life: Deathmatch Source | Valve | Valve | 1 de mayo |
| 2006 | Half-Life 2: Episode One | Valve | Valve | 1 de junio |
| 2007 | Half-Life 2: Episode Two | Valve | Valve | 10 de octubre |
| 2007 | Portal | Valve | Valve | 10 de octubre |
| 2007 | Team Fortress 2 | Valve | Valve | 10 de octubre |
| 2008 | Left 4 Dead | Turtle Rock (Valve South) | Valve | 17 de noviembre |
| 2009 | Left 4 Dead 2 | Turtle Rock (Valve South) | Valve | 17 de noviembre |
| 2010 | Alien Swarm | Valve | Valve | 19 de julio |
| 2011 | Portal 2 | Valve | Valve | 19 de abril |
| 2012 | Counter-Strike: Global Offensive | Valve, Hidden Path Entertaiment | Valve | 21 de agosto |
| 2013 | Dota 2 | Valve | Valve | 9 de julio |

### Videojuegos de otras empresas u organizaciones

| Año | Título | Desarrollador | Editor | Fecha de lanzamiento |
| 2004 | Vampire: The Masquerade – Bloodlines | Troika Games | Activision | 16 de noviembre |
| 2006 | The DinoHunters | - | - | 24 de abril |
| 2006 | SiN Episodes | Ritual Entertaiment | Ritual Entertaiment | 10 de mayo |
| 2006 | Kuma\War 2 | Kuma Reality Games | Kuma Reality Games | - |
| 2006 | The Ship | Outerlight | Mindscape (EU), Merscom (NA) | 11 de julio |
| 2006 | Dark Messiah of Might and Magic | Arkane Studios | Ubisoft | 25 de octubre |
| 2006 | Garry's Mod | Facepunch Studios | Valve | 29 de noviembre |
| 2006 | Estranged ACT I | Alan Edwardes | Alan Edwardes | 29 de noviembre |
| 2007 | Dogfights: The Game | - | - | - |
| 2007 | Dystopia | Team Dystopia, Puny Human | Puny Human | 25 de febrero |
| 2007 | Age of Chivalry | Team Chivalry | Team Chivalry | 10 de septiembre |
| 2007 | Insurgency: Modern Infantry Combat | Insurgency Development Team | New World Interactive | 23 de octubre |
| 2007 | Zombie Panic! Source | Zombie Panic! Team | Zombie Panic! Team | 28 de diciembre |
| 2009 | Zeno Clash | ACE Team | Iceberg Interactive, Tripwire Interactive | 21 de abril |
| 2009 | NeoTokyo | Studio Radi-8 | NEOTOKYO | 3 de julio |
| 2010 | Mabinogi Heroes (conocido como Vindictus en América) | devCAT | Nexon | 27 de octubre |
| 2010 | Bloody Good Time | Outerlight | Ubisoft | 28 de octubre |
| 2011 | Dino D-Day | 800 North, Digital Ranch | 800 North, Digital Ranch | 9 de abril |
| 2011 | E.Y.E.: Divine Cybermancy | Streum On Studio | Streum On Studio | 29 de julio |
| 2011 | Nuclear Dawn | InterWave Studios | Iceberg Interactive | 26 de septiembre |
| 2011 | No More Room in Hell | No More Room in Hell Team | Lever Games | 31 de octubre |
| 2011 | Postal 3 | Trashmasters, Running with Scissors | Akella | 21 de diciembre |
| 2012 | Dear Esther | The Chinese Room | Curve Digital | 14 de febrero |
| 2012 | Hybrid | 5th Cell | Microsoft Studios | 8 de agosto |
| 2013 | Blade Symphony | Puny Human | Puny Human | 30 de abril |
| 2013 | The Stanley Parable | Galactic Cafe | Galactic Cafe | 17 de octubre |
| 2013 | Counter-Strike Online 2 | Nexon | Nexon | - |
| 2014 | Consortium | Interdimensional Games | Interdimensional Games | 8 de enero |
| 2014 | Insurgency | New World Interactive | New World Interactive | 22 de enero |
| 2014 | Contagion | Monochrome | Monochrome | 11 de abril |
| 2014 | Fistful of Frags | Fistful of Frags Team | Fistful of Frags Team | 9 de mayo |
| 2014 | Aperture Tag | Aperture Tag Team | Aperture Tag Team | 15 de julio |
| 2014 | 2015 | Eternal Silence | ES Team | ES Team | 17 de enero |
| Portal Stories: Mel | 2015 | Prism Studios | Prism Studios | 25 de junio |
| The Beginner's Guide | 2015 | Everything Unlimited | Everything Unlimited | 1 de octubre |
| 2016 | Infra | Loiste Interactive | Loiste Interactive | 15 de enero |
| 2016 | 2017 | Day of Infamy | New World Interactive | New World Interactive | 23 de marzo |
| 2018 | Hunt Down the Freeman | Royal Rudius Entertainment | Royal Rudius Entertainment | 24 de febrero |
| 2020 | Black Mesa | Crowbar Collective | Crowbar Collective | 6 de marzo |
| 2022 | The Stanley Parable: Ultra Deluxe | Galactic Cafe | Galactic Cafe | 27 de abril |
Titanfall, Titanfall 2 y Apex Legends no están incluidos porque sus motores, aunque originalmente se basaban en el Source SDK, fueron modificados hasta el punto de que son efectivamente motores diferentes.

## Source 2

Valve anunció un sucesor de Source, Source 2, en la Game Developers Conference en marzo de 2015. Allí, Valve declaró que sería de uso gratuito para los desarrolladores, con soporte para la API gráfica Vulkan, además de utilizar un nuevo motor de física interno llamado Rubikon. En junio de 2015, Valve anunció que Dota 2, originalmente creado en el motor Source, se trasladaría a Source 2 en una actualización llamada Dota 2 Reborn. Reborn se lanzó al público por primera vez como una actualización beta voluntaria ese mismo mes antes de reemplazar oficialmente al cliente original en septiembre de 2015, lo que lo convirtió en el primer juego en utilizar el motor. El motor había sucedido a Source a finales de la década de 2010.