Overwatch

Estados de Ambiente em Overwatch 2: nos bastidores com a equipe de engenharia

Estados de Ambiente em Overwatch 2: nos bastidores com a equipe de engenharia

Oi, pessoal! Meu nome é Marco Alamia e eu atuo como engenheiro de software na equipe de Overwatch. Como acabamos de trabalhar em uma nova tecnologia para Overwatch 2, achamos que seria uma ótima oportunidade para dar um vislumbre de como melhoramos uma engine de jogo. Para me ajudar nessa explicação, chamei mais dois desenvolvedores da equipe de Overwatch: Bruce Wilkie e Fabien Christin.

Essa nova tecnologia que adicionamos à engine se chama Estados de Ambiente e logo se tornou um dos nossos recursos favoritos para projetar e criar mapas. Embora o recurso tenha sido desenvolvido e refinado com a engine e as ferramentas de Overwatch 2, a ideia inicial veio da mente de Fabien, nosso talentoso artista de iluminação. Pedi para o Fabien explicar como ele pensou nessa ideia que revolucionou a forma como a equipe cria os mapas e nos guiar por seu processo de desenvolvimento.

Vamos conferir os Estados de Ambiente!


Apresentando a ideia

Fabien: Overwatch se passa em um mundo colorido e vibrante, e grande parte da personalidade do jogo é transmitida pelos mapas. A criação de um mapa começa com os designers de nível planejando a arquitetura inteira do lugar com caixas cinzas a fim de criar uma jogabilidade balanceada e interessante. A parte mais importante nessa etapa é projetar um mapa em que seja divertido jogar! Depois de muitas horas de teste, é a vez dos artistas de ambiente transformarem essas caixas cinzentas em construções cuidadosamente esculpidas e usar recursos de ambiente para dar vida aos locais que os jogadores encontrarão. 

Além do ambiente, criamos a iluminação que deve acompanhar a história que o mapa conta. Em Overwatch 2, queríamos criar climas interessantes, capazes de mudar a atmosfera do lugar por completo. Imagine viajar para Numbani e ver essa cidade futurista iluminada por um pôr do sol quente africano, ou pegar um dia chuvoso em Paris, com todas as lojas exibindo luzes aconchegantes que convidam a entrar e comer um croissant até a chuva parar.

É para isso que os Estados de Ambiente foram criados. Com esse novo sistema, conseguimos dividir todos os principais componentes de iluminação, som e efeitos em recursos autossuficientes que podem ser combinados para criar o que chamamos de Cenários de Ambiente. Podemos compartilhá-los em vários mapas e também podemos ter vários Cenários num só mapa.

Um exemplo disso é a Necrópole, um mapa frenético de combate até a morte. Você provavelmente jogou nele em seu cenário noturno, que explora o contraste das cores noturnas azuladas e frias com o laranja quente das tochas acesas nas construções.

Mas vamos supor que a gente queira experimentar um cenário diferente e resolva testar as cores quentes do deserto do Templo de Anúbis. Com o novo sistema de Estados de Ambiente, só precisamos copiar o Estado de Ambiente do Templo de Anúbis e aplicá-lo à Necrópole. 

Olha só que beleza! Mas podemos deixar ainda melhor alterando a posição do sol para criar sombras mais interessantes. Para isso, nós criamos um novo Estado de Ambiente que vai substituir apenas a posição do sol e colocamos esse novo “bloco” sobre o do Templo de Anúbis. 

Prontinho!

Graças à praticidade dos Estados de Ambiente, podemos criar protótipos de iluminação para nossos mapas em poucas horas. Fazer essas iterações rapidamente nos permite experimentar mais, abusar mais da criatividade e deixar os mapas mais diversificados.

E isso não é tudo. Os exemplos que mencionei foram quase puramente estéticos, mas os Estados de Ambiente também podem ser misturados dinamicamente para criar oportunidades de jogabilidade novas e marcantes. Imagine que você partiu para uma missão na Necrópole para consertar a conexão de um satélite da Overwatch e, enquanto enfrenta um ataque do Setor Nulo, uma tempestade de areia se forma no local e se ergue ao ser redor! Podemos deixar suas missões um pouco mais desafiadoras adicionando um novo Estado de Ambiente de tempestade de areia no Cenário Ensolarado que aumentará lentamente a cobertura das nuvens e a densidade do efeito da areia.

 

Com essa nova tecnologia, podemos criar todo tipo de mudança climática, como tempestades, nevascas e outros cenários de ambiente fantásticos, para tornar a jogabilidade diferente a cada partida.

Vamos falar com o Marco para ver o lado mais técnico de como os Estados de Ambiente funcionam por trás das cortinas.

Implementando os Estados de Ambiente

Marco: A visão do Fabien era ambiciosa, então precisávamos projetar um sistema poderoso para satisfazer as necessidades de ambiente de Overwatch 2. Depois de várias ideias, decidimos permitir que vários Estados de Ambiente estivessem presentes ao mesmo tempo, mas ordenados cuidadosamente em uma pilha. Essa pilha pode mudar dinamicamente, então, a qualquer momento, um Estado de Ambiente pode ser adicionado ou removido. O pulo do gato é quando a engine olha para essa pilha e mistura todos os Estados de Ambiente para criar o visual final. Se você já usou o Photoshop, é como quando temos várias camadas mescladas para criar a imagem final.

A ideia é que cada Estado de Ambiente possa descrever algum aspecto do próprio ambiente, como a força e a direção do vento ou a cor do sol. Quando o estado é enviado para a pilha, apenas os aspectos fornecidos aparecem no resultado. Essa é a pilha da boate do Lúcio no Rio, por exemplo, onde um Estado de Ambiente que muda a exposição da câmera e os aspectos de gradação de cor é enviado para a pilha:

 

O Estado de Ambiente na parte inferior mostra todos os aspectos do mapa, e o superior muda a gradação de cores para criar a atmosfera assustadora e ameaçadora da área de Diablo. Estados de Ambiente podem ser adicionados e removidos de uma pilha dinamicamente durante o jogo, permitindo mais ação e deixando os mapas mais vivos.

Aspectos  

Com as instruções da equipe artística e de Fabien, identificamos vários aspectos importantes que queremos que os Estados de Ambiente possam definir. O pós-processamento, por exemplo, foi o primeiro recurso da engine convertido em um aspecto. O pós-processamento é uma constante em todas as engines modernas: é usada para aplicar vários filtros e efeitos, como controlar o contraste, o brilho e a saturação da imagem final. Ajustar o contraste e o brilho da imagem dinamicamente de acordo com o que está acontecendo no jogo deixa tudo mil vezes mais vivo e dinâmico, e isso agora é possível em Overwatch 2, graças à tecnologia de Estados de Ambiente.

O aspecto de névoa é outro recurso poderoso do nosso novo sistema. Ao alterar seus parâmetros, podemos mudar a aparência e a atmosfera da névoa, o que permite que a equipe artística faça o ambiente evoluir visualmente de acordo com o modo de jogo, as posições dos jogadores e até o tempo. Por exemplo, podemos deixar o mapa mais assustador para o Halloween, ou deixar a névoa mais espessa em algumas áreas de um mapa, ou até fazer uma tempestade de areia crescer com o tempo em uma das nossas novas Missões de Herói.

Temos vários aspectos que tangem outras propriedades visuais, como sombras formadas das nuvens no mapa, e até propriedades que não são visuais, como a força e a direção do vento. Dois dos aspectos mais importantes que podemos mudar são os aspectos do Sol e do Céu. Como os nomes sugerem, eles permitem que mudemos alguns recursos principais do Ambiente, como a posição e a cor do sol, as nuvens que estamos usando (se estivermos usando), e se é dia ou noite. Como dá para perceber, essa é uma parte poderosa do sistema de Estado de Ambiente, porque ela permite que mudemos o visual e o clima do mapa de maneiras drásticas.

Esses dois aspectos (Sol e Céu) melhoram uma das áreas mais avançadas da engine: o sistema de iluminação. A iluminação é muito importante em Overwatch 2, pois ela ajuda a definir o visual, a atmosfera e o clima dos ambientes. Acontece que qualquer mudança nesse sistema pode afetar a memória e o desempenho, então precisamos tomar muito cuidado com o que permitimos. Por sorte, temos um excelente engenheiro na equipe, Bruce Wilkie, que tem muita experiência com sistemas de iluminação e pode nos ajudar a criar coisas lindas sem alterar o desempenho necessário em de um jogo de tiro como Overwatch 2.

Iluminação

Bruce: Os visuais coloridos e vibrantes de Overwatch exigem muito trabalho e dedicação. Sempre que jogo uma partida em um dos nossos vários mapas magníficos, eu lembro o cuidado que cada ambiente de iluminação recebe. A luz do sol rebate em salas, refletores iluminam ruínas e festivais noturnos ganham vida com as cores — para ficar só em alguns exemplos da importância da iluminação para o clima do nosso jogo. Enquanto fazíamos a engine de Overwatch, trabalhamos ao lado da equipe de arte para dar os recursos de iluminação necessários para traduzir as artes conceituais 2D para os recursos 3D do jogo, como a luz refletindo em superfícies (geralmente chamada de Iluminação Global), metais refletindo o mundo ao redor e a luz dos objetos mudando sutilmente em ambientes estáticos. Esses recursos precisam de vários cálculos, o que pode exigir muito mais da CPU e reduzir a taxa de quadros que queremos da engine. Para permitir que Overwatch seja executado a uma taxa de quadros alta e ainda tenha esses recursos de iluminação avançados, calculamos antecipadamente o máximo de informações de iluminação que pudermos, compactamos o resultado e usamos esses dados no cliente do jogo. 

Vamos dar uma olhada nos dados que usamos em Overwatch para gerar alguns desses recursos de iluminação. Para coisas estáticas, como paredes, pisos e tetos, fazemos vários conjuntos de dados. O primeiro informa à engine quanta iluminação atinge a superfície e de onde vem a luz. Em geral, esse dado é chamado de “mapa de luz” e diferentes engines armazenam diferentes “estilos” de dados em mapas de luz.  

 

Nessa imagem, podemos ver um exemplo de como mapas de luz são gerados nas superfícies de um mapa. À esquerda temos a composição final de toda a iluminação. No meio, apenas o mapeamento foi renderizado sobre as superfícies. Nossos artistas observam essa aparência para ter certeza de que os dados de luz serão guardados nas superfícies para que o resultado esperado seja obtido. À direita temos um exemplo de como a engine compacta esses mapas de luz para diminuir a memória necessária.

Quando finalizamos Overwatch, geramos cores e direções para todas as luzes que tocam superfícies. Usamos a direção dos dados para variar as cores em superfícies angulares — quanto mais a superfície estiver naquela direção, mais cor vai receber. Em Overwatch 2, vamos gerar três direções de iluminação, o que nos permite variar cada canal de cor (vermelho, verde e azul) de forma independente. O resultado das novas direções aprofunda a vitalidade da iluminação do ambiente, e assim aumenta a qualidade da imagem.

Para objetos parados, geramos dados que dizem para o objeto quanto do ambiente ao redor é visível. Geralmente, esse dado é chamado de oclusão. Começamos a gerar esses dados em vários mapas depois que finalizamos Overwatch, como Paris e Havana. Em Overwatch 2, todos os mapas vão gerar esses dados, aumentando a qualidade do aspecto visual. 

 

 

Para coisas que se movem, como personagens, geramos várias posições de exemplo no mundo e gravamos os dados de iluminação para cada uma delas — o mesmo tipo de dados que usamos para objetos estáticos. Quando um objeto em movimento se aproxima de um desses pontos, ele usa os dados para se iluminar. Em Overwatch 2, geramos muito mais posições de exemplo, principalmente no ar, o que significa que objetos em movimento vão ficar ainda melhores.  

 

Se assistiu ao nosso painel na BlizzConline, você já viu uma amostra dos mapas com várias iluminações de ambiente diferentes. Para cada ambiente, queremos compartilhar o máximo de dados possível para deixar o download e o espaço de disco razoáveis. A tecnologia de Estado de Ambiente deixa a engine agrupar vários ambientes de iluminação para um mapa, permitindo que mais partes dos dados calculados previamente que mencionamos sejam compartilhadas entre essas iluminações de ambiente. Isso reduz bastante as marcações de dados, então os jogadores não vão precisar baixar e instalar tantos dados por variação. Temos mais qualidade de iluminação, mais variação de luz e menos dados, tudo graças ao recurso de Estado de Ambiente.


Os Estados de Ambiente vão deixar Overwatch 2 mais dinâmico, além de melhorar o fluxo de trabalho dos nossos artistas, permitindo que eles criem um mundo colorido para você. Vêm aí aventuras envolventes ao redor do mundo com ambientes dinâmicos e gráficos incríveis em Overwatch 2!

Próximo artigo

Destaques