top of page

Primeiro um tipo, depois cinco: como este jogo cresce 🪨

Foto do escritor: Marcel Dütscher
Marcel Dütscher
27 de jul.
4 min de leitura

Quem olhar nossa lista de versões vai encontrar 29 releases em pouco mais de cinco semanas: da 0.1.0, em 20 de junho, até a 0.9.0, ontem. Como isso é possível? Com certeza não é sentando e construindo um recurso pronto de uma vez só. Nós construímos em etapas: primeiro a menor versão que realmente funciona e, quando ela está estável e divertida, a próxima etapa. Neste momento, os asteroides mostram isso melhor que qualquer outra coisa.


Etapa 1: eles existem. Quando os asteroides chegaram ao jogo, só uma pergunta importava: pousar, andar e minerar funcionam em um corpo minúsculo que dá para contornar em poucos minutos? Um asteroide não é um planeta pequeno: tem a própria classe de tamanho, outra gravidade, outro horizonte. Essa foi a etapa 1, e todo o resto ficou de fora de propósito. Por isso existia exatamente um tipo: o tipo estava fixo no código e, como não havia uma lista de superfícies possíveis, todas as colunas ficavam cobertas de cristal. Todo asteroide da galáxia inteira era igual. A única variação era a circunferência e onde as crateras calhavam de estar.


Etapa 2: agora pode ser diferente. A etapa dois está pronta desde ontem e chega ao jogo com a próxima atualização. Então haverá cinco famílias de asteroides, e cada rocha sorteia a sua por chance ponderada. A rochosa é a de trabalho, com ferro, silicato, cobre e estanho. A metálica é quase metal puro: titânio por toda parte, cobalto, tungstênio e platina mais fundo. A gelada fica a −95 °C e carrega voláteis em vez de metais: carbono, lítio, enxofre. A rica em carbono é preta como fuligem, cheia de cavernas, escondendo urânio e diamante bem lá embaixo. E a cristalina, exatamente o que todo asteroide era antes, agora é o achado raro. Além disso, cada corpo ganha o próprio relevo de crateras: densidade, largura da bacia, profundidade, altura da borda e quão ondulada é a poeira entre elas. Antes eram cinco números fixos para o universo inteiro, e por isso todo corpo sem atmosfera parecia igual. As luas também se beneficiam, aliás, porque passam pelo mesmo caminho no código.


A recompensa de verdade vem depois. O bom de uma segunda etapa bem construída é a terceira: uma sexta família deixa de ser um trabalho de programação e vira uma entrada em um arquivo de dados: nome, superfícies, minérios, frequência, pronto. “Alguém devia incluir isso” virou “a gente poderia tentar isso numa noite”. É isso que faz a reconstrução valer a pena.


Por que fazemos sempre assim. Três motivos, todos aprendidos do jeito difícil. Primeiro: você não sabe de antemão se uma ideia é divertida. Uma primeira versão pequena pode ser testada com o Justus numa noite e, depois, você sabe se a expansão vale a pena, ou se a ideia na verdade era chata. Segundo: um passo pequeno pode ser revisado, testado e, se preciso, desfeito. Um recurso gigante que mexe em cinquenta lugares ao mesmo tempo só dá para resolver rezando. Terceiro, e mais importante para nós: este jogo é jogado por crianças. Um recurso gigante pela metade é pior para elas do que um pequeno que funciona de forma confiável.


O mesmo padrão em todo lugar. Os blocos eram cubos no começo; rampas, escadas e esferas vieram depois, depois a coloração, depois os chanfros finos nas bordas para que nada mais pareça uma caixa de papelão. Os planetas começaram como uma rocha cinza; mares de verdade, sistemas de cavernas, clima baseado na altitude e vulcões vieram depois, depois os mares congelados em mundos frios, e agora os asteroides. Na segurança infantil, no início havia só um comando de denúncia no chat, depois banimentos com motivos e suspensões temporárias e, mais recentemente, o modo observador invisível. E os nossos bandidos, que acabaram de sair, ainda estão na etapa 1: eles atingem você por um efeito de proximidade, em vez de projéteis voadores de verdade. Isso não é descuido, está escrito no plano: etapa 2, quando a etapa 1 tiver se provado.


O que esse jeito de trabalhar custa. Duas coisas, com sinceridade. Primeiro, os mundos existentes mudam: como o tipo de um corpo celeste é recalculado a cada carregamento e nunca é guardado, os asteroides dos seus mundos antigos vão ganhar outras famílias e outro relevo com a próxima atualização. Seus blocos construídos permanecem, mas podem de repente ficar flutuando ou embutidos na rocha. É por isso que coisas assim sempre vão para as notas de versão. Segundo, até a primeira etapa precisa ser construída de modo que a segunda seja possível. Para os asteroides, isso significa: agora existe exatamente um lugar no código que responde “isto é um asteroide?”, e um teste que verifica, para cada família gerada, se ela realmente é classificada como asteroide. Se esquecermos um único chamador, um bug antigo e desagradável volta: uma rocha onde você não consegue minerar nem um bloco.


E mais uma vez os testes nos salvaram. Ao construir as novas famílias, uma verificação antiga disparou: ela garante que, em todo mundo com depósitos de minério, dá para alcançar a receita do cabo. Três das cinco novas famílias simplesmente não tinham cobre, e os jogadores ficariam travados ali na progressão. Nenhuma pessoa notou isso; um teste que alguém escreveu semanas antes notou. Agora todas as famílias têm cobre e silicato.


A próxima é mais uma dessas etapas, em algum ponto entre plantas, animais e os bandidos. Qual será, geralmente é o Justus quem decide. 🌟

Posts recentes

Ver tudo

Comentários


Não é mais possível comentar esta publicação. Contate o proprietário do site para mais informações.
bottom of page