Fazemos o motor, as ferramentas, o anti-cheat e o jogo.
Oito anos construindo uma camada de cada vez — do renderizador ao meio de pagamento. Não alugamos nenhuma delas: cada uma abre na nossa máquina, num arquivo que a gente escreveu.
Sobre o estúdio
Desde 2018 no mesmo projeto, construindo camada por camada até não sobrar nenhuma peça que a gente não pudesse abrir.
São oito anos empilhando: primeiro o que fazia o jogo rodar, depois o que fazia ele ser jogável por outra pessoa, depois o que o mantinha de pé com gente dentro. Nessa ordem, porque não dá pra pular etapa — um gerador de mapa não serve de nada antes de existir um editor que abra o mapa gerado.
Estúdio pequeno não costuma ter essa opção. O caminho normal é licenciar um motor, aceitar as decisões de outra pessoa e esperar pela próxima versão quando algo não serve. Fomos pelo outro lado, e isso tem um preço: ferramenta que vem de graça em motor comercial, aqui a gente escreve. Nós escrevemos.
O retorno é que nada do nosso jogo é caixa-preta. Quando alguma coisa está errada, existe sempre um arquivo pra abrir — e não é um arquivo qualquer: é um que passou pela nossa mão.
Escrito por nós, uma camada de cada vez
- O anti-cheat inteiro, escrito do zero. Não integramos detecção de ninguém: as três camadas — validação no servidor, agente no cliente e telemetria por partida — são projeto e código nossos.
- A interface do jogo, tela por tela. Cada tela foi projetada e escrita por nós num sistema próprio de componentes, descrita em arquivo de dados e montada num editor visual nosso, com recarga a quente — mexer numa tela não exige recompilar nada.
- O gerador de mundo. Relevo com erosão, rede de rios, malha de ruas, divisão de quarteirões, lotes, construções e vegetação — cada etapa é um algoritmo que a gente escreveu e roda dentro do motor, não um script por fora.
- As ferramentas de autoria. Editor de níveis, de física, de partículas, de animação, de personagem e o painel do anti-cheat — todos dentro do mesmo executável que roda o jogo.
- A esteira de personagem. Do FBX ao personagem em pé no jogo, com esqueleto, pele e animação convertidos pela nossa ferramenta — sem depender de nenhum programa de terceiro no caminho.
- O backend e o meio de pagamento. Da autenticação ao fluxo de compra que roda hoje, incluindo a carteira do jogador e o histórico de transações.
- O launcher e a distribuição. Instala, atualiza e verifica o jogo por conta própria, baixando só o pedaço que mudou; a versão sobe a cada build.
O estúdio e uma das nossas ferramentas têm o mesmo nome. Não é descuido — a ferramenta é o estúdio. É nela que o jogo é construído, testado e jogado.
O que construímos
Quatro coisas, e uma depende da outra na ordem em que aparecem.
UnderWar Engine
O motor
Renderizador, física, som, rede e sistema de console. É a camada que não aparece pra ninguém e que decide tudo: quantos objetos cabem numa cena, quanto tempo leva pra carregar um mapa, se um tiro registra.
Mantido por nós, o que significa que otimização não é pedido de recurso para um fornecedor — é uma tarde de trabalho no arquivo certo.
UnderStudio
As ferramentas
Um único executável que é o jogo e a oficina ao mesmo tempo. Dentro dele: editor de níveis, de física, de partículas, editor visual de interface e o painel do anti-cheat.
É também onde vive nosso gerador de mapa. Ele começa no relevo — erosão e rede de rios — e vai subindo: malha de ruas, quarteirões, lotes, construções e vegetação. Um mapa nasce de uma semente e só vira nível jogável depois de passar por uma bateria de validação.
UnderProtection
O anti-cheat
Construído por necessidade: o serviço de anti-cheat que usávamos simplesmente deixou de existir, e com ele foi embora toda a detecção. Em vez de trocar por outro fornecedor e ficar exposto à mesma coisa de novo, escrevemos o nosso — e hoje não integramos detecção de ninguém.
São três camadas. No servidor, onde o jogador não alcança, cada partida é validada contra dezenas de tipos de trapaça — vida infinita, voo, velocidade, item aparecido do nada, receita forjada, inventário, recarga, veículo — em quase duzentos pontos de verificação.
No cliente roda um agente nosso, compilado dentro do próprio executável e sem DLL alguma: confere a assinatura do binário, procura depurador acoplado e varre a memória atrás de módulo injetado, tanto por conta própria quanto quando o servidor manda escanear.
A terceira é a telemetria. Cada partida grava quem matou quem, a que distância, em quanto tempo e com quantos tiros na cabeça, e uma análise em lote cruza isso para levantar suspeita. O veredicto final é sempre de uma pessoa — a máquina aponta, ainda pede uma captura de tela ao cliente na hora, mas ninguém aqui é banido por um número sozinho.
Dread Thicket
O jogo
Survival de mundo aberto com PvP e perda do que você carrega quando morre. É pra ele que as três camadas acima existem, e é ele que testa cada uma delas com gente de verdade dentro.
Projetos de fã
Coisas que a gente construiu por gosto, fora da linha oficial do estúdio. São projetos de fã, sem vínculo, patrocínio ou aprovação de qualquer detentor de direitos.
Tamer Quest
Projeto de fã · não oficial
MMORPG gratuito de captura, treino e batalha de criaturas, jogável direto no navegador e todo em português. Nasceu como homenagem ao gênero de domar monstros e continua no ar com servidor próprio.
Como trabalhamos
Seis regras que a gente não afrouxa. Elas custaram tempo pra serem aprendidas e economizam muito mais do que custaram.
-
Não terceirizar o que pode desaparecer
Serviço externo que some leva a funcionalidade junto. Já aconteceu conosco, e é por isso que o anti-cheat, a interface e a telemetria são nossos.
-
Ler no código, nunca deduzir pelo nome
O papel de um arquivo se lê onde ele é carregado e usado — pasta, extensão e convenção de nome são pista, não verdade. Se a fonte contradiz o palpite, a fonte ganha. Temos a fonte inteira justamente pra isso.
-
Medir antes de afirmar
Número que aparece nos nossos documentos foi contado, não estimado. Antes e depois de cada mudança, com a mesma régua e o mesmo conteúdo dos dois lados.
-
Português por padrão
A língua de fábrica do jogo é português do Brasil, e todo texto passa pelo sistema de idiomas desde a primeira linha. Tradução não é etapa final aqui.
-
A ferramenta mora dentro do motor
Nada de script externo gerando conteúdo por fora. Se o motor sabe assentar um objeto no terreno, o gerador chama o motor — não reescreve a conta em outro lugar, onde ela vai divergir.
-
Uma camada por vez, e a de baixo primeiro
Ferramenta antes de conteúdo, motor antes de ferramenta. É mais lento no começo e é o motivo de hoje conseguirmos gerar um mapa inteiro a partir de uma semente.
Dread Thicket abre em pré-beta
Survival de mundo aberto rodando no nosso motor. O pré-beta sai antes da página na Steam — dá pra entrar na lista de avisos agora.