Uma cozinha para quatro receitas

No Kastle Studio existe uma esteira. Uma criatura anda no lugar, o chão desliza embaixo dela na velocidade do mundo, e a gente olha para os pés. Se o pé escorrega, a passada está errada.
Lembra do capítulo 3, quando fazer um modelo novo andar, lutar e morrer era metade do trabalho? Agora multiplique isso por quatro jogos. A esteira existe porque, a certa altura, a gente precisou de um lugar só para cuidar disso.
Uma cozinha, quatro receitas
O capítulo anterior terminou com cada jogo novo escrevendo as mesmas coisas de novo. Em 9 de outubro, no dia em que o Line Tower nasceu, tudo o que o Castle Survivors tinha e que não era regra dele saiu para um pacote próprio: o Kastle, o motor da casa.
O jeito mais fácil de entender o Kastle é pensar numa cozinha. O fogão, as panelas e a despensa são de todos: o mundo 3D, o céu e o clima, as criaturas, o som, os menus, a Steam, os saves, o online. A receita é de cada jogo: as regras, os números, as palavras. Um jogo é uma pasta ao lado do motor, com a própria simulação e o próprio conteúdo.
A comparação tem um limite, e ele é de propósito. Numa cozinha de verdade, quem cozinha espia a receita do vizinho. Aqui, o motor nunca pode conhecer a receita de nenhum jogo, e uma verificação automática falha se um dia ele conhecer. É isso que mantém as regras de cada jogo dentro do próprio jogo, longe do motor e dos outros três.
A despensa
É na despensa que o trabalho dos artistas do primeiro capítulo foi parar. Os packs que cada jogo usava viraram uma biblioteca só, e cada jogo entrega apenas o que carrega.
| Na despensa | Quantos |
|---|---|
| Modelos de criatura | 164, com 705 peles |
| Modelos de cenário | 1.115 |
| Efeitos | 235 |
| Sons | 74 |

Ninguém mexe numa peça sem escrever
No capítulo 6, o online funcionava como xadrez por correspondência: os dois tabuleiros só continuam iguais se ninguém mexer numa peça sem escrever. Com quatro jogos em cima do mesmo motor, isso virou uma regra da cozinha inteira.
O Kastle tem um fiscal para isso: um lint de determinismo que lê o código da simulação e aponta tudo o que faria dois computadores discordarem, como um sorteio sem semente, uma consulta ao relógio de verdade ou uma lista ordenada de um jeito que muda de máquina para máquina. E tem um teste de resistência que roda partidas inteiras sob redes ruins de propósito, com atraso, perda e pacotes fora de ordem. Ele já achou um bug real: um convidado cuja contagem começava depois da do anfitrião perdia os primeiros turnos da partida.
Quem usa o quê
Nem todo jogo usa a cozinha inteira, e isso foi decisão, não atraso.
| Jogo | Usa do Kastle |
|---|---|
| Line Tower | Tudo |
| Custom Hero Survival | Tudo |
| Castle Survivors | Só o visual; simulação, rede, menus e saves continuam dele |
| Castle Arena | Nada do motor, mas conversa com o Studio |
A bancada
Quando se tem um jogo, os números moram no código e tudo bem. Quando se tem quatro, cada um com centenas de tropas, habilidades e armas, mexer num valor vira uma caça: em que arquivo está, quem usa, o que muda, e o mesmo erro esperando em cada jogo.
O Kastle Studio é a bancada dessa cozinha. Nele dá para ver cada criatura com todas as animações ao lado de uma régua de altura, cada efeito num palco próprio com o custo dele no quadro, e os dados de cada jogo lado a lado: unidades em 3D, facções, quanto tempo cada lutador leva para derrubar cada outro.
E dá para mudar. Um número editado no Studio volta para o código do jogo, no lugar certo. Mas antes de voltar, ele passa pela aba que mais importa, Consequências: os números de antes e de depois rodam nos simuladores do Studio, e os confrontos que a mudança mexeu aparecem ordenados por quanto se moveram. É o capítulo 4 virando ferramenta: evidência antes de número.
Para o jogo, nada muda até alguém apertar Salvar.
Na linha de comando, o mesmo simulador vira um portão: roda todos os confrontos com sementes fixas em cerca de 25 segundos e recusa a mudança se algum deles se moveu mais de 10 pontos.
O que ainda é da receita
O motor ainda não está em todo lugar onde poderia. Os jogos usam as próprias ordens e habilidades, em vez das do motor. Adotar as do Kastle é o que vai permitir aposentar o código repetido de cada um, e é o próximo passo da cozinha.
Quatro jogos, um motor, uma bancada. Falta contar onde tudo isso está agora.
— A equipe





