Do mundo procedural às fases da vida: a maior atualização do PathLife | Devlog #4

Nas últimas semanas, o PathLife passou pela maior transformação técnica do projeto até agora. Primeiro, deixamos para trás a ideia de um cenário fixo e construímos um mundo gerenciado proceduralmente. Depois, retrabalhamos o movimento para que o personagem realmente entendesse esse novo terreno. Em seguida, criamos a geração procedural de estruturas e usamos essa base para colocar no mundo uma casa completa, com pisos, paredes, janelas, portas e telhado. Por fim, começamos a ligar a jogabilidade à proposta central do PathLife: viver diferentes fases da vida, do bebê ao idoso.

Este devlog reúne essa evolução na ordem em que cada sistema passou a depender do anterior.

Um mundo gerenciado proceduralmente

O primeiro grande passo foi transformar o mapa em um mundo lógico, determinístico e orientado por dados. Em vez de manter todo o cenário carregado, o mundo agora é dividido em chunks de 16 × 16 células. O jogo gera primeiro as áreas mais próximas do personagem, integra o resultado aos poucos e descarrega o que fica distante.

Isso permite que o mapa continue se formando conforme o jogador explora, sem precisar existir inteiro na memória. A mesma semente reconstrói o mesmo mundo, inclusive nas bordas entre chunks, e a geração pesada acontece em paralelo para não interromper a partida.

A pipeline atual executa sete etapas:

  • clima;
  • escolha do bioma;
  • altura e relevo;
  • estruturas;
  • classificação do terreno;
  • água;
  • vegetação e decoração.

Hoje já temos cinco biomas ativos — campo claro, campo, floresta, campo florido e savana — com relevo em níveis, faces de terra, variações de grama em manchas, transições entre terrenos e seis espécies de árvores animadas. A estrutura da água também existe, mas permanece desligada enquanto a arte definitiva não está pronta.

Transições entre diferentes terrenos do mundo procedural do PathLife

As bordas dos biomas ganharam peças próprias para que a mudança de terreno não pareça um corte seco.

O personagem precisou aprender a viver nesse mundo

Com alturas, chunks e obstáculos reais, o movimento antigo já não era suficiente. Antes, a posição do personagem na tela era a principal referência. Agora ele possui uma posição lógica em três dimensões: célula X, célula Y e nível de altura. A posição visual passou a ser consequência dessa informação.

O personagem se move célula a célula nas quatro direções isométricas e consulta uma regra única antes de cada passo. Essa regra decide se o movimento é uma caminhada normal, uma subida, uma descida, uma queda, uma entrada na água ou um bloqueio. A mesma base pode ser usada pelo jogador, por NPCs e pelo sistema de caminhos.

Também retrabalhamos a profundidade isométrica. O terreno precisa cobrir corretamente os pés do personagem quando ele passa por trás de uma elevação, sem escondê-lo quando está na frente. Para resolver isso, separamos a posição plana usada na ordenação do deslocamento visual causado pela altura. O resultado são passos suaves entre níveis, colisões coerentes com paredes e móveis e streaming do mundo centralizado na célula real do jogador.

Personagem explorando o mundo procedural perto de uma casa

O jogador agora se desloca sobre um mundo lógico que continua sendo carregado ao redor dele.

Geração procedural de estruturas

Depois que o mundo e o movimento estavam conversando entre si, começamos a fazer o terreno receber construções de verdade.

O novo planejador de estruturas trabalha por regiões maiores que um chunk. A partir da semente do mundo, ele escolhe posições de forma reproduzível e verifica bioma, tipo de relevo, altura, declive, presença de água e distância mínima de outras construções. Uma estrutura pode atravessar vários chunks sem ser duplicada.

A fundação é calculada pela mediana das alturas sob a construção. Em seguida, o terreno nivela a área ocupada e mistura suavemente as bordas com o relevo natural. O sistema também reconhece exatamente onde a cena pinta um piso, remove a vegetação dessas células e impede que a grama apareça entre as tábuas.

É importante fazer uma distinção: a localização e a integração da casa são procedurais; a planta da casa é construída por nós no editor. Isso permite desenhar cômodos com intenção e, ao mesmo tempo, fazer a construção nascer corretamente em diferentes lugares do mundo.

A primeira casa completa

A primeira estrutura grande dessa base é uma casa de madeira com planta de 7 × 8 células. Criamos um kit de construção em camadas para pintar pisos, paredes, janelas, portas, mobília, ponto inicial do jogador e telhado.

A casa atual possui pisos diferentes por ambiente, seis janelas externas e quatro portas. As portas começam fechadas e podem ser abertas com E, usando uma animação de nove quadros. As colisões acompanham paredes, janelas e portas, enquanto o piso permanece caminhável.

O telhado funciona de forma automática: ele cobre a casa quando o personagem está do lado de fora, desaparece quando o jogador entra e volta quando ele sai. Assim conseguimos preservar a aparência externa sem esconder o interior durante a exploração.

Interior da casa com cômodos, paredes, janelas e portas

O interior da casa já combina ambientes, pisos, paredes, janelas, portas e mobília.

Paredes inteiras, transparentes ou cortadas com V

Uma casa isométrica precisa mostrar o interior sem perder a leitura das paredes. Por isso criamos três modos globais de visualização:

  • Inteiras: mostra a construção completa;
  • Transparentes: preserva o formato da casa, mas facilita enxergar os cômodos;
  • Cortadas: reduz as paredes para deixar o interior totalmente visível.

A tecla V — ou o botão correspondente no HUD — alterna entre os três modos. A troca afeta paredes, janelas e portas, mas modifica apenas a arte: as colisões e o estado de cada porta continuam corretos.

Do bebê ao idoso

O PathLife nasceu com a proposta de acompanhar uma vida inteira, então também criamos a primeira base jogável para as cinco fases da vida: bebê, criança, adolescente, adulto e idoso.

Cada fase é um perfil independente que controla proporções do corpo, tamanho da cabeça, braços e pernas, largura, postura, velocidade das animações, velocidade de deslocamento, tamanho da colisão e ações permitidas. Um bebê, por exemplo, é muito menor, tem a cabeça proporcionalmente maior e não pode correr nem agachar. A criança cresce e ganha mais mobilidade; o adolescente se aproxima do corpo adulto; e o idoso recebe postura mais curvada, animações mais lentas e não corre.

As fases podem ser escolhidas diretamente no menu de personalização, e roupas, cabelos, chapéus e outras peças acompanham as mudanças de proporção porque fazem parte do mesmo rig. O bebê ainda usa a arte-base ajustada pelo sistema, mas a arquitetura já aceita arte e animações exclusivas para qualquer idade no futuro.

Também existe um relógio de progressão capaz de avançar de uma fase para a próxima por tempo, aniversário, item ou evento. O envelhecimento automático permanece desligado enquanto definimos o ritmo da vida e as consequências de gameplay; por enquanto, todas as fases já podem ser testadas pelo menu.

Menu de personalização com bebê, criança, adolescente, adulto e idoso

As cinco fases da vida já fazem parte da personalização do personagem.

Testes e estabilidade

Uma atualização desse tamanho mexe em geração, renderização, física, interface e gameplay ao mesmo tempo. Por isso criamos testes específicos para o mundo, movimento em grade, streaming, estruturas, cobertura do chão, paredes, janelas, portas, ponto inicial do jogador e proporções das idades.

Na validação atual, a bateria principal do mundo procedural concluiu 98 verificações sem falhas, e a integração do jogador com a grade concluiu 32 verificações sem falhas. As suítes especializadas da casa, dos três modos de parede, das portas e do chão sob as estruturas também foram concluídas com sucesso.

O que essa atualização muda no PathLife

Mais do que adicionar um mapa, uma casa ou opções novas no menu, esta etapa conecta os sistemas centrais do jogo. Agora o mundo pode crescer ao redor do jogador; o personagem entende células, alturas e obstáculos; construções podem nascer integradas ao relevo; e o corpo do personagem pode mudar de acordo com a fase da vida.

Ainda há muito pela frente: ampliar a variedade de biomas e construções, povoar o mundo, aprofundar as interações dentro das casas e conectar definitivamente o passar do tempo às fases da vida. Mas a fundação que permite construir tudo isso já está funcionando.

O que você quer ver no próximo devlog?

Você prefere acompanhar a expansão das estruturas, novos biomas, mais mobílias interativas ou a evolução do sistema de vida? Conte nos comentários.

Continue acompanhando o blog para ver cada etapa do desenvolvimento do PathLife, um simulador de vida 2D isométrico desenvolvido na Godot.

Comentários

Postagens mais visitadas deste blog

Criando um jogo onde você vive do nascimento à morte — Devlog #1

PathLife agora pode agachar e andar agachado — Atualização 14/08