Unreleased
Em desenvolvimento ativoA fundação está de pé: engine própria em C++, sistema solar, planeta esférico, gravidade radial, física, persistência e a primeira camada de multiplayer. O trabalho agora é dar ao planeta o tamanho e a matéria de um planeta — escala real, oceanos em que se nada, subsolo que se escava, atmosfera que separa o dia da noite — e ao personagem um corpo que pisa nele.
Terreno, água e subsolo
- O planeta ganhou tamanho de planeta. O raio passou de 20 para 2 000 alturas de personagem. Antes a volta a pé levava um minuto e a montanha mais alta batia na cintura do player; agora existe relevo que se enxerga de longe e se escala de perto.
- 70% de água. Era 3,3%. A fração vale para qualquer seed, então todo mundo gerado nasce com oceano de verdade, e não com poças.
- Água em que se nada. A água virou três coisas que ela não era: leito próprio abaixo do nível do mar, casca na superfície e empuxo. Antes o player caminhava sobre o mar.
- Água translúcida. Dentro dela dá para ver o leito e o que está sobre ele, que é justamente quando isso passa a importar.
- Túnel virou vão de verdade. Escavação horizontal, teto e parede que desaparece entre vizinhos: dois tiles cavados lado a lado formam corredor, não dois poços com uma parede no meio.
- O player entra no subsolo. Havia um chão intransponível segurando todo mundo na superfície, o que fazia do túnel, da tocha e da câmera subterrânea cenário decorativo por baixo dele.
- Escavação na altura certa. Um golpe abria um pé-direito de 20 alturas de personagem, e o resultado era uma laje. Agora são 2, então degrau, rampa e câmara com altura legível passam a existir.
- Tile na escala do jogador. De 18,8 para 9,4 alturas de personagem por tile: "placa tectônica" era descrição literal, não figura de linguagem.
- Material do tile com efeito medível. O tipo de terreno deixou de ser só cor e passou a afetar movimento, escavação e o que cai ao cavar.
- Crosta, manto e núcleo. As camadas do subsolo deixaram de ser paleta de parede e ganharam efeito real: descer fundo passou a custar.
- Linha de árvores. A densidade de vegetação passou a ter eixo de altitude, então a montanha deixa de ser pedra do sopé ao pico.
- Pedra solta e galho no chão, coletáveis. A camada pequena que faz um chão parecer habitado, ligada ao inventário: coletar virou ação de verdade.
- Props na escala do mundo. Árvore e pedregulho eram dimensionados como fração do raio do planeta; com o planeta cem vezes maior viraram pedras gigantes, no sentido literal.
- Batimetria. O leito afunda de verdade abaixo do nível do mar, em vez de ficar rente à casca.
O personagem
- Corpo low-poly feito à mão. 472 triângulos, malha fechada e simétrica, no lugar do modelo gerado por IA, que carregava túnica aberta e defeito de superfície.
- Personagem chega pintado no jogo. O carregador de modelo passou a ler cor por vértice, então a arte sai do Blender e entra na engine sem passo intermediário.
- Encara a direção do movimento. Quatro cardeais e quatro diagonais.
- Ancorado no chão de verdade. Fim da flutuação sobre relevo: a altura do player passou a ser lida da mesma malha que se vê.
- Colisão com o cenário. Árvore, arbusto, cogumelo e pedregulho viraram obstáculo sólido; no pedregulho dá para subir.
- Pulo na escala certa. Subia 640 alturas de personagem, porque a altura do salto estava sendo multiplicada pelo raio do planeta.
Física
- Raycast no mundo. Consulta de "o que está nessa direção" pra detecção de chão, ataques diretos e queries em geral. Base pro PlayerController saber quando está pisando, e pra hit-scan de armas.
- Colliders de mesh estático. Estruturas complexas (árvore, prédio, qualquer mesh do mundo) ganham colisão real.
- PlayerController em cápsula kinemática. Personagem agora é uma cápsula física que respeita colisão, com sincronização automática entre lógica e pose visual.
- Cápsula, esfera estática do planeta e helpers de mutação. Vocabulário básico de formas físicas no jogo.
- Velocidade do player em mundo + gravidade radial. O personagem cai em direção ao centro do planeta, não pra "baixo" da tela. Funciona em qualquer ponto da esfera.
- Gravidade radial por corpo. Cada objeto físico responde individualmente à atração do planeta.
- API de corpos físicos. Vocabulário mínimo pra criar, mover e destruir entidades com física.
- Tick fixo 60Hz. Simulação determinística pra multiplayer não desincronizar entre clientes.
- Foundation da camada de física. Sistema próprio integrado ao loop principal do jogo.
Mundo e planeta
- Continentes maiores via camadas de ruído. Geração combina ruído continental + detalhe, produzindo massas de terra reconhecíveis.
- Frame visual planet-local. Render alinha eixos ao ponto onde o player está, em vez de coordenadas globais.
- Biome assignment + refinamento de tipo de tile. Cada tile do mundo recebe bioma e textura coerente com o entorno.
- Geração de mundo por seed. Mesma seed gera mesmo planeta, sempre.
- Modificação local de tiles. Player pode alterar o mundo: cavar, construir, derrubar.
- Icosphere subdivision. Geometria do planeta com triângulos distribuídos uniformemente.
- UV-sphere geometry. Planeta vira esfera de verdade no render (não mais cubo placeholder).
Sistema solar e câmeras
- A noite voltou a ser noite. O brilho do céu passou a sair da elevação do sol, com crepúsculo contínuo, em vez de um valor fixo escolhido pelo modo de câmera. A sensação de dia e noite estava sumindo justamente no modo de jogo.
- Luas com atmosfera e cor de rocha. No lugar do disco chapado que ficava inteiro preto, branco, laranja ou azul.
- Atmosfera com mais glow. Halo largo e quente abraçando o limbo iluminado, mais perto da referência astronômica: em caminho rasante o azul se extingue primeiro e sobra o laranja, que é a mesma conta do pôr do sol.
- Iluminação e atmosfera seguem o enquadramento, não o modo de câmera. Afastar no modo de jogo até ver o planeta inteiro passou a render a mesma imagem que o modo cinematic.
- Zoom sem limite. O limite tinha sido calibrado quando o planeta era cem vezes menor, e impedia afastar o bastante para enxergar o relevo novo.
- O céu cobre a tela. Fim do disco escuro de borda dura que aparecia na vista de espaço, e que estava centrado na câmera em vez de no planeta.
- Biomas em cores, vistos do espaço. O passe de nuvens saturava o planeta de branco e granulava a imagem.
- Save/load do tempo orbital. Posição do planeta no sistema solar persiste entre sessões.
- Períodos de órbita gameplay vs cinematic. Gameplay usa 10 minutos por órbita (sombras sutis), cinematic usa 30 segundos (órbita visível em demo).
- Câmera close-follow. Câmera segue o personagem de perto, base do POV de gameplay.
- Câmera ISO local v2. Câmera isométrica alinhada ao plano tangente do planeta no ponto do player.
- Cinematic demo wirado. Cena com sol, planeta e órbita, base dos primeiros vídeos públicos.
- Reconciliação cinematic ↔ gameplay. Mesmas constantes celestes em ambos os modos.
- Planeta orbita o sol de verdade. Translação orbital real, não animação fake.
- Top-down camera + TAB switcher. Troca rápida entre câmera de jogo e câmera de mapa.
- Marcadores 3D pras câmeras inativas. Debug visual de onde cada câmera está apontando.
- Caminhar e girar na esfera. Player se move respeitando a curvatura, sem "cair" do planeta.
- Cena demo E3 com rotação tipo Terra. Eixo inclinado oscilante, primeira aparição visual coerente do planeta.
Renderização e engine
- Resolução dinâmica. A escala de render se ajusta sozinha para caber no orçamento de 16,6 ms por quadro, em vez de derrubar o FPS quando a cena aperta.
- Upscaler FSR 1.0. Alternativa viável ao DLSS dentro de OpenGL 3.3, para quem joga em GPU modesta.
- Anti-aliasing SMAA. Serrilhado tratado em pós-processo.
- Presets de qualidade Low, Med e High. O jogo passa a ter o que oferecer a máquina fraca sem virar outro jogo.
- Tela de configurações no jogo (F10), com persistência. A escolha sobrevive ao fechar.
- Janela de log em tempo real. Segunda janela de observabilidade, com arquivo e linha de cada evento, para diagnosticar sem parar a sessão.
- Busca de tile em tempo constante. Consumia 30% do quadro (974 µs por chamada, cinco vezes por quadro); agora custa 0,56 µs. É o que tornou possível diminuir o tile.
- Cor por vértice no carregador de modelos. O OBJ passou a carregar a pintura junto com a geometria.
- Sistema de partículas. CPU-side, com billboards GL, suportando câmera externa.
- Texturas via stb_image. Carregamento de imagens em formato comum (PNG, JPG).
- Sistema de luz solar exponencial. Decay realista de intensidade conforme distância e ângulo.
- Lambert no shader padrão. Iluminação difusa básica, base de tudo que vai ter sombra.
- Pipeline de shader + integração câmera ↔ renderer. Vocabulário mínimo pra desenhar qualquer mesh com qualquer câmera.
- Depth test habilitado. Objetos atrás de outros não atravessam mais.
- Suporte HiDPI + resize. Janela escala corretamente em monitores Retina e ao redimensionar.
- Logging com file sink. Sessão grava log em disco pra análise pós-jogo.
- Cubo girando + animação de rotação. Primeiro frame com algo se mexendo na engine.
UI, inventário e áudio
- Equip / unequip flow. Personagem veste e tira itens, com efeito no estado.
- UI de inventário. Primeira tela funcional do jogo.
- Modelo de dados de inventário. Slots, stacks, peso.
- Layout system + widget basics + UI rendering layer. Toolkit interno de UI, sem dependências externas.
- Music streaming + sound system básico. Áudio de fundo e efeitos discretos funcionando.
Multiplayer e servidor
- Anti-cheat foundation. Detecção de patterns suspeitos no comportamento do client.
- Logging de violations + validação server-side. Servidor não confia em nada que vem do client.
- Login flow token-based + session store. Sessões persistem em memória ou Redis, com refresh e logout.
- Account creation + password hashing seguro. Senhas nunca em texto puro, hash com salt.
- Area-of-interest por player. Cada cliente só recebe updates da região visível pra ele.
- Delta updates por visibility transition. Quando algo entra ou sai da área visível, só a transição é enviada.
- Spatial partitioning da superfície do planeta. Mundo dividido em células pra query eficiente de "quem está perto".
- DB layer F5 MVP + schema MVP. Primeira camada de persistência server-side.
- Authoritative game state. Servidor é fonte de verdade, client renderiza.
- Server-only build. Mesma codebase compila como servidor headless.
- Lobby system 2-4 players co-op. Primeira sessão multiplayer pequena.
- Tile modification protocol. Mudanças no mundo sincronizadas entre clientes.
- Conflict resolution last-write-wins server-side. Política simples e previsível pra alterações simultâneas.
- Multi-client interpolation + client prediction + reconciliation. Movimento de outros players suave no client local, com correção quando o servidor discorda.
- Connection management + message serialization. Foundation do networking.
Persistência
- API high-level de save/load. Salvar e carregar partida com uma chamada.
- Framework de migration. Saves antigos abrem em versões novas, sem perder estado.
- Serialização de world state e player state. Tudo que o jogo precisa pra continuar de onde parou.
Lore e design público
- Forja de Equipamento. Monte o loadout inteiro numa tela: elmo, peitoral, botas, arma e mochila, 187 itens jogáveis, os 11 tiers com moldura e numeral aplicados ao vivo, qualidade em estrelas, raça e classe, e a barra de habilidades derivada do que está equipado. Assume o lugar do grid estático de Conjuntos, cujos 31 conjuntos passaram a ser montáveis peça a peça.
- As Habilidades (326/326). Catálogo completo das habilidades inatas, com filtros por origem (afinidade, classe, raça) e por tipo (passiva, ativa), cada uma com efeito e proveniência.
- As Afinidades (280). O mapa raça × classe: a liga rara do anão ferreiro, a granada dupla do boticário humano, o mergulho do phibens. Inclui o sistema elemental do Mago e as afinidades que só valem sob condição de ambiente (noite, submerso, subterrâneo).
- Os 24 Sub-governantes. A camada da hierarquia que faltava: seres não-humanoides que servem, ou espreitam, sob os Governantes.
- Compêndio reaberto (520/809). O catálogo do jogo cresceu de 517 para 809 itens (sementes, itens de trapper, culinária, refino), então o Compêndio deixou de estar completo e volta a revelar em levas.
- O topo do site virou title sequence. A cover estática deu lugar a um vídeo curto: o viajante caminha até a margem do lago e se agacha olhando a paisagem, com a logo se dissolvendo no meio do plano.
- Arte recortada em todo o site. As 846 imagens de item e criatura e os 26 Governantes trocaram o fundo cinza por versões transparentes: cada retrato virou gravura sobre a folha, sem a caixa atrás.
- Taxonomia de tipos de item. Catálogo seed com 21 categorias (armas, ferramentas, recipientes, consumíveis, etc).
- Exclusivos por classe. Cada classe ganhou pelo menos uma ação ou produção que ninguém mais consegue. Monopólio funcional pra garantir demanda real.
- Canon completo de fama. 9 atributos, conversão 0,005, redistribuição em PvP por contribuição, perda de 50% na morte.
- Concept arts: backgrounds e letras. Primeira leva de arte pública, base do branding em asteroth.com.br.
- Compêndio de Itens completo (517/517). Todos os itens do jogo revelados no site, em 63 levas — cada um com retrato, epígrafe e descrição em tom de compêndio antigo, aberto em modal de papiro.
- O Bestiário completo (326/326). Nova seção no site com todas as criaturas do mundo — os exércitos dos sete governantes (do Governante aos mini mobs), a fauna livre e os slimes — cada uma com retrato e descrição em tom de bestiário antigo; dois filtros (Domínio e Patente) que abrem mostrando os 28 líderes dos exércitos.
Infraestrutura de projeto
- Pipeline de arte low-poly local. Uma imagem de referência entra, um modelo texturizado sai, tudo numa GPU doméstica. Gerar as peças do catálogo por serviço pago de image-to-3D era inviável no custo, e o gargalo de arte deixou de depender de crédito de API.
- Pre-push hook. Suite de testes roda antes de qualquer push, impede commit quebrado de subir.
- GitHub Project v2 "Asteroth". Tracking de épicos e issues público.
- Roadmap por fases. F0 Fundação 3D → F1 Cinematic demo → F2 Gameplay SP → F3 Save/UI/áudio → F4 MP pequeno → F5 MMO infra → F6 Canon do planeta e lobby → F7+ conteúdo, escala e polimento.
- Pipeline de release CI/CD. Build automatizado a cada merge.
- Spec coverage comprehensive em todos os épicos. Cada sistema sobe com cobertura de teste antes do próximo começar.
- Relatório HTML visual de specs. Resultados de teste renderizados em painel próprio.