O cultivo que nunca adoece tinha ganhado o jogo
7 de setembro de 2026 · Pithvein
O Pithvein é um idle de fábrica biológica. Cada câmara cultiva um organismo que produz polpa, e a decisão do jogo é uma só: apertar uma câmara multiplica o que ela rende e acende um relógio que o jogo mostra na cara (seis horas, três, uma e meia). Até o nível seguro, nada acontece e a fábrica roda sozinha. Acima dele, você comprou tempo e sabe quanto.
Como o jogo inteiro depende dessa decisão existir, ele tem um portão automático que a mede. Três robôs jogam 24 horas simuladas: um que nunca passa do nível seguro, um que aperta só até onde a câmara aguenta até a próxima visita, e um que aperta tudo e deixa estourar. Se arriscar com cuidado não render mais que nunca arriscar, com folga, o gancho é enfeite e o projeto morre. Está escrito no documento de projeto desde o primeiro dia.
Ele aprovava. E o jogo não tinha decisão nenhuma.
O que estava escondido atrás de um preço
Até a versão 2.0.0, três dos seis cultivos eram conteúdo pago. Um deles, o líquen, quebra a regra central: ele não adoece nunca. É o preço dele ser assim que não ganha nada por vizinhança, e a ideia era que isso bastasse.
Na 2.0.0 as três plantas ficaram livres, porque cobrar por elas escondia justamente a parte interessante do jogo de quem não pagava. O portão continuou aprovando: +20,7% para quem arrisca com cuidado. Publicamos.
O problema é que o portão media só os cultivos que já eram gratuitos. Enquanto o líquen era pago, ele não estava na lista do robô, e o desequilíbrio não existia na régua porque a régua não olhava para lá. Liberar a planta mudou o jogo e não mudou a medição.
E o robô jogava mal
Isso só apareceu por acidente. Ao escrever um robô novo para uma versão seguinte, fui olhar como ele escolhia o que plantar, e a linha era esta: o cultivo de maior produção que couber. Produção no nível zero.
Nenhuma política joga no nível zero. Cada nível multiplica a produção por 1,7, e o que separa um cultivo do outro é até onde ele aguenta ser deixado sozinho. Corrigindo a escolha para a produção no nível que aquela política alcança, a tabela do jogo fica assim:
cultivo rende no nível 0 folga rende no nível seguro
vespeiro 88,00 0 88,0
nódulo 52,00 2 150,3
carniça 16,00 1 27,2
pólipo 7,50 3 36,8
líquen 5,00 9 592,9
O líquen não adoece, então a folga dele era o teto do jogo: nove níveis, sem relógio nenhum correndo. Ele rendia quase quatro vezes o segundo colocado, e o robô o plantava por último, porque no nível zero ele é o penúltimo da lista.
O robô jogava sete vezes pior que um jogador atento faria, e o portão chamava aquilo de "política cautelosa". Duas falhas somadas, e cada uma escondia a outra: a régua olhava para o jogo antigo, e o robô jogava mal o bastante para o número sair plausível.
O número honesto
Com o robô escolhendo como um jogador escolheria, o veredito virou:
arriscar com cuidado rende -26,3% sobre nunca arriscar
❌ arriscar não paga o bastante: o dilema é enfeite
Ou seja: a resposta certa era encher a fábrica de líquen, nunca apertar nada, e nunca ver a necrose que a página do jogo anuncia. O mesmo catálogo, sem o líquen na lista, devolve +21,3% e aprova. A planta era a causa única.
O conserto, e por que ele não é um número menor
A tentação é baixar a produção do líquen até ele parar de ganhar. Isso funciona e é ruim: ele fica inútil nos primeiros níveis e o jogador só sente o valor dele depois de muito investimento.
O que faltava era um preço na dimensão certa. Quem não corre risco não pode alcançar a recompensa máxima, então o líquen ganhou um teto de nível: ele continua não adoecendo nunca, e em troca não passa do nível 4. O valor saiu de varredura, não de gosto: de 1 a 5 o dilema existe, no 6 ele cai para -2,6% e no 7 para -35,3%. A virada está entre 5 e 6, e 4 fica um degrau abaixo dela, com margem para o resto da tabela mexer.
Duas coisas vieram junto. A primeira: "nunca adoece" continua valendo acima do teto. O teto impede subir, não faz a câmara começar a apodrecer. Quem já tinha líquen no nível 9 num save da versão anterior não perde nada, porque punir o jogador por uma mudança de balanceamento que ele não pediu é trocar um defeito por outro pior. Foi a régua antiga da própria planta que apontou isso, reprovando a primeira tentativa.
A segunda é a régua nova, e é a que importa a longo prazo:
func _quem_nunca_adoece_tem_teto() -> void:
for tipo in todos_os_tipos_calculaveis():
if not Catalogo.regra(tipo, "nunca_adoece"):
continue
if Catalogo.nivel_teto(tipo) >= Catalogo.NIVEL_MAX:
_erro("%s rende o máximo sem risco, e apaga o dilema" % tipo)
Ela vale para qualquer biologia futura que não tenha relógio. É o único jeito de a próxima não repetir isto.
O que eu levo disso
Portão automático não mede o jogo: mede o robô. Este projeto já tinha essa frase escrita nas próprias medições, de duas vezes anteriores em que o instrumento mentiu, e ainda assim ela aconteceu de novo, porque a falha nova não se parecia com as antigas.
O que dá para generalizar é mais estreito e mais útil: ao tirar um conteúdo da loja e liberá-lo, rode o portão com ele na mão do robô antes de publicar. É uma linha na lista de opções, e é a diferença entre medir o jogo que você acabou de fazer e o que você tinha antes.