Source es un motor de juegos 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. Otros juegos de terceros notables que utilizan Source incluyen Vampire: The Masquerade – Bloodlines , Dear Esther y The Stanley Parable . Valve lanzó actualizaciones incrementales del motor durante su vida útil. Source fue reemplazado en 2015 por el lanzamiento de Source 2 .
El código fuente se origina remotamente del motor GoldSrc , que es 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 ". [1] El empleado de Valve Erik Johnson explicó la nomenclatura del motor en la Comunidad de desarrolladores de Valve: [2]
Cuando estábamos a punto de lanzar Half-Life (menos de una semana aproximadamente), descubrimos que ya había algunos proyectos en los que teníamos que empezar a trabajar, pero no podíamos arriesgarnos a incluir el código en la versión comercial del juego. En ese momento, bifurcamos el código en VSS para que fuera tanto "Goldsource"
/$Goldsrc
como/$Src
"Source". Durante los siguientes años, usamos estos términos internamente como "Goldsource" y "Source". Al menos inicialmente, la rama Goldsrc del código se refería a la base de código que se había lanzado en ese momento, y Src se refería al siguiente conjunto de tecnología más riesgosa en la que estábamos trabajando. Cuando llegó el momento de mostrar Half-Life 2 por primera vez en el E3 , parte de nuestra comunicación interna fue referirnos al motor "Source" en lugar del motor "Goldsource", y el nombre se mantuvo.
Source se desarrolló parte por parte a partir de esta bifurcación en adelante, reemplazando lentamente a GoldSrc en los proyectos internos de Valve [3] y, en parte, explicando las razones detrás de su naturaleza inusualmente modular. El desarrollo de Source por parte de Valve desde entonces 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, [4] 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. [5] .
Source fue creado para evolucionar de forma incremental con la nueva tecnología, a diferencia de los "saltos de versión" que rompen la compatibilidad con versiones anteriores de sus competidores. 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 muchos usuarios. En la práctica, sin embargo, ha habido interrupciones 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 se podían usar para ejecutar juegos o mods más antiguos sin que los desarrolladores realizaran actualizaciones del código y, en algunos casos, del contenido. [6] Ambos casos requirieron mucho menos trabajo para actualizar su versión que los motores de la competencia.
La rama Source 2006 fue el término utilizado para los juegos de Valve que utilizaban 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 , que requirió que se reescribieran los sombreadores del motor. [7] La primera, junto con las pistas de comentarios de los desarrolladores, se exhibieron 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 , [8] pero se eliminó del motor antes de su lanzamiento. Gabe Newell la 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 . [9]
La rama Source 2007 representó una actualización completa del motor Source para el lanzamiento de The Orange Box . Un sistema de partículas enhebrado e impulsado por artistas reemplazó los efectos previamente codificados para todos los juegos incluidos. [ cita requerida ] Se creó un marco de herramientas en proceso para respaldarlo, que también respaldó 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 "largometraje y televisión abierta". [10] El lanzamiento de The Orange Box en múltiples plataformas permitió una gran refactorización de código , que permitió que el motor Source aprovechara múltiples núcleos de CPU. [11] Sin embargo, el soporte en la PC fue experimental e inestable [12] hasta el lanzamiento de Left 4 Dead . [13] El soporte multiprocesador luego se incorporó a Team Fortress 2 y Day of Defeat: Source . [14] 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 . [15] El código del programa se puede trasladar de PC a Xbox 360 simplemente recompilándolo. [16] El lanzamiento de PlayStation 3 fue subcontratado 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 . [17]
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 . El soporte multiprocesador se amplió aún más, lo que permitió características como multijugador en pantalla dividida, efectos de posprocesamiento adicionales, scripts de eventos con Squirrel y el altamente dinámico Director de IA . 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 código fuente que describe muchos de los cambios realizados desde que comenzó la rama. Portal 2 , además, sirvió como resultado de que Valve tomara el problema de la portabilidad a PlayStation 3 internamente, y en combinación con la integración de Steamworks creó lo que llamaron "la mejor versión de consola del juego". [18]
En abril de 2010, Valve lanzó todos sus juegos Source principales 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. [19] [20] El primero de los juegos de Valve en soportar Linux fue Team Fortress 2 , el port lanzado en octubre de 2012 junto con la beta cerrada de la versión Linux de Steam. Tanto los ports de OS X como de Linux del motor aprovechan OpenGL y están impulsados por Simple DirectMedia Layer . [21] Durante el proceso de port, Valve reorganizó la mayoría de los juegos lanzados hasta The Orange Box en ramas "un jugador" y "multijugador" separadas, pero paralelas. 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 Source designada para mods. Se incluye soporte para el sistema de distribución interno Steam Pipe de Valve, así como para Oculus Rift . [22] En mayo de 2014, Nvidia lanzó puertos de Portal y Half-Life 2 para su consola de juegos portátil Android basada en Tegra 4 , Nvidia Shield . [23]
Source 2 fue anunciado por Valve como el sucesor de Source en la Game Developers Conference en marzo de 2015. [24] 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. [25] [26] En junio de 2015, Valve anunció que Dota 2 , originalmente hecho en el motor Source, sería portado a Source 2 en una actualización llamada Dota 2 Reborn . [27] [28] Reborn se lanzó por primera vez al público como una actualización beta optativa ese mismo mes antes de reemplazar oficialmente al cliente original en septiembre de 2015, lo que lo convirtió en el primer juego en usar el motor. [29] [30] El motor había sucedido a Source a fines de la década de 2010.
Source SDK es el kit de desarrollo de software para el motor Source y contiene muchas de las herramientas que utiliza Valve para desarrollar recursos para sus juegos. Viene con varios programas de línea de comandos diseñados para funciones especiales dentro del flujo de recursos, 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 gratuito a través de Steam y requería que se comprara un juego Source en la misma cuenta. Desde el lanzamiento de Left 4 Dead a fines de 2008, Valve comenzó a lanzar "Herramientas de creación" para juegos individuales, que constituyen los mismos programas adaptados para la compilación del motor de cada juego. Después de que Team Fortress 2 se convirtió en un juego gratuito, Source SDK se abrió de manera efectiva a todos los usuarios de Steam. Cuando algunos juegos Source se actualizaron a Source 2013, los SDK Source más antiguos se eliminaron gradualmente. Las tres aplicaciones mencionadas a continuación ahora están incluidas en la instalación de cada juego. [ cita requerida ]
Hay tres aplicaciones empaquetadas en el SDK de Source: Hammer Editor, Model Viewer y Face Poser. Model Viewer es un programa que permite a los usuarios ver modelos y se puede utilizar para una variedad de propósitos diferentes, incluido el desarrollo. Los desarrolladores pueden usar el programa para ver modelos y sus animaciones correspondientes, puntos de unión, huesos, etc. Face Poser es la herramienta utilizada para acceder a animaciones faciales y sistemas de coreografía. Esta herramienta permite editar expresiones faciales , gestos y movimientos de personajes, sincronización de labios , expresiones de secuencia y otras señales de actuación y obtener una vista previa de cómo se verá la escena en el motor del juego. [31]
El editor Hammer, 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 binaria del espacio (BSP). La geometría de los niveles 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 los pasos. [32] Las caras también se pueden convertir en un desplazamiento, lo que permite crear formas más naturales, como colinas.
Los objetos de escenario o geometría compleja se pueden importar como modelos 3D independientes desde el directorio del juego. Estos modelos también se pueden utilizar como objetos físicos o accesorios interactivos. El editor también cuenta con un sistema de E/S lógicas en profundidad que se puede utilizar para crear elementos interactivos complejos. Se pueden enviar señales para activar diferentes respuestas o cambiar el estado de una entidad entre entidades como botones, NPC , pinceles de activación intangibles y accesorios del mapa.
El servidor dedicado Source (SRCDS) es un lanzador independiente para el motor Source que ejecuta sesiones de juego 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 también ejecutan Metamod :Source y SourceMod, que juntos proporcionan un marco sobre SRCDS para la modificación personalizada de la jugabilidad en títulos existentes. [33] [34]
Source Filmmaker (SFM) es una aplicación de animación 3D que se creó desde el motor Source. [35] Desarrollada por Valve, la herramienta se utilizó originalmente para crear películas para Day of Defeat: Source y Team Fortress 2. También se utilizó para crear algunos avances para los juegos de Source Engine. SFM se lanzó al público en 2012.
En junio de 2016, Valve lanzó Destinations Workshop Tools, un conjunto de herramientas gratuitas de creación de realidad virtual (RV) que se ejecutan utilizando el SDK Source 2. [36]
En junio de 2005, Valve abrió el wiki de la Comunidad de desarrolladores de Valve . Reemplazó la documentación estática del Source SDK de Valve por un sitio comunitario completamente desarrollado con MediaWiki . [37]
El personal de Valve ha producido ocasionalmente artículos profesionales y/o académicos para varios eventos y publicaciones, incluidos SIGGRAPH , Game Developer Magazine y Game Developers Conference , explicando varios aspectos del desarrollo del motor Source. [38]
Titanfall , Titanfall 2 y Apex Legends no están incluidos porque sus motores, aunque originalmente estaban basados en el Source SDK, fueron modificados hasta el punto de que son efectivamente motores diferentes. [42]
Chris Green
: El motor Source admite una amplia variedad de sombreadores. El sombreador de refracción de la ventana requiere que copiemos la escena en una textura, la refractemos y luego la apliquemos a la superficie de la ventana. Para admitir HDR por completo, era necesario actualizar todos los sombreadores del motor, por lo que se mejoró este sombreador de refracción para que admita todo el rango de contraste.