DESENVOLVIMENTO

Echo Weaver: como 3 devs usaram Unity 6 para resetar um mundo em loop

Moonlight Kids e Akupara Games lançaram o metroidbrainia em 8 de outubro de 2026. A equipe detalha chunk streaming, reset por cena e otimização 2D que servem de referência para indies.

Ilustração editorial de um mundo 2D desenhado à mão dividido em chunks, com relógio em espiral representando um loop de tempo
Imagem: Unity Blog · publicação oficial relacionada à matéria. Fonte ↗

Echo Weaver, metroidbrainia com time-loop da Moonlight Kids e da Akupara Games, chegou em 8 de outubro de 2026 a PC e consoles. Em entrevista publicada no Unity Blog, o estúdio de três pessoas explicou como construiu em Unity 6 um mundo interconectado sem telas de carregamento, que reinicia a cada loop mas preserva parte do progresso do jogador.

Para quem desenvolve, o valor está menos no lançamento e mais nas decisões práticas: separar o que é volátil do que é permanente, tratar persistência como regra de design e usar ferramentas de profiling cedo.

O problema: loop sem save, mas com persistência

A Moonlight Kids tinha enfrentado erros de save state no jogo anterior, The Wild at Heart. A premissa de time-loop parecia uma saída: se tudo reinicia, não haveria o que salvar. Na prática, a equipe concluiu que ainda precisava registrar quase tudo. Como o mundo carrega e descarrega chunks conforme o jogador anda, o jogo precisa lembrar, dentro de um loop, se uma parede de atalho foi quebrada ou se um NPC já foi consultado. A diferença é que, se algo dá errado, o jogador pode simplesmente reiniciar o loop.

Arquitetura de reset

O programador Ankit Trivedi dividiu o mundo em chunks, cada um com um script próprio, e criou um processo de build customizado que remove conteúdo pesado antecipadamente. A estrutura funciona assim:

  • Geometria do mundo e marcadores de transição ficam em cenas e permanecem sempre carregados.
  • Uma cena leve de essenciais guarda o estado volátil: game manager, jogador e dados da run.
  • No reset, os chunks ativos são descarregados, a cena de essenciais é descartada e recarregada, e só voltam os chunks necessários para o início do loop.
  • O estado da run fica em um dicionário em memória com chaves de texto, que é limpo no reset.
  • Dados que sobrevivem entre loops, como contagem de loops, habilidades vistas e personagens com quem se falou, são serializados em disco.

Cada objeto consulta a própria chave quando seu chunk entra em streaming, normalmente lendo um bool ou um int.

Houve problemas. Portas de transição persistentes não reiniciavam o estado de interface, então deixaram de ser persistidas: o componente interativo de cada porta é clonado a cada reset, algo que, segundo o programador, não pesa com cerca de 20 objetos. Itens carregáveis, como chaves, sumiam do inventário ou duplicavam por causa da posse por chunk, e foram movidos para a camada de cena persistente.

JOGUE NA RPLAY

Conheça jogos publicados na Rplay Games

Jogue grátis online, sem baixar.

Ver catálogo →
Capa de Pac Horror FPS 🎮 WEB
Finalizado

Pac Horror FPS

por Retro Games
CasualTerror

PAC Horror FPS é um FPS de terror retrô inspirado na era PS1. Explore cenários sombrios, colete fragmentos e sobreviva às assombrações enquanto tenta completar cada …

👁️299views
⭐—avaliações
💬0comentários
🎮 Ver jogo

Design por conhecimento, não por habilidade

O mundo é aberto desde o primeiro minuto e não há bloqueio por habilidades. A progressão depende do que o jogador aprende. A regra de persistência é narrativa: a personagem Weaver mantém suas memórias entre loops, então o que ela viu pode ser mostrado ao jogador. Isso orienta a tela de progresso e a apresentação das fases. Quando uma área oculta é descoberta, a arte de primeiro plano some. Nos testes, jogadores esqueciam atalhos encontrados, e a equipe tornou esse efeito permanente nas áreas mais revisitadas.

Level design sem atalhos permanentes

Como a parede quebrada volta a existir após o reset, o designer Chris Sumsky trabalhou em duas escalas. Dentro de um loop, que pode durar vários minutos conforme o tempo coletado, vale o repertório clássico de metroidvania, já que tudo se resolve no mesmo loop. Para atalhos maiores, a solução é ocultação: uma passagem escondida atrás de arte de primeiro plano numa ponta e visível na outra.

O relógio também mudou. O contador por segundo gerava estresse nos testes e foi trocado por blocos de um minuto, chamados de "bells" no jogo. Cada loop começa com 1 minuto, e cristais de tempo podem estender o relógio ou ser sacrificados para cura.

VÍDEO RELACIONADO

Vídeo oficial/relacionado do YouTube incorporado sem download pela Rplay News.

Otimização 2D de arte desenhada à mão

A arte sem padrões repetidos dificulta o batching. As medidas relatadas foram:

  • Compressão de atlas: estavam sem compressão, e ativá-la levou a memória a cerca de 1 GB.
  • Carregamento: elementos decorativos são removidos dos chunks no build e reinstanciados de forma assíncrona, poucos objetos por frame, com um sistema de vizinhos que mantém chunks adjacentes carregados para esconder pop-in.
  • Batching: uma ferramenta própria achata grupos de sprites em uma imagem e um draw call. O céu de um bioma foi reduzido a dois sprites compostos e alguns detalhes únicos.
  • Iluminação: de seis camadas de luz para três, depois de chegar a 16 texturas de luz renderizadas ao mesmo tempo.
  • Água: o Game2D Water Kit, no Universal Render Pipeline, renderiza a câmera novamente por corpo d'água. As camadas submersas foram consolidadas, e a equipe de portabilidade da Akupara separou o efeito de perspectiva da refração para hardware mais fraco.
  • Diagnóstico: o Frame Debugger foi central para ver onde o batching quebrava.

De Unity 2021 LTS para Unity 6

The Wild at Heart saiu em Unity 2021, e Echo Weaver usa Unity 6, fixado em uma versão pouco antes do lançamento. Chris destacou Nested Prefabs e edit mode como as mudanças mais impactantes. Ankit citou o uso de Composite Collider 2D e do object pool nativo, que permitiu abandonar o pool próprio. Ferramentas internas do jogo anterior foram reaproveitadas: sistema de diálogo, camada de interface com FMOD, código de controle e ícones dinâmicos de input, e screen shake.

Lições para times pequenos

Ankit defende arquitetar para performance cedo: o streaming de chunks foi implementado no início, partículas usam pool desde o começo e há cuidado com a pressão de garbage collection em C#. Chris recomenda planejar mais cedo as peças de um jogo guiado por conhecimento, já que muitas só foram fechadas quando o conjunto ficou pronto, e apostar na identidade do estúdio em vez de reagir ao mercado.

O que a fonte não informa

A entrevista não traz benchmarks de FPS ou memória por plataforma, o tamanho do mapa, o número de chunks simultâneos, o cronograma completo de desenvolvimento nem uma comparação direta entre streaming e telas de carregamento. Detalhes de código do sistema de streaming também não foram divulgados. Os números citados, como o 1 GB após compressão, vêm do relato da equipe.

O jogo está disponível em Steam, PlayStation 5, Nintendo Switch 2, Nintendo Switch e Xbox Series X|S. Para quem quer ver ideias parecidas em prática, vale explorar na Rplay Games os jogos e conteúdos de desenvolvimento com Unity.

Fontes e transparência editorial

Esta matéria da Rplay News foi produzida em português a partir das fontes identificadas abaixo. O conteúdo é reorganizado para acrescentar contexto e utilidade, sem copiar a redação das publicações originais.

Unity 6metroidvaniagame designMoonlight Kidschunk streamingtime-looplevel design2D optimization

Conteúdo produzido com apoio de automação e IA a partir das fontes citadas.