O CyberDropX começou como um minijogo e virou dezoito — plinko, mines, hi-lo, tower, quebra-código e outros, todos com partidas de menos de um minuto. Por cima disso existem missões diárias, ranking global e recompensas.
A parte que deu mais trabalho não foram os jogos. Foi mover toda a economia para o servidor.
O que "no servidor" significa aqui
Cada recompensa é decidida numa Cloud Function. O cliente não calcula ganho, não valida partida e não informa resultado — ele pede, e o servidor responde.
Isso é mais chato de construir. Cada ação vira uma ida e volta, o estado precisa ser reconciliado, e o modo offline simplesmente não existe para nada que envolva economia.
O motivo não é só trapaça
A resposta óbvia é "para ninguém trapacear", e ela está certa — mas é a menos interessante.
O motivo real é que uma economia no cliente é uma economia que você não pode mudar. Se o balanceamento vive no app, corrigir um número exige nova versão, revisão da loja e esperar todo mundo atualizar. Com a lógica no servidor, um ajuste de balanceamento é um deploy.
Num jogo com dezoito modos e ranking global, você vai errar o balanceamento. A única pergunta é quanto tempo leva para consertar.
O resto
Flutter e Firebase, dez idiomas, Android e iOS. O ranking é global de propósito — competição entre países se mostrou mais interessante que competição local numa base ainda pequena.
Se você jogar, a pergunta que mais nos ajuda é: qual dos dezoito merece virar algo mais profundo?