Projetos pessoais

Onde está o Gato

status em-desenvolvimentoligações 5

Um gato pula a janela ao entardecer e some pelos telhados, e você vai atrás. Ele não está fugindo: para e olha para trás para conferir se você ainda vem.

Feito para jogar em família. Não vai para loja de aplicativo — o pacote é instalado direto nos aparelhos.

A decisão central

A regra do jogo não conhece o engine. O domínio é uma biblioteca C# pura, sem uma linha de Godot, e é onde vivem progressão, coletáveis, save e a máquina narrativa. O projeto do engine é uma camada fina que lê esse domínio e o desenha.

Isso não é purismo, e tem duas consequências práticas:

A maior parte do jogo é testável sem GPU. A suíte inteira roda headless em poucos segundos. A máquina onde eu desenvolvo é um Pentium G4560 de dois núcleos, onde abrir um emulador Android para verificar uma regra de negócio seria inviável na prática — e o que é inviável na prática ninguém verifica.

O engine vira detalhe substituível. Se o Godot sair do caminho, o que se perde é apresentação, não o jogo.

Por que isso está num portfólio de engenheiro backend

Porque é a mesma decisão de Modelagem de domínio, DDD e CQRS num contexto que a torna inegociável. Em sistema corporativo, misturar regra com framework dá um custo difuso que se paga devagar. Num jogo, isso significa precisar de um emulador para testar uma regra de progressão, e o custo aparece na primeira semana.

O mesmo desenho se repete em Reino do Ritmo, em outra linguagem e outro engine, o que é a melhor evidência que eu tenho de que o princípio não depende da stack.

Decisões que custaram descoberta

Registro delas porque são o tipo de coisa que só aparece fazendo:

  • O alvo de framework não foi escolha, foi restrição do template de exportação Android do engine. O domínio multi-targeta para atender a duas exigências incompatíveis, sem compilação condicional: se uma API só existe na versão mais nova, ela não entra
  • O engine exige um arquivo de solução na pasta do projeto. Sem ele, a exportação “funciona” e gera um pacote sem os assemblies dentro, que instala e quebra ao abrir, sem causa óbvia
  • Toda interface respeita a área segura da tela, validado em aparelho real: o recorte da câmera embutida cortou texto no protótipo

Alvo técnico

Aparelho-piso definido antes de começar, não depois: um Moto G06 com 4 GB de RAM e GPU integrada modesta. Renderizador de compatibilidade, paisagem travada, arquitetura única.

Ver também

Reino do Ritmo · Modelagem de domínio, DDD e CQRS · Qualidade e engenharia de contexto

Pablo Mickael Quevedo Senior Software Engineer · autor principal de 32 sistemas · Novo Hamburgo, RS

5 notas ligadas a esta

A vizinhança desta estrela no céu do portfólio.

Explorar a galáxia →