Criação de ondas: desenvolvimento de mecânicas de água realista para Still Wakes the Deep na UE5

7 de novembro de 2024
Olá, pessoal! Sou o Joe Wheater, programador do estúdio The Chinese Room. Recentemente participei da equipe de mecânicas de água do nosso jogo de terror narrativo Still Wakes the Deep. O jogo foi lançado em junho para PC, PlayStation 5 e Xbox Series X|S, e coloca os jogadores dentro de uma plataforma de petróleo no Mar do Norte, em 1975, onde um horror desconhecido sobe a bordo. Cameron ‘Caz’ McLeary precisa navegar pela estrutura em colapso e procurar uma maneira de voltar para casa.
O cenário principal do jogo faz com que os jogadores se vejam cercados de água (quase) o tempo todo, seja nos níveis inundados da plataforma ou no gélido Mar do Norte abaixo deles. E nosso objetivo era fazer com que cada gota parecesse o mais ameaçadora e realista possível. Aqui, compartilho a jornada de criação de uma mecânica de água realista na Unreal Engine 5, os resultados e as principais dicas para outros desenvolvedores que desejam mergulhar em aventuras aquáticas.

Nosso desafio

Nosso desafio era criar água que parecesse sempre presente, que levasse os jogadores ao limite, e que fosse realista e punitiva, mas nunca impossível. No jogo, há dois tipos de água: a que entrou e está tomando conta da plataforma, além do colossal Mar do Norte que a cerca. 

Os dois tipos têm um papel a desempenhar para intensificar a atmosfera e a tensão dentro do jogo, além de explorar alguns dos medos mais primitivos dos jogadores, incluindo claustrofobia (medo de espaços pequenos), submecanofobia (medo de objetos feitos por humanos submersos na água), tanatofobia (medo da morte), autofobia (medo do isolamento), talassofobia (medo de águas profundas), nictofobia (medo do escuro) e acrofobia (medo de altura).
Os jogadores se encontram presos numa plataforma de petróleo em ruínas num dos ambientes mais perigosos do mundo. Com as ondas do Mar do Norte batendo lá embaixo, como eles conseguirão escapar?
Embora ambos contribuam para o sentido geral da história e do susto no jogo, eles são muito diferentes em sua aparência, mecânica e função. Aqui, vamos compartilhar como trabalhamos com a água interna da plataforma: seus níveis sobem e descem junto com a tensão do jogo e os jogadores, muitas vezes, se encontram bem próximos dela.

Uma sensação de afundamento: desenvolvendo o visual

À medida que você joga Still Wakes the Deep, os segredos e a história começam a se revelar: os membros da tripulação começam a se transformar, a plataforma desmorona com pedaços de metal despencando nas ondas agitadas do mar abaixo, e a água começa a entrar e inundar os níveis inferiores da plataforma. Infelizmente para Caz, e para o jogador, ele terá que se arrastar para dentro da fera e explorar os níveis inundados da plataforma para progredir.
Ao longo de "Still Wakes the Deep", os jogadores terão que navegar pelos níveis inferiores inundados da plataforma enquanto nadam para escapar, ativar mecânicas ou encontrar objetos.
 
Foi uma escolha de design peculiar ter vários capítulos do jogo se passando na água. Queríamos oferecer ao jogador novas mecânicas para explorar e dominar, o que apresentou desafios interessantes e agradáveis para a nossa equipe. Sabendo que a água é uma das principais ameaças do jogo, queríamos que sua aparência correspondesse ao seu poder e transmitisse detalhes, profundidade e escuridão.

Para criar essa aparência, desenvolvemos uma simulação de água rasa bidimensional usando o sistema de efeitos visuais do Niagara da Unreal. A simulação 2D simula apenas a superfície da água e calcula equações que descrevem seus movimentos. Assim, quando a água flui rapidamente (principalmente durante as sequências de inundação), ela provoca mudanças na altura da superfície, gerando ondas e ondulações que dão um visual selvagem e ameaçador. 

Essas sequências parecem frenéticas e fora de controle, mas, na verdade, configuramos sistemas de volume de água para dar conta delas. Marcamos as malhas das paredes e do chão para que possam ser incorporadas a uma textura de mapa de altura. Essa textura de mapa de altura representa o espaço onde a água pode fluir, permitindo que essas malhas atuem como limites dentro da simulação, fazendo com que a água possa rebater e refletir no impacto.
 
Muitas vezes, o jogador tem que mergulhar e navegar por salas quebradas e em colapso, ou lutar contra uma correnteza violenta para chegar à próxima seção. O cenário de Still Wakes the Deep é escuro e metálico. Queríamos garantir que os níveis se concentrassem bastante no uso da água como obstáculo, adicionando um grau extra de dificuldade sem se tornar impossível ou frustrante.

Para isso, utilizamos o pós-processamento para criar a sensação de estar debaixo d'água. Para adicionar dimensões extras à água e fazer com que pareça que os objetos estão fora de foco, também usamos volumes de neblina, partículas, padrões de luz cáustica, profundidade de campo, desfoque e efeitos de bloom.
 
A visão do jogador é intencionalmente desfocada ao passar pela superfície da água. Isso não apenas adiciona uma jogabilidade dinâmica interessante e um nível de desafio, como também ajuda o jogador a perceber que está debaixo d'água e que precisa se mover antes de ficar sem fôlego.
Também adicionamos volumes de neblina e sistemas de partículas na água para dar a impressão de que havia outros contaminantes nela, tornando-a turva e densa. Adicionamos camadas de poeira, detritos e bolhas para dificultar ainda mais a visão. Esses sistemas de partículas se mostraram especialmente úteis para criar uma sensação de movimento, pois os jogadores que se movem pela água fazem com que as bolhas surjam e flutuem até a superfície, a poeira gire suavemente e a correnteza flua.

O pós-processamento e os sistemas de partículas em ação. Da esquerda para a direita, vemos a ausência de pós-processamento/partículas/neblina/luz, depois a ausência de pós-processamento com neblina, luz e partículas ativadas, e, por fim, o produto final com todos os sistemas funcionando.

Mergulho Profundo: desenvolvendo a sensação

Queríamos garantir que a elevação do nível da água transmitisse uma sensação de urgência tão intensa quanto em terra firme, e que a jogabilidade refletisse a tensão e o horror da história. Para isso, desenvolvemos e implementamos um sistema de bombeamento que adicionou velocidades e correntes à água, não apenas para dar uma sensação de velocidade e emoção, mas também para apoiar o movimento do jogador.

O sistema de bombeamento é formado por objetos em forma de cápsula que injetam velocidades na simulação da água, criando ondas e ondulações que se movem por sua superfície para indicar direção. Em seguida, acoplamos várias bombas aos braços, mãos e pés do personagem protagonista, o que fez com que as bombas se cruzassem, criando um fluxo realista e em tempo real nas ações do jogador dentro da água.
 
Para aumentar a imersão, queríamos que a água não apenas se movesse de forma dinâmica com as ações do jogador, mas também influenciasse os objetos submersos nela. Percebemos que a simulação da água não estava fazendo com que objetos físicos, como barris de óleo ou vergalhões da plataforma, reagissem ao movimento da superfície. 

Para resolver isso, utilizamos a funcionalidade de leitura de GPU do Niagara, que nos permitiu consultar a simulação e conhecer a direção do fluxo, a força e a altura da superfície em locais específicos. Com esses dados, pudemos aplicar forças de flutuação para fazer os objetos boiarem e usar forças de fluxo da água para mover os objetos de acordo com a simulação da superfície, criando a impressão de que os objetos estavam se movendo em correlação direta com o jogador.
 
Também testamos outras mecânicas durante o desenvolvimento que poderiam ter aumentado ainda mais a imersão e a autenticidade, mas, infelizmente, elas acabaram prejudicando a experiência de jogabilidade. 

Por exemplo, investigamos como seria a sensação de usar macacões que ficariam encharcados ao nadar. Isso teria um impacto em nosso personagem principal, Caz, um engenheiro num dos ambientes mais frios do planeta, e que estaria usando essa vestimenta pesada que diminuiria sua velocidade de natação e de flutuação, exatamente como aconteceria numa situação real.
 
Uniforme usado pela tripulação do Beira D. Brincamos com a ideia de adicionar uma mecânica realista de encharcamento a Caz, para que, ao nadar, o jogador absorvesse água em tempo real. Devido a uma combinação de materiais pesados e camadas, ele afundou extremamente rápido, tornando os níveis de água desafiadores demais.
Tentamos essa implementação, mas descobrimos que era frustrante jogar assim. Além disso, ficava difícil transmitirmos ao jogador o que estava acontecendo. Além disso, essa velocidade lenta de natação limitava a distância que o jogador conseguia nadar debaixo d'água com uma única respiração e restringia o tamanho do espaço que a equipe de design desenvolveu para a jogabilidade de natação. Acabamos removendo essa mecânica para proporcionar uma experiência mais fluida, mas foi uma ideia interessante! 

Ferramentas para criação de água realista

Descobrimos que a Unreal tinha um conjunto de ferramentas e tecnologias integradas que poderíamos usar e nos inspirar ao criar a água para Still Wakes the Deep, incluindo: 
     
  • Editor de Material: Utilizamos o editor de material para criar camadas de efeitos baseados em textura sobre os dados da simulação. Isso foi extremamente prático para adicionar efeitos ao elemento visual da água e nos ajudou na narrativa à medida que o jogo avançava.
 
  • Niagara: Usamos o Niagara tanto para a simulação em si quanto para muitos dos sistemas de partículas, desde canos estourados até detritos na água. Também achamos útil o aprendizado sobre as etapas de simulação disponíveis no Niagara. Essas informações foram essenciais para nos ajudar a entender como as simulações de fluidos são montadas na Unreal.
 
  • Sistema de água: Nosso sistema de água lê os dados de simulação do Niagara usando uma interface de dados do sistema. Isso permite que outros sistemas do jogo reajam dinamicamente ao estado atual da simulação.
 
  • Volumes de Neblina: Utilizamos um material volumétrico para renderizar a neblina em nossos volumes de água, o que significa que o material foi capaz de obter informações da simulação de água por meio da amostragem de um alvo de renderização de matriz 2D.

Escolhendo a Unreal Engine 5

Eu sou Nick Slaven, diretor técnico de Still Wakes the Deep do estúdio The Chinese Room. 

A Unreal foi a escolha natural para Still Wakes the Deep. A fidelidade e o controle sobre o processo de criação que a Unreal oferece, além de suas capacidades como engine, eram exatamente o que precisávamos para realizar o conceito de jogo imaginado pelo nosso então diretor criativo, Dan Pinchbeck.

A experiência da equipe com a Unreal era variada, mas, por meio de nossa parceria com a Epic, conseguimos organizar treinamentos para atualizá-los sobre a Unreal 4.26, antes de migrar para a Unreal Engine 5. A atualização entre as versões da engine nos permitiu aproveitar as novas tecnologias da Epic, como o Nanite e o Lumen, que não apenas elevaram a aparência e a atmosfera do jogo, como também melhoraram a eficiência do nosso fluxo de trabalho. Funcionalidades como a iluminação em tempo real no Lumen nos permitem ver o efeito das alterações na configuração de iluminação imediatamente, sem precisar esperar pelo processamento de mapas de sombras.

Além disso, a tecnologia de água fornecida pela Unreal nos deu uma boa simulação do Mar do Norte, e suas ferramentas de shader nos forneceram os blocos de construção para nossa simulação interna de água. Também fizemos uso extensivo do MetaHuman para todos os trabalhadores da plataforma no jogo, o que trouxe um novo nível de realismo e narrativa.

Por fim, conseguimos aproveitar a tecnologia do Control Rig para a tripulação transformada da plataforma de petróleo Beira D, o que nos ajudou a dar vida a criaturas sobrenaturais convincentes que assustam e intrigam o jogador.

Obtenha a Unreal Engine hoje mesmo!

Obtenha a ferramenta de criação mais aberta e avançada do mundo.
Com diversas funcionalidades e acesso ao código-fonte, a Unreal Engine está pronta para uso imediato.

Blogs semelhantes


Jogos

A Unreal Engine 5.5 já está disponível

Esta versão traz grandes melhorias na criação de animações, renderização, produção virtual, desenvolvimento de jogos para dispositivos móveis, conjuntos de ferramentas para iteração de desenvolvedores e muito, muito mais.

Notícias

A Fab, a nova loja de conteúdo unificada da Epic, está sendo lançada hoje!

Hoje, a Epic está lançando a Fab, um destino único em que você pode descobrir, comprar, vender e compartilhar ativos digitais. A nova loja oferece suporte a todos os tipos de criadores com conteúdo para uso na Unreal Engine, Unity 3D, UEFN e outras ferramentas de criação de conteúdo digital.

Jogos

Fique por dentro das grandes novidades da Unreal Fest Seattle 2024

Mergulhe nos anúncios da Epic Games na Unreal Fest Seattle 2024 para saber mais sobre a economia nas taxas de royalties da Unreal Engine por meio da Epic Games Store, as novas funcionalidades da UE 5.5, as Tartarugas Ninja no UEFN e muito mais.