Overwatch

Estados de entornos en Overwatch 2: detrás de escenas con el equipo de ingeniería

Estados de entornos en Overwatch 2: detrás de escenas con el equipo de ingeniería

¡Hola a todos! Me llamo Marco Alamia y soy ingeniero de software en el equipo de Overwatch. Desde que terminamos de trabajar hace poco en una nueva tecnología para Overwatch 2, pensamos que sería una gran oportunidad de darle a la comunidad un adelanto de lo que hay detrás del proceso de creación de mejoras para el motor de un juego. Para ayudarme en esta tarea, solicité el apoyo de otros dos desarrolladores del equipo de Overwatch: Bruce Wilkie y Fabien Christin.

La nueva tecnología que añadimos al motor se llama “estados de entornos” y se convirtió rápidamente en nuestro flujo de trabajo favorito para la creación y diseño de mapas. Si bien la función se desarrolla y perfecciona dentro del motor y las herramientas de Overwatch 2, la idea central surge de la mente de Fabien, nuestro talentoso artista de iluminación. Le pedí a Fabien que nos ayudará a comprender cómo se le ocurrió la idea que cambió la forma en que el equipo crea mapas hoy en día, y que nos explicara su proceso de diseño.

¡Adentrémonos en los estados de entornos!


La presentación de la idea

Fabien: Overwatch está ambientado en un mundo brillante y colorido, y gran parte del carácter del juego se expresa a través de sus mapas. La creación de un mapa comienza con los diseñadores de niveles que inventan toda la arquitectura del lugar mediante unas enormes cajas grises para producir un juego interesante y balanceado. ¡Lo más importante a estas alturas es diseñar un mapa que sea divertido de jugar! Luego de varias horas de pruebas, es el turno de los artistas de entornos para transformar las cajas grises temporales en edificios y recursos de entorno hechos a mano con esmero que darán vida a los lugares que recorrerán los jugadores. 

Junto con el entorno, creamos la iluminación que da soporte a la historia que cuenta el mapa. Para Overwatch 2, quisimos crear ambientes nuevos e interesantes que cambiaran por completo la sensación de un lugar. Imaginen viajar a Numbani y ver la ciudad futurística iluminada en un cálido ocaso africano, o aterrizar en un París lluvioso, con todas las tiendas brillantes con luces doradas y acogedoras que invitan a pasar a comer un croissant hasta que deje de llover.

Eso es justo para lo que los estados de entornos están diseñados. Con este nuevo sistema, logramos separar todos los componentes importantes de iluminación, sonido y efectos en recursos autónomos que se pueden combinar como bloques de construcción para crear lo que nosotros conocemos como “escenarios de entornos”. Podemos compartirlos en todos los mapas y tener varios escenarios en cada mapa.

Tomemos como ejemplo a Necrópolis, el mapa dinámico de Combate a muerte. Tal vez ya jugaron en su escenario nocturno, el cual combina el contraste de los colores fríos y azules de la noche con el naranja vivo de las antorchas encendidas alrededor de los edificios.

Pero digamos que queremos experimentar con un escenario distinto y decidimos probar los colores del caluroso desierto del Templo de Anubis. Con el nuevo sistema, lo único que necesitamos es tomar el estado de entorno del Templo de Anubis y aplicarlo a Necrópolis. 

¡Esto ya luce extraordinario! No obstante, podemos hacer que se vea mucho mejor si modificamos un poco la dirección del sol para crear sombras más interesantes. Para conseguirlo, diseñamos un nuevo estado de entorno que solo sobrescribirá la dirección del sol y colocamos este nuevo “bloque” encima del que corresponde al Templo de Anubis. 

¡Listo!

Gracias a la flexibilidad y facilidad de los estados de entornos, podemos hacer un prototipo nuevo de iluminación para nuestros mapas dentro de pocas horas. El hecho de modificar con rapidez nos permite experimentar más, ser más creativos y producir más variedad para todos nuestros mapas.

Pero eso no es todo. Si bien los otros ejemplos eran en su mayor parte cosméticos, los estados de entornos también pueden combinarse de manera dinámica para desarrollar nuevas y emocionantes oportunidades de juego. Imaginen que saldrán a una misión en Necrópolis para restaurar la conexión de un enlace satelital de Overwatch y que mientras se defienden de Null Sector, ¡una tormenta de arena se acerca deprisa al lugar y envuelve todo a su alrededor! Podemos hacer que su misión sea un poco más desafiante tras añadir un nuevo estado de entorno de tormenta de arena encima del escenario soleado, lo cual aumentará poco a poco la densidad en la nubosidad y el efecto de la arena.

 

Con esta nueva tecnología, podemos crear toda clase de cambios climáticos, como tormentas eléctricas, nieve y otros escenarios de entorno emocionantes para que el juego se sienta diferente cada vez que lo jueguen.

Volvamos ahora con Marco y veamos un lado más técnico del funcionamiento de los estados de entornos.

La implementación de los estados de entornos

Marco: La visión de Fabien era ambiciosa, así que tuvimos que diseñar un sistema potente para lograr lo que Overwatch 2 necesitaba para sus entornos. Luego de un intercambio de ideas, decidimos permitir la presencia de varios estados de entornos a la vez, ordenados a la perfección en una pila. Esta pila podría cambiar de manera dinámica, así que el estado de entorno podría añadirse o eliminarse en cualquier momento. La magia ocurre cuando el motor observa esta pila y mezcla todos los estados de entornos para producir la apariencia del entorno final. Si alguna vez usaron Photoshop, es lo mismo que tener varias capas mezcladas para producir una imagen final.

La idea es que cada estado de entorno pueda describir algún aspecto del entorno en sí, como la fuerza y dirección del viento o la tonalidad del sol. Cuando el estado se coloca en la pila, solo los aspectos proporcionados contribuyen en el resultado. Por ejemplo, esta es una pila tomada del club de Lúcio en Río, donde un estado de entorno que cambia la exposición y la gradación de color de la cámara se coloca en la pila:

 

El entorno de estado en la base proporciona todos los aspectos para el mapa, y el que está arriba modifica la gradación de color para producir la amenazante y aterradora atmósfera de la zona de Diablo. Los estados de entornos se pueden añadir y eliminar de la pila con agilidad durante el juego, lo que permitirá más dinamismo y hará que los mapas se sientan más vivos y enérgicos.

Aspectos  

Bajo la supervisión del equipo de arte y de Fabien, identificamos varios aspectos clave que queríamos que los estados de entornos pudieran definir. Por ejemplo, el posprocesamiento fue la primera función del motor convertido en un aspecto. El posprocesamiento es un ingrediente común de todos los motores modernos; se utiliza para aplicar varios filtros y efectos, como controlar el contraste, el brillo y la saturación de la imagen final. La opción de ajustar el contraste y brillo de la imagen de forma dinámica según lo que ocurre en el juego puede hacer que la imagen final sea mucho más colorida y fluida, y esto ahora es posible en Overwatch 2 gracias a la tecnología de los estados de entornos.

El aspecto de la niebla es otra herramienta poderosa en nuestro nuevo sistema. Al cambiar sus parámetros, podemos guiar la apariencia y la sensación de la niebla, lo que a su vez permite que el equipo de arte haga que el entrono evolucione de forma visual con base en el modo de juego, las posiciones de los jugadores o incluso el tiempo. Por ejemplo, podríamos hacer el mapa espeluznante para Halloween, o hacer que la niebla sea más espesa solo alrededor de una zona específica de un mapa, o hacer que una tormenta de arena crezca con el tiempo en una de nuestras nuevas misiones de héroe.

Tenemos varios aspectos que abordan otras propiedades visuales como las sombras proyectadas por las nubes en el mapa e incluso propiedades no visuales como la fuerza y dirección del viento. Dos de los aspectos más importantes que podemos cambiar son los del cielo y el sol. Como sus nombres lo indican, estos nos permiten modificar algunas características clave del entorno, como la posición y el color del sol, las nubes que usamos, en caso de haberlas, y si es de día o de noche. Como pueden imaginar, esta es una parte muy importante en el sistema del estado de entorno, ya que nos permite transformar la apariencia y la sensación del mapa de formas muy dramáticas.

Estos dos aspectos (sol y cielo) impulsan una de las zonas más avanzadas del motor: el sistema de iluminación. La iluminación es muy importante para Overwatch 2, pues nos ayuda a establecer la apariencia, la sensación y el clima para nuestros entornos.  Sin embargo, cualquier cambio a este sistema puede tener consecuencias en la memoria y el rendimiento, y por eso debemos tener mucho cuidado con lo que permitimos. Por fortuna para nosotros, tenemos a Bruce Wilkie en nuestro equipo, un gran ingeniero que tiene mucha experiencia con sistemas de iluminación y que nos puede ayudar a crear algo que se vea genial mientras conservamos nuestro rendimiento en el gran nivel que requiere un juego competitivo de disparos como Overwatch 2.

Iluminación

Bruce: Hay mucho trabajo y dedicación en los elementos visuales vibrantes y coloridos de Overwatch. Cada vez que juego una partida en uno de muchos de nuestros hermosos mapas, recuerdo toda la atención a los detalles que recibe cada entorno de iluminación. La luz solar rebota en las habitaciones, los proyectores iluminan las ruinas y los festivales nocturnos cobran vida con colores. Estos son solo un puñado de ejemplos de cómo la iluminación juega un papel muy importante en la apariencia y la sensación de nuestro juego. Al crear el motor para Overwatch, trabajamos de cerca con el equipo de arte para proporcionar las funciones de iluminación necesarias que llevan el arte conceptual en 2D al mundo en 3D; con funciones como la luz que rebota contra superficies (a menudo llamada “iluminación a nivel global”), metales que reflejan el mundo a su alrededor y objetos en movimiento que iluminan con fluidez los entornos estáticos.  Estas funciones requieren de muchos más cálculos, que por lo general superarían la capacidad del procesador para las tasas de cuadros que queremos obtener del motor. Para permitir que Overwatch se ejecute en tasas de cuadros altas y ofrezca esas funciones avanzadas de iluminación, calculamos de manera previa tanta información de iluminación como sea posible y agrupamos los resultados para usarlos en el cliente. 

Veamos más de cerca la información que utilizamos en Overwatch para habilitar algunas de estas funciones de iluminación. Para las cosas que no se mueven, como muros, pisos y techos, construimos varios elementos de datos. El primer elemento de datos le indica al motor cuánta luz topará con una superficie y de qué dirección proviene dicha luz. Por lo general, estos datos se conocen como “mapas de luz” y los motores almacenarán diferentes “sabores” de datos en los mapas de luz.  

 

En esta imagen pueden ver un ejemplo de cómo se generan los mapas de luz para las superficies de un mapa.  A la izquierda se encuentra una composición final de toda la iluminación.  Al centro, solo se aplicaron los gráficos de pruebas en las superficies.  Nuestros artistas usan esta vista para asegurarse de que se almacenen suficientes datos de iluminación para la superficie y lograr el resultado visual que buscan.  A la derecha, tenemos un ejemplo de cómo el motor agrupa estos mapas de luz para minimizar la memoria que ocupan.

Cuando lanzamos Overwatch, generamos color y dirección para toda la luz que topa con una superficie.  Usamos los datos de dirección para variar el color en superficies irregulares. Cuanto más apunte la superficie a esa dirección, mayor color recibirá. Para Overwatch 2, ahora generamos tres direcciones de iluminación, lo que nos permitirá variar cada uno de los canales de color (rojo, verde y azul) de forma independiente. El resultado de las direcciones adicionales profundiza la intensidad de la iluminación ambiental, que a su vez aumenta la calidad de imagen.

Para objetos fijos, generamos datos que le indican al objeto qué tanto del entorno circundante se encuentra visible. Por lo general, estos datos se denominan “oclusión ambiental”. Comenzamos a generar estos datos en varios mapas tras el lanzamiento de Overwatch, como París y La Habana. Para Overwatch 2, todos los mapas generarán estos datos y esto aumenta la calidad de los elementos visuales. 

 

 

Para los elementos que sí se mueven, como los personajes, generamos muchas posiciones de muestra en el mundo y codificamos los datos de iluminación para cada una de ellas (el mismo tipo de datos que construimos para objetos fijos).  Cuando un objeto en movimiento se acerca a uno de estos puntos, el elemento usa esos datos para iluminarse. En Overwatch 2, generaremos muchas más posiciones de muestra, sobre todo en el aire. Esto quiere decir que los objetos en movimiento se verán mejor que nunca.  

 

Si sintonizaron nuestro panel durante la BlizzConline, pudieron observar cómo algunos mapas tenían varios entornos distintos de iluminación. Queremos compartir tantos datos como fueran posibles entre cada entorno para que el tamaño de descarga e instalación del disco se mantenga razonable. La tecnología del estado de entorno permite que el motor reúna varios entornos de iluminación para un mapa, eso da lugar a que una gran parte de los datos precalculados que mencionamos antes se compartan entre esos entornos de iluminación agrupados. Esto reduce en gran medida el tamaño de los datos, lo que significa que nuestros jugadores no tendrán que descargar e instalar tantos datos por variante. Más calidad y variantes de iluminación, y menos datos: todo gracias a la función de estado de entorno.


Gracias a los estados de entornos, Overwatch 2 se sentirá más dinámico a la vez que el flujo de trabajo de nuestros artistas mejora, lo que les permitirá crear un mundo colorido para que ustedes lo disfruten. ¡Esperen muchas aventuras envolventes por todo el planeta, con entornos cambiantes y elementos visuales asombrosos en Overwatch 2!

Artículo siguiente

Noticias destacadas