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.
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.
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.
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.
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
Postar um comentário