Half-Life & Portal Wiki
Registrarse
Advertisement

Esta página utiliza contenido de Combine OverWiki (ver autores) con licencia CC-BY-SA. Combine OverWiki


Source es un motor gráfico desarrollado por Valve, como sucesor de GoldSrc. Debutó con la beta de Counter-Strike: Source que se distribuía junto a Counter-Strike: Condition Zero, y más tarde, con Half-Life 2, y ha estado en desarrollo activo desde entonces. El motor Source no tiene un esquema conciso de versiones; en su lugar, es diseñado con actualizaciones constantes.

Su sucesor, Source 2, fue anunciado oficialmente en mayo de 2015, siendo Dota 2 el primer juego en usarlo. Half-Life: Alyx será el primer juego de la saga Half-Life en utilizar este motor.

Capacidades técnicas[]

Ep1 citadel 000022

Una escena de Half-Life 2: Episode One, donde se pueden observar las tecnologías de iluminación de alto rango dinámico (HDR), luz de fondo, sombreado de Phong, expresiones faciales, y cámaras en tiempo real.

Renderizado:
  • Basado en shaders
  • DirectX 9 con Shader Model 3.0 y OpenGL
  • Skybox 3D; un área puede mostrarse como un skybox, con hasta 16 veces su tamaño real, con paralaje 3D completo.
  • Renderizado de alto rango dinámico (HDR).
Animación:
  • Cualquier animación puede combinarse perfectamente con otra, en cualquier momento.
  • Cinemática inversa, para asegurar que las articulaciones de los personajes reaccionen a los ambientes.
Físicas a través de la red:
  • Originadas por el motor físico Havok 2
  • Altamente optimizadas por Valve
  • Eficiente en cuanto a procesadores
  • Bajos requisitos de banda ancha
  • Físicas de los vehículos
Sonido:
  • Sistema DSP completo
  • Soporte completo de sonido surround
  • Sonido generado solamente por software
  • Componentes de baja y alta frecuencia combinados, dependiendo del área circundante y posición relativa de origen.
Escalabilidad:
  • Soporte para DirectX 6 [1] y superior
  • Modularidad que permite que todos los proyectos Source actuales y futuros puedan ser reducidos a DirectX 6 si así se desea.
Expresiones faciales:
Sincronía de labios:
  • Funciona en tándem con expresiones faciales
  • Generada automáticamente, pero completamente configurable
  • Almacenada en el propio archivo de sonido para localización a diferentes idiomas

Modularidad y actualizaciones notables[]

Source fue diseñado desde el principio para ser actualmente modular. Esto permite la fácil adición y modificación de ciertas funcionalidades, sin romper otras áreas del motor. Al ser distribuido mediante Steam, estas actualizaciones pueden ser distribuidas retroactivamente y automáticamente. Por ejemplo, si Source es actualizado para soportar físicas por hardware, todos los juegos en Steam que usen Source se beneficiarán instantáneamente de esta actualización. Sin embargo, se ha demostrado que características completamente nuevas, como la iluminación de alto rango dinámico (HDR), requieren cambios por parte del desarrollador.

Renderizado con iluminación de alto rango dinámico (HDR)[]

Visto por primera vez en Day of Defeat: Source, y poco más tarde en Half-Life 2: Lost Coast, fue la primer mayor instancia de la modularidad de Source en uso. Aunque en teoría todos los juegos con el motor Source deberían de haber podido utilizar esta tecnología inmediatamente desde su lanzamiento, el código necesario para implementar este nuevo sistema no estuvo disponible para creadores de mods hasta 11 meses después, concretamente, hasta el 4 de agosto de 2006.

Sistema de animación facial 2[]

Facial anim ep2

Alyx Vance con el nuevo sistema de animación facial, en Episode Two.

Cuando Half-Life 2: Episode One fue lanzado el 1 de junio de 2006, introdujo la segunda versión del sistema de animación facial propietario de Valve. Ken Birdwell explica las funcionalidades de la actualización en los comentarios de los desarrolladores del juego:

«Cuando diseñamos el sistema facial de Half-Life 2 en 2000, nuestro objetivo era lograr que las expresiones parecieran naturales a una distancia moderada. Teniendo en cuenta nuestro presupuesto para polígonos y texturas en tiempo real, preferimos optar por una actuación reservada o limitada a correr el riesgo de que las expresiones resultaran artificiales. En Episode One queríamos expandir los sistemas faciales de los personajes, para que su actuación fuera más intensa y expresiva, y diera mejor resultado a corta distancia. Para ello, aumentamos los detalles alrededor de los ojos y la boca, incrementamos el número de zonas faciales (para entendernos, movimientos de grupos musculares) en un 50%, reescribimos las reglas de combinación de estas formas, e intensificamos muchas de las existentes. Además, añadimos la posibilidad de controlar la amplitud del movimiento facial para animar la labialización, lo que nos permitió adaptar la forma de la boca al volumen o la intensidad del diálogo.»
— Ken Birdwell

Sistema de iluminación dinámica y sombras 2[]

Un nuevo sistema de iluminación dinámica y sombreado fue lanzado para Source, reemplazando el sistema existente. [2] Fue lanzado junto con otras nuevas características del motor, con Half-Life 2: Episode Two.

Comparación de los sistemas de iluminación y sombreado
Sistema actual de iluminación y sombreado Sistema de iluminación dinámica y sombreado 2
Las sombras dinámicas en un mapa siembre provienen de una misma dirección predeterminada. Las sombras dinámicas en un mapa siempre reaccionan dinámicamente a cada fuente de luz.
Los modelos no pueden sombrearse a sí mismos ni proyectar sombras sobre otros objetos. Los modelos pueden sombrearse a sí mismos, y proyectar sombras sobre el mundo y otros objetos.
Las sombras dinámicas no se mezclan con las sombras del mapa (estáticas), y se proyectan a través de todos los objetos, excepto la geometría del mundo. Las sombras dinámicas son más unificadas con las sombras estáticas, y no se proyectan a través de modelos.
Cada objeto sólo tiene una sombra dinámica. Cualquier objeto puede emitir múltiples sombras dinámicas y suaves.
La linterna del jugador simplemente ilumina un área. La linterna del jugador proyecta sombras de los modelos y la geometría del mundo.

Renderizado de paisajes y flora[]

Hl2ep2 gorge

Ambiente de un cañón en Episode Two

Los grandes ambientes naturales con un gran follaje no estuvieron soportados hasta Half-Life 2: Episode Two, cuando se actualizó el motor y se añadió soporte para este tipo de entornos. Estas actualizaciones estuvieron disponibles para desarrolladores de mods al poco tiempo.

Nuevo sistema de partículas[]

Durante la conferencia de prensa Electronic Arts Summer Showcase en julio de 2006, Gabe Newell mencionó que un nuevo sistema de partículas sería incluido en el motor Source con el nuevo título Half-Life 2: Episode Two. Aunque este sistema se ve por primera vez en el teaser de Team Fortress 2, específicamente, donde se muestra el lanzallamas del Pyro en acción.

Físicas cinemáticas[]

Hl2ep2 cinematicphysicsshack

Durante la conferencia de prensa Electronic Arts Summer Showcase en julio de 2006, fue revelado que el ex-empleado de Weta Digital, líder en efectos especiales de destrucción en las películas The Return of the King y King Kong, estaba trabajando en un sistema de "Físicas cinemáticas" para Source.

Este sistema añade dos nuevas funciones al simulador de físicas de Source:

  • Deformación de objetos: anteriormente, los modelos no podían ser modificados excepto por las animaciones.
  • Desmoronamiento dinámico de la geometría: anteriormente, las líneas de separación tenían que ser especificadas por el mapper.

Las físicas cinemáticas soportan un sistema de keyframes [3], pero su naturaleza exacta es actualmente poco clara. Podría ser que un animador crea una secuencia en gran medida completa, pero de bajo detalle, y que luego los detalles son agregados por el sistema de física, o podría ser que un animador crea varios estados de un solo cuadro que luego se utilizan como objetivos de movimiento para la simulación (de una manera no diferente a la tecnología Endorphin NaturalMotion).

Cualquiera de los dos métodos da como resultado una drástica reducción en el trabajo por parte del desarrollador, permitiendo así la creación de escenas mucho más complejas que antes con el mismo presupuesto. En la actualidad no está claro si los keyframes son estrictamente necesarios o no, y qué número se necesita para crear una escena tan compleja como la escena del colapso del puente.

Optimizaciones multinúcleo[]

Como parte de la transición del motor Source a las consolas de próxima generación, se han añadido optimizaciones multiprocesador, lo que resulta en un procesamiento más rápido en PCs con procesadores de dos o cuatro núcleos y las consolas Xbox 360 y PlayStation 3. [4]

«Sí. Definitivamente pensamos que el contenido necesita avanzar. Por ejemplo, una de las cosas que estamos reaccionando es la velocidad a la que los microprocesadores están saliendo. Intel ha avanzado muy agresivamente la entrega de procesadores de escritorio con cuatro núcleos, habrá soporte para ello en Episode Two, y definitivamente modificaremos Episode One, Half-Life 2 y Counter-Strike: Source, para que puedan aprovecharse de esto. Definitivamente intentaremos mantener los juegos existentes -especialmente los juegos multijugador- actualizados como la tecnología evoluciona.»
— Gabe Newell

Valve ha demostrado las nuevas optimizaciones para múltiples núcleos [5] [6] que utilizan un estilo multi-threading que denominan "threading híbrido".

Tecnologías futuras no confirmadas[]

Renderizado basado en imágenes[]

Image-Based Rendering es una técnica en la que los elementos 2D son manipulados para aparecer en un mundo 3D. En el contexto de un juego en 3D, ofrece un aumento significativo de rendimiento mediante la sustitución de la geometría 3D que está lo suficientemente lejos para que la transición sea imperceptible con una imagen 2D.

La tecnología había estado en desarrollo para Half-Life 2, como una demostración 2003 de las demostraciones de Driverheaven.net, pero fue cortada. Fue mencionado nuevamente por Gabe Newell durante la semana de Valve de 1UP:

«Hay tecnología que fue realmente emocionante y me gustaría ver entrar en producción, que es un enfoque diferente para representar la complejidad: moviendo las cosas dentro y fuera de una imagen y luego interpolando de forma transparente entre esos movimientos mientras el jugador se mueve alrededor. De modo que todo lo que está cerca del jugador es física y geometría, y todo lo que está muy lejos del jugador es una imagen, pero el jugador no tiene manera de percibir esto.»
— Gabe Newell

Streaming de archivos[]

Una de las tecnologías desarrolladas para el lanzamiento de Xbox de Half-Life 2 era el streaming de archivos, de modo que los recursos de un mapa podrían cargarse mientras el jugador se movía alrededor de él en lugar de hacerlo en una sola operación antes de ser jugado.[7] Con este sistema, los tiempos de carga se redujeron a menos de quince segundos. El sistema se expandió en el sistema de caché ya implementado. No hay un tiempo establecido para su lanzamiento, ya que implementar tal sistema en las variaciones prácticamente infinitas de configuraciones de hardware de PC plantea serios problemas de rendimiento.

Orígenes[]

A pesar de que Valve ha declarado explícitamente que el motor Source ha sido construido internamente desde cero, existen rumores y mitos de que en su lugar simplemente se deriva del código original de Quake a través de la rama GoldSrc de Valve. Las razones principales de esto son que el motor utiliza interfaces de desarrollo de manera similar a GoldSrc (para ayudar a la transición) y el comentario de John Carmack en su blog en el que indica que "todavía hay fragmentos de código Quake en Half-Life 2" se expandió a través de rumores para ser una confirmación de que grandes franjas de código son idénticos, cuando no se puede sacar tal conclusión de la declaración. No queda ninguna prueba sólida de que Source se deriva del código GoldSrc - y de hecho, dado el hecho de la filtración de código de 2003 no produjo ninguna de tales afirmaciones, sólo se puede asumir que no se encontró evidencia incriminatoria.

Sin embargo, se sabe que Source se desarrolló parte a parte, lentamente sustituyendo al motor GoldSrc en los proyectos internos de Valve.[8] Esto explica su naturaleza modular, y sugiere que, incluso si Source no se derivó de GoldSrc, GoldSrc fue por lo menos modificado para conectarse a él durante el desarrollo.

Problemas comunes[]

"Tartamudeo"[]

El motor Source utiliza un sistema de almacenamiento en caché, mediante él se maneja a la vez la carga de ciertos recursos, en lugar de en una sola operación detrás de una pantalla de carga tradicional. Los datos de textura y sonido son las áreas principales en las que esto ocurre. Las texturas se cargan en la memoria pero sólo se mueven a memoria de la tarjeta de vídeo cuando es necesario, y los archivos de audio se cargan con un inusual sistema de "caché de sonido": sólo los primeros 0,125 segundos de cada archivo son precargados, y este clip se utiliza para cubrir el tiempo de buffering del archivo de sonido completo en segundo plano cuando se solicita por primera vez.

Ambos sistemas mantienen los datos en memoria hasta que no hay más espacio y los recursos más antiguos son eliminados, y cuando esto ocurre, el motor se congela o entra en un bucle temporal hasta que llega la información. El "tartamudeo" (stuttering), o "enganche", como se conoce a veces, es el resultado de estas pausas.

Mientras que el "tartamudeo" puede ser causado por rendimiento pobre del sistema, también se ha observado en configuraciones de hardware que deberían ser más que suficientemente poderosas para hacer frente a la velocidad de datos, y a pesar de muchas teorías, la causa exacta de este problema sigue siendo desconocida. La mayoría de las soluciones que se han encontrado implican pasar por alto el sistema de caché, ya que no se puede desactivar directamente o hacer optimizaciones específicas del sistema (por ejemplo, actualizar controladores).

Cuando Half-Life 2 fue lanzado por primera vez y el tartamudeo se convirtió en un problema ampliamente conocido, el miembro de la comunidad Mark McWilliams creó una página[9] que cubría el tema y trabajó junto con Valve en resolverlo. Valve lanzó varias actualizaciones, cuyos efectos variaron desde correcciones completas para algunos usuarios, hasta sistemas que comenzaron a estar afectados por el problema cuando antes no lo estaban.

Bucle de audio[]

Source sufre un error (véase "tartamudeo") por el cual la carga asincrónica de un nuevo archivo de sonido hará que el motor se bloquee con audio en bucle. Debido a la naturaleza de DirectX, una vez que el motor entra en tal estado, permanecerá en la pantalla a menos que el usuario pueda ciegamente terminar el programa, o reiniciar su computadora. El error se produce en una biblioteca estándar de Windows asociada con tarjetas de sonido integradas y, en algunos casos, puede resolverse disminuyendo la aceleración de DirectSound.

Los informes de errores de audio en bucle aumentaron en torno al lanzamiento de Episode One. Si bien es probable que el pico fue simplemente porque había un número inusualmente alto de personas jugando el juego, los cambios en el motor, de los cuales había muchos para el juego, no se pueden descartar. Se ha observado que las personas que han sido capaces de jugar Half-Life 2 sin ningún tipo de errores de audio fueron más propensas a este problema. Se realizó un hilo en los foros de Steam para discutir el problema y tratar de encontrar soluciones, aunque la experiencia de los usuarios del hilo indica que la mayoría de soluciones alternativas y correcciones no solucionan el problema.

Valve Developper Community[]

El 28 de junio de 2005, Valve abrió el Wiki Valve Developer Community (Comunidad de Desarrolladores de Valve). El VDC reemplazó la antigua documentación de Source SDK por un sitio comunitario basado MediaWiki. En cuestión de días Valve informó que "el número de artículos útiles casi se había duplicado". Estos nuevos artículos cubren la documentación de los bots de Counter-Strike: Source (agregada por el autor de los bots, Mike Booth) y la IA de Half-Life 2, el control de código para los mods del motor Source, y más.

Juegos que utilizan Source[]

Por Valve[]

De otros desarrolladores[]

Enlaces externos[]

Referencias[]

Advertisement