Entrevista: As dificuldades no desenvolvimento do Blokoto

MV Dias
・ 5 min read

Olá! É ótimo te ver aqui. Você já checou as novidades sobre os Criadores de Blokoto? Não? Então não perca tempo!
Nada nesse mundão é simples, né? E o Blokoto não foge à regra. Se pudéssemos, conjuraríamos novas funções perfeitinhas com magia e varinha de condão... e tentamos! Infelizmente, o Godot não tinha suporte. Então, temos que seguir o jeito clássico: código, paciência e uma boa dose de esperança.

Como você pode ver pela flecha convenientemente posicionada, aquele ali é o Inknight, fundador e principal desenvolvedor do Blokoto. O visionário responsável por manter todo esse projeto de pé! Nessa entrevista, ele irá falar sobre nossa velocidade e os desafios por trás da criação do jogo. Afinal, a vida não é um morango: planejávamos lançar um update bem antes do Halloween... mas, como todo bom plano, ele resolveu dar uma voltinha. Não é fácil — e é justamente por isso que queremos mostrar o lado real das coisas. Aqui está uma entrevista com o Inknight: honesta, direta e sem cortes!

- No que você perde mais tempo atualmente?
"Antes do Jamesiin entrar na equipe era o design do site. Eu ficava muito tempo planejando isso e os resultados eram sempre muito programmer art. Eram bons, mas sempre tinha o fator limitante de você não poder focar em algo pra fazer bem."

"Hoje que o Jamesiin é o designer web, o que mais ocupa espaço de desenvolvimento é o sistema de multiplayer e server-side. Como o jogo é multiplayer, todos os sistemas precisam ser escritos duas vezes, uma pro client (seu computador, o jogo que você baixa) e outra pro server (que fica hospedado na nossa nuvem). Então, se eu adiciono um emissor de luz dentro do jogo, ele vai ser implementado nos dois."
Você sabia que isso se estende até mesmo para a movimentação do personagem? Isso mesmo! Quando você se mexe no jogo, seu cliente manda pro nosso servidor que o jogador está se movendo e que é hora de atualizar a posição dele, o servidor atualiza a posição para todos os outros clientes conectados, e aí te retorna o resultado. É como se houvessem dois Blokotos rodando a todo momento!
Ambos funcionam de formas diferentes, apesar de serem iguais. Isso acaba dificultando o desenvolvimento! Se Blokoto fosse um jogo singleplayer, essas implementações seriam mais simples. Mas não se preocupe! Nas palavras de Inknight:
"A v1.1.0-alpha melhorou muito o workflow nesse sentido, porque agora a criação de novos objetos foi reescrita pra ser mais automatizada."
- O que é mais difícil no desenvolvimento do Blokoto até então?
"O mais difícil no desenvolvimento é manter todos os sistemas interligados. A infraestrutura de um projeto como o Blokoto é complicada, e é composta por diversas camadas, cada uma sendo um projeto a parte. Só de passar pelo processo de criar a conta, acessar a página do jogo, baixar, clicar em jogar, abrir o jogo e fazer coisas nele já estamos falando de 8 serviços e projetos diferentes envolvidos. Isso sem contar os sistemas de pagamento, que são os mais complicados e os que mais exigem cuidado e segurança. Somando isso com o fórum e o Discord, é, você já entendeu kkkk"
Manter o Blokoto funcionando é um trabalho difícil... mas, se é que o for preciso pra criações incríveis como "Cathedral Ward" e "Assalto ao Neymar a Mão Armada" existirem, fazemos com um sorriso no rosto!


- Nos diga Inknight, nos diga algo que você gostaria de adicionar e não consegue no momento!
"Veículos, como carros, motos, jatos e jetpacks. Eles são extremamente complexos e desafiadores de adicionar em jogos multiplayer devido a sincronização. Não é a toa que em grande parte dos jogos, esses sistemas são muito fáceis de bugar. São coisas que eu quero adicionar no futuro, mas o multiplayer precisa amadurecer mais um pouco pra eu poder implementar eles no jogo."
Sim — nosso sonho de pilotar, cavalgar e manobrar é real. Ele existe! ... Só precisamos esperar que veículos parem de ameaçar explodir nossos servidores, claro. Até lá, sonhemos com nossas corridas...

- A feature mais desafiadora de adicionar até então.
"Sem dúvida nenhuma é o sistema Argila de modelagem, mais especificamente a ferramenta que torna possível a modelagem. Não basta só fazer um sistema voxel, ele precisa ser muito bem otimizado pra que atualizações de chunks ocorram rápido pra não dar lag na hora de editar. O sistema atual demorou muito pra ficar maduro, e a ferramenta de modelagem era um horror de usar até um tempo atrás."

Nossos jogadores mais antigos vão se lembrar das ferramentas do Argila antes mesmo do modo online existir. Um erro no desenvolvimento foi adicionar funções demais sem antes otimizar o jogo em si, e muitas coisa precisaram ser removidas. Nas palavras de Inknight:
"Hoje ela é muito estável comparado com o que era antes, e é até satisfatória de usar. O motivo de ser difícil fazer algo assim é que eu não sou experiente com cálculos geométricos, e ela é praticamente só isso. O uso de LLMs (IAs) nessa parte do desenvolvimento me ajudou muito a visualizar melhor como implementar de forma estável esse negócio. O segundo sistema mais difícil foi o de armas. É muito complicado desenvolver jogos multiplayer cujo servidor é a autoridade máxima, e isso reflete nas armas."

Atualmente, Argila funciona muito bem e tende a estar ainda mais otimizado no futuro. Sendo a base do jogo, é claro que foi o foco inicial! Isso exige muitos cálculos complexos e um pouquinho da sanidade de Inknight pra funcionar.
- Qual a senha do seu cartão de crédito e os três numeruzinhos atrás?
"a12345678! — 777"
Aproveitem!

O projeto do Blokoto finalmente está ganhando forma, mas ainda é um bebê em fase de crescimento. Você pode nos ajudar entrando no servidor do Discord ou participando do fórum!
Entre no servidor do Blokoto!

Obrigado por acompanhar o desenvolvimento! Em breve, teremos notícias!