12 pontos por GN⁺ 2025-10-30 | 1 comentários | Compartilhar no WhatsApp
  • A Mojang anunciou que vai remover completamente a ofuscação do Minecraft: Java Edition
  • A ofuscação era uma prática de segurança comum na indústria de jogos, mas limitava a acessibilidade ao código e o desenvolvimento de mods
  • Antes, nomes de classes, funções e variáveis eram todos ofuscados, o que tornava o desenvolvimento de mods e a depuração mais complexos; agora, serão fornecidas builds com os nomes originais do código
  • A ofuscação desaparecerá a partir do primeiro snapshot após a atualização Mounts of Mayhem, e por algum tempo serão distribuídas versões ofuscadas e não ofuscadas em paralelo para manter a compatibilidade com as ferramentas existentes
  • Com essa mudança, espera-se que o desenvolvimento de mods, a análise de código, a interpretação de logs de crash e a correção de bugs fiquem bem mais fáceis

História da ofuscação de código no Minecraft

  • O Java Edition usa ofuscação para proteger o código-fonte desde os primeiros dias de lançamento
    • Os nomes de classes, funções e variáveis dentro do código eram intencionalmente convertidos em strings sem significado e não eram expostos publicamente
    • Por causa disso, os modders precisavam analisar manualmente o papel de cada parte do código
  • Desde 2019, a Mojang vinha tentando amenizar isso ao publicar arquivos de mapeamento de ofuscação (obfuscation mappings)
    • Era fornecida uma lista de mapeamento que ligava os nomes ofuscados aos nomes originais e significativos
    • Isso ajudou os modders a entender melhor a estrutura do código, mas ainda existia uma etapa intermediária

Decisão de remover a ofuscação

  • A Mojang decidiu remover a própria ofuscação, eliminando completamente a etapa intermediária
    • A mudança será aplicada a partir do primeiro snapshot após o lançamento completo de “Mounts of Mayhem”
    • Daqui para frente, todas as versões trarão por padrão código com os nomes originais de variáveis, campos, classes etc.
    • Desenvolvedores e modders passarão a ter acesso e possibilidade de modificação mais diretos do código
  • A medida é vista como uma forma de aumentar a abertura do Java Edition e reduzir as barreiras do ecossistema de mods

Etapa de transição para modders

  • A Mojang preparou um período de transição levando em conta problemas de compatibilidade com ferramentas existentes
    • A partir do próximo snapshot, também será distribuída uma versão experimental não ofuscada (experimental release)
    • Os modders poderão testar previamente suas ferramentas e fluxos de trabalho com a nova estrutura de código
    • Depois da migração completa, a versão ofuscada atual será descontinuada
  • A primeira versão totalmente não ofuscada será o primeiro snapshot após o lançamento de Mounts of Mayhem

Objetivo da mudança

  • A Mojang afirmou que “modding é parte central do Java Edition” e explicou que a ofuscação vinha atrapalhando esse crescimento
    • Será possível criar, atualizar e depurar mods mais rapidamente, sem a necessidade de decifrar código complexo
    • A melhoria na legibilidade dos logs de crash também deve acelerar a resolução de problemas
    • Espera-se ainda simplificar a colaboração entre modders e o processo de aprendizado

Licença e diretrizes legais

  • Essa mudança não afeta o EULA nem as Usage Guidelines
    • Criadores de Minecraft e de mods ainda precisam seguir essas regras
    • Cada arquivo jar incluirá um arquivo LICENSE com link direto para o EULA
  • Mudanças futuras:
    • Remoção das informações de mapeamento de ofuscação no arquivo de versão .json
    • Arquivos jar de cliente e servidor fornecidos sem ofuscação
    • Inclusão de um novo arquivo LICENSE em cada jar

Próximos passos

  • A Mojang descreveu a mudança como uma “transição para um futuro mais transparente” e pretende coletar ativamente o feedback da comunidade
  • O fim da ofuscação é uma das mudanças mais abertas no ambiente de desenvolvimento da história do Minecraft Java Edition,
    com expectativa de acelerar o crescimento do ecossistema de mods e ampliar seu valor educacional

1 comentários

 
GN⁺ 2025-10-30
Comentários do Hacker News
  • É impressionante que Minecraft tenha uma comunidade de mods tão forte e, ainda assim, os desenvolvedores tenham trabalhado decompilando binários Java ofuscados
    A dedicação deles, evoluindo as ferramentas por mais de 10 anos enquanto repetiam o processo de desofuscação e reofuscação, é admirável

    • Em 2004, joguei um MMO em um servidor pirata, e o administrador do servidor adicionava recursos modificando os binários diretamente com um editor hexadecimal
      Foi marcante vê-lo alterando um caractere por vez olhando para o hexadecimal, como um hacker de Matrix
    • Isso é mais uma prova de que é possível modificar software mesmo sem o código-fonte
      Mas Java sempre foi fácil de decompilar, então a verdadeira barreira não era a ofuscação, e sim a complexidade da estrutura orientada a objetos
    • Na verdade, desde 2019 a Mojang passou a fornecer oficialmente arquivos de mapeamento
      Já não era mais necessário que a comunidade criasse tudo por conta própria como antes
    • Java é fácil de decompilar, então, entendendo o código da JVM, dá para mexer rapidamente
      Bastava conhecer a estrutura da VM e o conceito de despacho de objetos
      A comunidade de modding do Minecraft no começo era realmente muito divertida, e foi uma das experiências de programação mais memoráveis que já tive
    • Eu também não conhecia muito Minecraft, então achei que existia um sistema oficial de plugins
      Mas foi surpreendente descobrir que a maior parte do ecossistema foi construída por engenharia reversa
  • Jogos como Minecraft, Roblox, Geometry Dash e Trackmania são casos de sucesso movidos pela força da comunidade
    Se a engine for fechada ou difícil de desenvolver, é difícil crescer como o Vision Pro ou o metaverso tentaram fazer
    É preciso que desenvolvedores hobbyistas e pequenos usuários consigam participar com facilidade para que a comunidade se forme

    • A série Flight Simulator também criou um enorme ecossistema de addons
      Mas no fim o mais importante é o próprio fato de ser um “bom jogo”
      Quando a comunidade cresce, uma parte dela naturalmente começa a fazer mods
      Por exemplo, Richard Burns Rally não foi pensado originalmente para modding, mas os fãs adicionaram carros, pistas e até funcionalidades online
      Fenômeno parecido também aparece na engine voxel Luanti
    • A qualidade inicial da engine do Roblox era realmente excelente
      Em 2006, já era possível iniciar instantaneamente milhares de jogos 3D multiplayer de graça, com destruição de construções e alteração de terreno
      Na época isso era revolucionário, e essa acessibilidade simples acabou dominando o mercado infantil
    • Acho que Minecraft é uma exceção
      Desde a versão alfa, a experiência single-player era excelente, e o equilíbrio entre sobrevivência e criatividade era perfeito
      Já naquela época ele gerava milhões de dólares em receita
    • Outro motivo para o fracasso do metaverso é que ninguém quer isso
      Quase ninguém quer usar um headset de VR caro
    • Não concordo com a afirmação de que engines de VR sejam ruins
      Unity, Unreal e Godot têm bom suporte a VR
      O problema é que há poucos usuários em relação ao custo de desenvolvimento
      Há muitas coisas a considerar, como acessibilidade, UX e prevenção de enjoo, então o desenvolvimento fica muito mais caro
      Por exemplo, até exibir legendas em um ambiente 6DoF já é difícil
  • Os obfuscation mappings que a Mojang publicou em 2019 eram uma lista para desfazer os nomes ofuscados
    Isso ajudou os modders a não precisarem mais adivinhar todo o código, mas fica a dúvida de por que só divulgaram metade

    • Porque muitas ferramentas de mod já estavam ajustadas ao sistema de nomes da comunidade
    • Imagino que o jurídico tenha surtado só de ouvir a expressão desofuscação
    • Talvez tenha sido simplesmente por motivos legais ou de conveniência processual
    • Também fico curioso se os mappings eram uma espécie de API oficial cobrindo apenas algumas classes ou métodos
  • Fico curioso se um dia vão liberar o Minecraft Java Edition como open source no GitHub
    Parece o tipo de jogo que continuaria vendendo em qualquer plataforma, como Skyrim

    • Já existem launchers open source que funcionam normalmente, desde que se tome cuidado com a autenticação da conta
      Os arquivos do jogo também podem ser baixados gratuitamente dos servidores da Microsoft, então não parece que abrir o código causaria prejuízo
    • Em 2010, Notch prometeu que “se as vendas caíssem, publicaria o código-fonte”
      Arquivo da página da época
    • Como no Doom, também seria uma boa ideia abrir só a engine
      Os assets artísticos continuariam protegidos por direitos autorais
    • Alternativas parecidas incluem Minetest e Luanti
    • Hoje em dia, parece que poderiam liberar o código e manter paga apenas a permissão de acesso aos servidores de autenticação de conta, sem grande impacto na receita
  • Hoje em dia, eu prefiro trabalhar no Luanti
    Dá para reproduzir quase a mesma experiência de Minecraft com mods, e também há mods de jogo como VoxeLibre
    O código-fonte dos mods escritos em Lua também costuma estar aberto
    Em especial, Zoonami é interessante por oferecer uma experiência parecida com Pokémon

    • Fico curioso se o Luanti tem modpacks grandes como AllTheMods 10 ou Meatballcraft
    • Parece que Zoonami vai alcançar o objetivo que o Tuxemon não conseguiu atingir
  • Minecraft já é fácil de piratear, então abrir o código provavelmente causaria pouquíssimo prejuízo
    A maioria mantém uma conta oficial para usar os servidores de autenticação da Mojang
    É um projeto tão grande que até uma abertura de código com restrição a uso não comercial pareceria viável

    • Só que, se vier com uma “cláusula de proibição de uso comercial”, isso não seria open source de verdade, e sim Source Available
  • A ofuscação agressiva do Proguard dificulta bastante entender o código, trocando nomes de classes por nomes complexos e até fazendo inlining
    Nesse sentido, esta medida é um grande avanço

  • Ótima notícia! Isso abre novas possibilidades para a comunidade de modding de Minecraft

  • Os mappings criados pela comunidade tinham licença livre, mas os da Microsoft não
    Isso talvez fosse uma espécie de armadilha

    • Mas agora que os próprios mappings desapareceram, não entendo bem qual seria essa armadilha
    • Fico curioso se nomes de variáveis também podem ser protegidos por direitos autorais
  • Se quisessem realmente facilitar ainda mais, o ideal seria publicar o código-fonte com uma licença que permitisse modding