☰ Menu

08.10.2026 · Signal Titans Editorial

Como a Moonlight Kids projetou o estado de loop temporal e o streaming no Unity 6

A desenvolvedora Moonlight Kids detalhou a arquitetura de streaming por blocos, persistência de estado e otimizações de renderização em Echo Weaver no Unity 6.

Ilustração editorial mostrando uma ampulheta de vidro transparente com areia dourada cercada por fragmentos brilhantes de um mapa em tom de verde-azulado sobre um fundo azul-marinho escuro.

A desenvolvedora independente Moonlight Kids e a publicadora Akupara Games detalharam a arquitetura por trás de Echo Weaver, um jogo de aventura com loop temporal desenvolvido no Unity 6. Após migrar do Unity 2021 LTS, utilizado pela equipe de três pessoas no projeto anterior The Wild at Heart, o estúdio criou sistemas personalizados de streaming e gerenciamento de estado para manter um mundo interconectado sem telas de carregamento.

Bloqueio por conhecimento e persistência de estado

Em vez de depender de melhorias físicas permanentes, Echo Weaver utiliza uma progressão baseada no conhecimento do jogador, na qual o mundo é reiniciado continuamente enquanto as informações são mantidas. Para gerenciar esse estado de forma eficiente, a equipe dividiu os dados do sistema entre dados efêmeros da partida e a memória persistente do jogador. Rotas do mapa descobertas e o avanço narrativo são serializados no disco, enquanto a geometria das fases reinicia seu estado dinamicamente. Para itens transportáveis do inventário, a transferência da posse do objeto para a camada de cena persistente evitou que os itens fossem duplicados ou desaparecessem durante as transições de streaming.

Divisão em blocos modulares e arquitetura de reinicialização

Para oferecer um streaming contínuo do mundo, o jogo divide seu mapa em blocos espaciais discretos. A geometria fixa do cenário e os marcadores de transição permanecem permanentemente carregados em cenas em segundo plano. Os dados temporários — incluindo a instância do jogador, o gerenciador do jogo e os contadores da partida — residem em uma cena principal leve. Quando o loop é reiniciado, o sistema descarrega os blocos de ambiente ativos, limpa um dicionário na memória contendo chaves de texto específicas da partida e descarta e recria a cena principal antes de carregar a área inicial.

Otimização de gráficos e renderização

A arte 2D feita à mão apresentou desafios específicos de renderização e memória durante o desenvolvimento. A ativação da compressão de atlases de textura reduziu o consumo de memória ativa para cerca de 1 GB. Elementos decorativos do ambiente são removidos dos blocos do mapa durante a etapa de compilação e recriados assincronamente ao longo de vários quadros para evitar picos no encadeamento principal. O estúdio também criou uma ferramenta própria de achatamento de sprites para mesclar elementos repetidos em chamadas de desenho únicas, reduziu as camadas de textura de iluminação de seis para três e substituiu o código antigo de agrupamento de objetos pela solução nativa em C# do Unity e pelo Composite Collider 2D. O Frame Debugger do Unity foi usado ao longo de todo o desenvolvimento para isolar quebras de chamadas de desenho e otimizar o desempenho do agrupamento.

Ilustração editorial gerada por IA; não é uma fotografia documental.

Fonte: Echo Weaver: Building a time-loop metroidbrainia in Unity 6