top of page

O guardião invisível — e banimentos que finalmente se explicam 👁️

Foto do escritor: Marcel Dütscher
Marcel Dütscher
26 de jul.
4 min de leitura

Há um tempo escrevemos aqui sobre feito para crianças desde o projeto — denúncias, feedback e um olho atento. Para ser honesto, o olho atento era a parte mais fraca: nós podíamos receber denúncias, mas mal conseguíamos olhar o que realmente acontecia num mundo. Foi nisso que trabalhamos — com dois blocos de construção: um modo observador para supervisão e um sistema de banimento totalmente reformulado que finalmente conta aos jogadores afetados o que está acontecendo.


Modo observador. Quando chega uma denúncia (“alguém está construindo bobagem”, “alguém está escrevendo coisas ruins”), agora podemos entrar nesse mundo sem perturbá-lo. E de forma realmente invisível — não do tipo “por favor, não me desenhe” que um jogo modificado poderia simplesmente ignorar. O servidor guarda o observador só para si: sem avatar, sem nave estacionada, sem plataforma de pouso reservada, sem animação de descida, sem pets, sem speeder, sem vaga de jogador ocupada e sem mudança na contagem de jogadores. Para todos naquele mundo, literalmente ninguém está lá. O voo atravessa paredes (senão você nunca entraria numa base lacrada), as criaturas ignoram o observador e atirar não é possível de qualquer forma.


Observar significa observar. O observador não pode tocar em nada no mundo — com exatamente uma exceção: pode minerar blocos. Essa é a única alavanca que realmente remove uma construção ofensiva de um mundo, e cada remoção é registrada. No chat, o observador fica mudo; mostrar-se de propósito exige um comando à parte. E uma insígnia permanente de SPECTATOR fica na tela o tempo todo — você nunca deve acreditar por engano que está jogando normalmente.


Por que foi feito de forma tão rigorosa. Duas decisões invisíveis por fora, mas importantes para nós. Primeira: o papel de observador não é guardado no arquivo de salvamento, é recalculado a partir da configuração do servidor a cada entrada. Salvamentos podem ser baixados e reenviados em outro lugar — um papel de supervisor guardado viajaria junto, para máquinas que não são nossas. Segunda: ele não é uma opção do mundo. Quem é dono de um mundo não deve poder desligar a supervisão desse mundo. É também por isso que ele não depende da configuração de “cheats de admin”, que os mundos mantêm desligada por padrão de qualquer forma.


Descobrir onde algo aconteceu. Para isso há comandos novos: /players mostra quem está online — e todo mundo que já jogou neste mundo; /builds mostra onde alguém construiu; /where leva você até um jogador; /goto pula entre planetas também (o teletransporte antigo só definia coordenadas e te largava no planeta errado 🙈). Além disso, uma página de visão geral no nosso painel de administração lê direto do salvamento do mundo: jogadores, estruturas e “pontos quentes de construção” — assim se encontra uma casa que alguém largou no meio do nada sem um núcleo de base. E cada célula alterada agora lembra quem mexeu nela por último e quando. Antes de embutir isso, medimos o que custa em armazenamento: nem uma linha extra no banco de dados, porque o armazenamento já é por célula.


Também em mundos privados — atrás de uma trava dupla. As primeiras versões tinham uma falha absurda: o observador invisível só alcançava mundos públicos, sem senha — justamente aqueles em que menos coisa acontece. Crianças quase sempre jogam em mundos privados cuja senha circula num grupo de amigos. Então a supervisão agora alcança esses também. Para que isso não vire uma porta dos fundos, o acesso tem trava dupla: exige uma conta de operador que só pode ser criada apresentando um código secreto — e o nome de jogador previsto para isso, reservado em todo o sistema e que ninguém mais pode registrar ou usar para jogar. Se faltar qualquer um dos dois, nada acontece.


E então os banimentos. Isso era tratado de forma realmente ruim: uma conta banida conseguia entrar normalmente, e o muro só aparecia ao entrar num mundo — sem motivo, sem data e sem como perguntar. Do lado do jogador, o jogo simplesmente estava quebrado. Agora a própria entrada carrega o estado das coisas, e há uma caixa de mensagens: “seu mundo foi excluído (motivo)”, “seu banimento foi levantado”. Essa mensagem é escrita no momento em que algo acontece — depois a informação não existe mais, já que um mundo excluído está, bem, apagado.


Uma suspensão em vez de um exílio. Os banimentos agora são principalmente temporários — três dias por padrão. Uma suspensão expirada conta como “não banido” em todos os pontos de verificação, então “três dias de folga” nunca pode virar em silêncio uma exclusão permanente. O registro continua guardado para o histórico, de qualquer forma. Os motivos vêm em categorias fixas (chat, griefing, trapaça, nome, outro), exibidas traduzidas em alemão e inglês — e, se uma pessoa acrescentar algo, aparece literalmente, exatamente como foi digitado. A parte mais importante de tudo: a mensagem pode dizer o dia em que você será bem-vindo de volta.


Donos de mundos agora podem moderar o próprio mundo. Se você é dono de um mundo, tem a mesma alavanca para o seu mundo: sua própria lista de banidos, aplicada de forma tão confiável quanto a nossa. Ela lembra a conta (então trocar de nome não adianta) e o nome no jogo (convidados do fliperama não têm conta nenhuma). Você escolhe numa lista de pessoas que realmente visitaram o mundo — digitar nomes à mão é exatamente como se acaba bloqueando a criança errada. E como um banimento só decide a próxima entrada, também existe expulsar: o jogador volta imediatamente ao menu, com um motivo, no próprio idioma. A mensagem sai antes de a conexão fechar — assim um jogo modificado não consegue simplesmente ignorá-la e continuar jogando.


O que deliberadamente não construímos. A jogada óbvia contra a fuga de banimentos seria o reconhecimento de dispositivo (“conta nova, mesmo PC”). Nós a rejeitamos, por três motivos: o identificador muda assim que se conecta um pendrive ou o Windows faz uma atualização maior; um jogo modificado consegue falsificá-lo em cinco minutos; e computadores de escola com imagem idêntica pareceriam todos iguais. Mais a parte legal — ler um identificador de dispositivo exige consentimento pela lei alemã, que menores de 16 anos não podem dar de forma válida. A supervisão não pode virar vigilância. E mais uma regra escrita no código: a própria conta de operador não pode ser banida nem expulsa — senão a supervisão poderia ser desligada por dentro.


Tudo isso já está no código e entra no ar com a próxima atualização do servidor. Esperamos de coração precisar disso o mínimo possível. 🌟

Posts recentes

Ver tudo

Comentários


Não é mais possível comentar esta publicação. Contate o proprietário do site para mais informações.
bottom of page