Entrevista: Dificuldades no desenvolvimento do Blokoto


Opa! É um prazer vê-lo por aqui! Já checou nossas últimas atualizações sobre o Criadores do Blokoto? Ainda não? Então o que está esperando para ir lá dar uma olhada?

Nada nesse mundo vem de graça, né? E o Blokoto não seria uma exceção. Se pudéssemos, iríamos sumonar diversos recursos perfeitos com um toque de magia e uma varinha mágica… e acredite, a gente tentou fazer isso. Infelizmente, a Godot não vem com “suporte de fala”, então estamos mantendo tudo à moda antiga: programação manual, paciência, e uma generosa dose de esperança.

Como você pode ver sendo apontado por aquela seta convenientemente posicionada, aquele é o Inknight! Fundador e líder do desenvolvimento do Blokoto. O visionário (e de certa forma maluco) que está mantendo esse projeto inteiro de pé! Nessa entrevista, ele vai debater sobre nosso ritmo e os desafios por trás da construção do jogo. É como dizem, a vida não é um passeio no parque. Nós planejamos em lançar essa atualização bem antes do Halloween… porém, assim como qualquer plano, esse também decidiu dar uma desviada de seu escopo.

Não é algo fácil, e é exatamente por isso que queremos mostrá-lo a verdadeira face das coisas. Aqui está uma entrevista com Inknight: honesta, crua e totalmente sem filtros!


Arte do Programador se refere a assets temporários, estes muitas vezes sem qualquer polimento, que são feitos por programadores como “quebra-galhos” para uma arte em falta durante o desenvolvimento.

  • Qual parte do desenvolvimento leva mais tempo?

Antes da chegada do Jamesiin à equipe, eu era o único lidando com o design do site. Eu passei muito tempo planejando ele, e os resultados eram sempre… bom, algo ao estilo arte do programador. Eles funcionavam bem, mas sempre havia o fator limitante. Você não pode focar totalmente em algo que não é especialista.

Imagem ancestral do site antigo do Blokoto, quando o projeto ainda se chamava Bricknix.

Agora que o Jamesiin é nosso designer web, a maior parte do meu tempo agora é dedicado aos sistemas multijogador e do lado do servidor. Já que o Blokoto é um jogo multijogador, cada sistema basicamente necessita ser escrito duas vezes, uma para o cliente (seu computador, o jogo que você instala) e mais outra para o servidor (o qual fica em nossa nuvem). Então, se eu adicionar um emissor de luz no jogo, eu terei que implementar ele em ambos os lados.

Você sabia que até mesmo a movimentação do personagem funciona assim? É isso mesmo! Quando você se move no jogo, seu cliente diz pro servidor que seu jogador está se mexendo e precisa atualizar a posição dele. O servidor atualiza sua posição para qualquer outra pessoa conectada — e então envia o resultado de volta pra você. É como se houvessem dois Blokotos rodando ao mesmo tempo! Ambos agem de forma diferente nos bastidores, apesar de agirem de uma forma praticamente igual. Isso torna o desenvolvimento um pouco mais complicado. Se o Blokoto fosse um jogo de apenas um jogador, as coisas seriam muito mais simples.

Mas não se preocupe! Segundo o próprio Inknight:

A versão Alfa 1.1.0 realmente melhorou nosso fluxo de trabalho nesse quesito, já que o sistema de criação de objetos foi reescrito a fim de ser muito mais automatizado.

  • Qual a parte mais difícil do desenvolvimento até então?

A parte mais difícil do desenvolvimento é manter cada sistema conectado. A infraestrutura por trás de um projeto como o Blokoto é… complicada. É composta por diversas camadas, e cada uma basicamente tem seu próprio projeto. Só o simples ato de criar uma conta, acessar a página do jogo, instalá-lo, apertar pra jogar, abrir o jogo, e a partir disso fazer coisas dentro dele — isso isoladamente já envolve algo em torno de oito serviços diferentes e projetos funcionando em conjunto!

E isso sem contar ainda os sistemas de pagamento, que são os mais difíceis e que necessitam de mais cuidado e segurança. Adicione o fórum e o Discord nessa equação e… é, você já pegou a ideia, né. Manter o Blokoto rodando é um trabalho duro — mas é isso que se paga para que obras de arte como o Cathedral Ward e o Assalto ao Neymar a mão armada possam existir, e fazemos isso orgulhosamente com um sorriso no rosto!

De longe uma das melhores criações do Blokoto até agora.

Cathedral Ward por @Cath

  • Vamos falar sobre negócios, Inknight. Diga-nos um recurso que você gostaria de adicionar, porém não é possível agora.

Transportes, como carros, motos, jatos e mochilas a jato. Eles são extremamente complexos e desafiadores em se adicionar a jogos multijogador, tudo por causa de problemas relacionados à sincronização. Não é nenhuma novidade que, em grande parte dos jogos, esses sistemas são notoriamente fáceis em ser quebrados.

É algo que eu definitivamente quero adicionar no futuro, mas o lado multijogador ainda precisa ficar um pouco mais maduro antes de eu cogitar em trazê-los ao jogo.

Sim — nosso sonho em dirigir, voar e se mover rapidamente por aí é bem real. Ele praticamente existe! Mas só pode ser idealizado a partir do momento que os transportes pararem de explodir todos os nossos servidores. Até lá, vamos apenas continuar sonhando em disputar um racha…

Modelo por @Bruno_P

  • Recurso mais difícil de ser adicionado até agora?

Sem sombra de dúvidas, é o sistema de modelagem Argila, especificamente aquela ferramenta que torna a modelagem possível. Não é algo suficiente apenas para fazer um sistema de voxel, também terá que ser altamente otimizado para que a atualização de chunks ocorra rapidamente, não causando lags durante a edição. O sistema atual levou muito tempo para chegar nesse estado, e a ferramenta de modelagem costumava ser um verdadeiro pesadelo quando usada.

Nossos jogadores mais antigos devem se lembrar de como o Argila funciona de uma forma bem diferente.

Nossos jogadores veteranos provavelmente vão se recordar das primeiras fases da ferramenta usando o Argila, antes mesmo do modo online sequer existir. Um de nossos erros anteriores foi adicionar muitos recursos antes de otimizar o jogo por si só, e muita coisa teve que ser removida depois. Nas palavras do próprio Inknight:

É muito mais estável agora se comparada com o que costumava ser, e até bem satisfatória em usar. A parte mais complicada foi a minha falta de experiência com cálculos geométricos — e o Argila simplesmente se baseia totalmente nisso. Usando LLMs (IA) durante o desenvolvimento realmente me ajudou a visualizar e entender como implementar as coisas de um jeito estável.

O segundo sistema mais complicado foi as armas. É algo extremamente complexo desenvolver jogos multijogador quando o servidor é a autoridade suprema, e essa dificuldade é ainda mais visível ao mexer com mecânicas de armas.

O auxílio de LLMs não significa que o Blokoto use código de IA!

Hoje em dia, o Argila roda lindamente — e está ficando cada vez mais otimizado com o tempo. Sendo o pivô principal para a fundação do jogo inteiro, é natural que seja nosso maior foco desde sempre. Só resta saber um pouco mais de matemática… e também uma pitada de sanidade do Inknight para manter tudo no eixo.

  • Qual a senha do seu cartão de crédito e os 3 números atrás?

a12345678! — 777, Se divirta!


Canto dos BR, por @Brambs

O projeto do Blokoto finalmente está tomando forma — porém ainda é apenas um bebê aprendendo a andar. Você pode ajudar em nosso crescimento ao entrar em nosso servidor de Discord ou participar de nosso fórum!

CTA Image

Entre no nosso servidor oficial do Discord!

Entre!

Você agora já sabe alguns dos muitos desafios que enfrentamos durante o desenvolvimento. Talvez sua empatia pelo Inknight tenha subido mais um pouquinho!

Obrigado por seguir nossa jornada — mais notícias virão em breve!