Imagem cortesia de Matthieu Fiorilli

Chasing the Unseen utiliza a matemática fractal para gerar seus ambientes

Desenvolvedor de jogos independentes Matthieu Fiorilli |
23 de novembro de 2022
A Strange Shift Studio nasceu em 2022, em Montreal, e é uma desenvolvedora de jogos independentes de uma só pessoa fundada por Matthieu Fiorilli.
Chasing the Unseen é um jogo para escalar criaturas gigantes e explorar ambientes sobrenaturais gerados por matemática fractal. Sendo um desenvolvedor de jogos solo, ao assumir um projeto ambicioso como esse, eu sabia que precisava das ferramentas certas. Nesta publicação, apresentarei uma visão geral de como abordei esses desafios em Chasing the Unseen.
 

As ferramentas para dar autonomia a desenvolvedores independentes evoluíram muito nos últimos anos, e esse tipo de projeto não seria possível até bem recentemente. Esse projeto só pôde existir graças à Epic, à SideFX e outras, que se esforçam para disponibilizar essas ferramentas poderosas para qualquer pessoa.

Para encarar esse projeto ambicioso, eu sabia que precisava das ferramentas adequadas, e foi isso que encontrei por meio de uma simbiose entre a Unreal Engine e o Houdini.

As criaturas

Primeiro, vamos conferir as criaturas e o sistema de escalada.
Imagem cortesia de Matthieu Fiorilli
Captura de tela do jogo
Minhas criaturas são feitas no Houdini usando diversas ferramentas. Pegando o polvo como exemplo, eu uso as ferramentas tradicionais do Houdini para modelá-lo processualmente e, em seguida, faço uma simulação usando o recente multissolucionador do Houdini chamado Vellum. A simulação me fornece deformações muito naturais e fluidas. Depois, o desafio é levar as criaturas para a Unreal Engine e tornar possível escalá-las. Para essa tarefa, usei a poderosa ferramenta Dem Bones. Minha simulação de polvo no Houdini é pesada. Cada ponto da geometria tem sua própria animação, e não é algo que dá para simplesmente integrar a uma engine de jogo. O Dem Bones me permite gerar processualmente um conjunto de ossos e revestimentos para reconstruir a simulação com dados compatíveis com a engine de jogo. Isso significa que, em vez de ter uma animação em cada um dos 128.000 vértices/pontos do polvo, consigo ter uma animação em apenas 600 ossos.
Imagem cortesia de Matthieu Fiorilli
Simulação do Vellum incorporada usando o Dem Bones
Assim, eu posso levar a criatura para dentro da Unreal Engine e reproduzi-la em tempo real. É aqui que uso uma máquina de estado para misturar diferentes animações. Com base nas informações de revestimento geradas com o Dem Bones, posso gerar invólucros convexos processualmente para criar as colisões, que são levados para a Unreal Engine por meio de ferramentas personalizadas.
Imagem cortesia de Matthieu Fiorilli
Malhas de colisão na Unreal Engine
Uma malha de resolução mais baixa é gerada e levada para a Unreal para a escalada. Com uma mistura de Blueprint e C++, meu sistema de escalada consegue usar a malha de resolução mais baixa para fixar o personagem às criaturas.
Imagem cortesia de Matthieu Fiorilli
Sistema de escalada usando Blueprints e C++

Os ambientes

Já nos ambientes, eu uso matemática fractal e outras técnicas processuais. Fractais são fórmulas matemáticas curtas que geram formas que se repetem infinitamente. Um dos fractais mais conhecidos é o conjunto de Mandelbrot.
Imagem cortesia da Wikipédia
Imagem da Wikipédia do conjunto de Mandelbrot
O conjunto de Mandelbrot é um fractal 2D e seu nome é uma homenagem a Benoit Mandelbrot. Anos após sua descoberta, uma versão 3D análoga também foi descoberta: o Mandelbulb.

Isso levanta a questão: como colocar fractais em um jogo? Por meio da simbiose entre o Houdini e a Unreal Engine, eu consigo resolver esse problema. No Houdini, eu usei o projeto de graduação "VFX Fractal Toolkit" do Juraj Tomori para gerar os fractais. Em seguida, desenvolvi um pipeline em torno dele para preparar a geometria para ser integrada à Unreal Engine. Esse pipeline é usado em fractais e outros métodos procedurais de geração de malha (dependendo do nível).
Imagem cortesia de Matthieu Fiorilli
Malhas fractais geradas para um nível de jogo
Para preparar os fractais para a Unreal Engine, muitas tarefas diferentes tiveram que ser realizadas. Precisei remover detalhes, criar inclinações planas caminháveis, dividir as malhas em partes para a oclusão adequada na UE, reduzir malhas, gerar LODs, UVs e mapas de iluminação, entre outras coisas. Todo esse processo é automatizado e adaptado para atender aos requisitos da Unreal Engine.
Imagem cortesia de Matthieu Fiorilli
Captura de tela de um dos níveis do jogo
Por fim, depois de todos esses processos concluídos, o nível é construído na Unreal, e utilizo o sistema de iluminação para incorporar os mapas de iluminação. Como o nível é separado em várias partes, o sistema de oclusão da Unreal faz um ótimo trabalho desenhando apenas as malhas que vemos na câmera. O sistema de LODs da Unreal desenha as malhas apenas com a densidade necessária com base na distância da câmera. Para as colisões, eu gero uma malha separada de baixa resolução.
Imagem cortesia de Matthieu Fiorilli
Captura de tela de um dos níveis do jogo

Palavras finais

Essa é uma visão geral de como eu lido com as criaturas, com a escalada e com os níveis no meu jogo. É o fluxo de trabalho principal que uso durante o jogo e, quando necessário, posso introduzir diferentes variações de criaturas ou níveis.

Foi bastante desafiador encontrar soluções para resolver os desafios desse projeto, mas trabalhar como desenvolvedor independente me deu liberdade e flexibilidade para usar as ferramentas mais recentes para tornar isso possível. Espero que essa publicação tenha sido útil para dar a você uma ideia do processo técnico do projeto, mesmo que por cima, e que tenha dado a você algumas ideias do que é possível fazer com as ferramentas existentes.

Obrigado por ler! Chasing the Unseen será lançado para PC. Saiba mais do projeto em www.chasingtheunseen.com.

    Obtenha a Unreal Engine hoje!

    Obtenha a ferramenta de criação mais aberta e avançada do mundo.
    Com diversos recursos e acesso a códigos-fonte inclusos, a Unreal Engine vem carregada e pronta para usar.
    GDC 2023
    Evento
    15 de fevereiro

    GDC 2023

    Junte-se à Epic Games na GDC 2023 para o State of Unreal, palestras técnicas esclarecedoras e a oportunidade de experimentar os jogos mais recentes feitos na Unreal Engine em nossos estandes na sala de exposições. 
    GDC 2023
    Evento

    GDC 2023

    Junte-se à Epic Games na GDC 2023 para o State of Unreal, palestras técnicas esclarecedoras e a oportunidade de experimentar os jogos mais recentes feitos na Unreal Engine em nossos estandes na sala de exposições. 
    A Unreal Engine 5.1 chegou!
    Notícias
    15 de novembro

    A Unreal Engine 5.1 chegou!

    Esta versão usa as funcionalidades inovadoras lançadas na UE5 como base, e os levam a outro nível de robustez, eficiência e aplicabilidade em vários setores. Veja as novidades.
    A Unreal Engine 5.1 chegou!
    Notícias

    A Unreal Engine 5.1 chegou!

    Esta versão usa as funcionalidades inovadoras lançadas na UE5 como base, e os levam a outro nível de robustez, eficiência e aplicabilidade em vários setores. Veja as novidades.
    A Unreal Engine 5.1 oferece novos recursos para produções cinematográficas, transmissões, animações e eventos ao vivo
    Notícias
    3 de novembro

    A Unreal Engine 5.1 oferece novos recursos para produções cinematográficas, transmissões, animações e eventos ao vivo

    A Unreal Engine oferece um conjunto de ferramentas mais extenso, robusto e acessível para canais de mídia e entretenimento, que envolvem desde produções virtuais com efeitos visuais na câmera a projetos animados e transmissões e eventos ao vivo de ponta. Dê uma olhada no que há de novo.
    A Unreal Engine 5.1 oferece novos recursos para produções cinematográficas, transmissões, animações e eventos ao vivo
    Notícias

    A Unreal Engine 5.1 oferece novos recursos para produções cinematográficas, transmissões, animações e eventos ao vivo

    A Unreal Engine oferece um conjunto de ferramentas mais extenso, robusto e acessível para canais de mídia e entretenimento, que envolvem desde produções virtuais com efeitos visuais na câmera a projetos animados e transmissões e eventos ao vivo de ponta. Dê uma olhada no que há de novo.