12 puntos por GN⁺ 2025-10-30 | 1 comentarios | Compartir por WhatsApp
  • Mojang anunció que eliminará por completo la ofuscación en Minecraft: Java Edition
  • La ofuscación era una práctica de seguridad común en la industria de los videojuegos, pero limitaba la accesibilidad del código y el desarrollo de mods
  • Hasta ahora, los nombres de clases, funciones y variables estaban todos ofuscados, lo que hacía que el desarrollo de mods y la depuración fueran complejos; ahora se ofrecerán builds con los nombres originales del código
  • La ofuscación desaparecerá desde la primera snapshot después de la actualización Mounts of Mayhem, y por un tiempo se distribuirán en paralelo versiones ofuscadas y no ofuscadas para mantener la compatibilidad con las herramientas existentes
  • Se espera que este cambio facilite mucho más el desarrollo de mods, el análisis de código, la interpretación de logs de fallos y la corrección de bugs

Historia de la ofuscación en el código de Minecraft

  • Java Edition ha usado ofuscación para proteger el código fuente desde sus primeros lanzamientos
    • Los nombres de clases, funciones y variables dentro del código se convertían intencionalmente en cadenas sin significado y no se publicaban tal cual
    • Por eso, los modders tenían que analizar manualmente el rol de cada parte del código
  • Desde 2019, Mojang había intentado aliviar esto publicando archivos de mapeo de ofuscación (obfuscation mappings)
    • Proporcionaban una lista de mapeo que vinculaba los nombres ofuscados con sus nombres originales con significado
    • Gracias a eso, a los modders les resultaba más fácil entender la estructura del código, pero seguía existiendo un paso intermedio

La decisión de eliminar la ofuscación

  • Mojang decidió eliminar la ofuscación en sí para quitar por completo ese paso intermedio
    • Se aplicará desde la primera snapshot posterior al lanzamiento completo de “Mounts of Mayhem”
    • En adelante, todas las versiones incluirán por defecto código con los nombres originales de variables, campos y clases
    • Los desarrolladores y modders podrán acceder y modificar el código de forma directa
  • Esto se interpreta como una medida para aumentar la apertura de Java Edition y reducir las barreras del ecosistema de mods

Etapa de transición para modders

  • Mojang preparó una transición considerando los problemas de compatibilidad con las herramientas existentes
    • Desde la próxima snapshot, también se distribuirá una versión experimental no ofuscada (experimental release)
    • Los modders podrán probar con anticipación sus herramientas y flujos de trabajo con la nueva estructura del código
    • Después de la transición completa, la versión ofuscada actual dejará de ofrecerse
  • La primera versión totalmente no ofuscada será la primera snapshot después del lanzamiento de Mounts of Mayhem

Objetivo del cambio

  • Mojang afirmó que “el modding es parte central de Java Edition” y explicó que la ofuscación frenaba su crecimiento
    • Será posible crear, actualizar y depurar mods más rápido, sin pasar por procesos complejos de descifrado del código
    • La mejor legibilidad de los logs de fallos también mejorará la velocidad para resolver problemas
    • También se espera que se simplifiquen la colaboración entre modders y el proceso de aprendizaje

Licencias y lineamientos legales

  • Este cambio no afecta el EULA ni las Usage Guidelines
    • Los creadores de Minecraft y de mods deberán seguir cumpliendo esas reglas
    • Cada archivo jar incluirá un archivo LICENSE con enlace directo al EULA
  • Cambios futuros:
    • Se eliminará de la versión .json la información de mapeo de ofuscación
    • Tanto el cliente como el servidor se ofrecerán en archivos jar no ofuscados
    • Cada jar incluirá un nuevo archivo LICENSE

Próxima dirección

  • Mojang describió esto como una “transición hacia un futuro más transparente” y planea recopilar activamente comentarios de la comunidad
  • La eliminación de la ofuscación representa uno de los cambios más abiertos en el entorno de desarrollo en la historia de Minecraft Java Edition,
    con la expectativa de acelerar el crecimiento del ecosistema de mods y ampliar su valor educativo

1 comentarios

 
GN⁺ 2025-10-30
Opiniones de Hacker News
  • Sorprende que Minecraft, siendo un juego con una comunidad de mods tan fuerte, haya tenido desarrolladores trabajando a partir de binarios Java descompilados y ofuscados
    Es impresionante la dedicación de quienes pasaron más de 10 años quitando y reaplicando ofuscación mientras mejoraban las herramientas

    • En 2004 jugué un MMO en servidores pirata, donde el administrador del servidor agregaba funciones modificando binarios directamente con un editor hexadecimal
      Era impactante verlo cambiar caracteres uno por uno mirando hexadecimal, como un hacker de Matrix
    • Es otra prueba de que se puede modificar software incluso sin el código fuente
      Aunque Java siempre fue fácil de descompilar, así que la verdadera barrera no era la ofuscación sino la complejidad de la estructura orientada a objetos
    • En realidad, desde 2019 Mojang empezó a ofrecer oficialmente archivos de mapeo
      Ya no hacía falta que la comunidad los creara por su cuenta como antes
    • Java es fácil de descompilar, así que si entiendes el bytecode de la JVM puedes meterle mano rápido
      Bastaba con conocer la estructura de la VM y el concepto de despacho de objetos
      La comunidad temprana de modding de Minecraft era realmente divertida, y fue una de las experiencias de programación más memorables que he tenido
    • Yo tampoco conocía mucho Minecraft, así que asumía que tenía un sistema oficial de plugins
      Pero me sorprendió enterarme de que la mayor parte del ecosistema se construyó mediante ingeniería inversa
  • Juegos como Minecraft, Roblox, Geometry Dash y Trackmania son casos de éxito impulsados por la fuerza de la comunidad
    Si el motor es cerrado o desarrollar es difícil, cuesta mucho crecer, como pasó con Vision Pro o el metaverso
    Tiene que ser fácil para desarrolladores aficionados y usuarios pequeños participar, para que se forme una comunidad

    • La serie Flight Simulator también creó un enorme ecosistema de add-ons
      Pero al final lo importante es que el juego en sí sea bueno
      Cuando la comunidad crece, una parte de ella naturalmente empieza a hacer mods
      Por ejemplo, Richard Burns Rally no fue diseñado pensando en mods, pero los fans terminaron agregando autos, pistas e incluso funciones en línea
      Algo similar pasa con el motor voxel Luanti
    • La calidad inicial del motor de Roblox era realmente sobresaliente
      En 2006 podías ejecutar al instante miles de juegos multijugador 3D gratis, con destrucción de construcciones y deformación de terreno
      Para la época era revolucionario, y esa accesibilidad tan simple fue lo que terminó haciéndolo dominar el mercado infantil
    • Creo que Minecraft es una excepción
      Desde la alfa ya ofrecía una experiencia de un jugador excelente, con un equilibrio perfecto entre supervivencia y creatividad
      Ya en esa época generaba millones de dólares en ingresos
    • Otra razón por la que fracasó el metaverso es que nadie lo quiere
      Casi nadie quiere ponerse un visor de VR caro
    • No estoy de acuerdo con la idea de que los motores para VR sean malos
      Unity, Unreal y Godot tienen buen soporte para VR
      El problema es que hay pocos usuarios para el costo de desarrollo
      Hay que considerar accesibilidad, UX, prevención del mareo y muchas otras cosas, así que desarrollar sale mucho más caro
      Por ejemplo, incluso mostrar subtítulos en un entorno 6DoF ya es difícil
  • Los obfuscation mappings que Mojang publicó en 2019 eran listas para desofuscar nombres
    Gracias a eso los modders ya no tenían que adivinar todo el código, pero queda la duda de por qué publicaron solo la mitad

    • Porque muchas herramientas de mods ya estaban adaptadas al sistema de nombres de la comunidad
    • Me imagino al equipo legal entrando en pánico apenas escuchó la palabra desofuscación
    • Tal vez fue simplemente por razones legales o por conveniencia procedimental
    • También me pregunto si esos mapeos eran una especie de API oficial que solo incluía algunas clases o métodos
  • Me pregunto si algún día publicarán Minecraft Java Edition como open source en GitHub
    Parece de esos productos que seguirían vendiéndose en cualquier plataforma, como Skyrim

    • Ya existen launchers open source que funcionan bien mientras tengan cuidado con la autenticación de cuentas
      Los archivos del juego también se pueden descargar gratis desde servidores de Microsoft, así que no parece que abrir el código les causara pérdidas
    • En 2010 Notch prometió que “si bajaban las ventas, publicaría el código fuente”
      Archivo de la página web de esa época
    • Como con Doom, una buena opción sería abrir solo el motor
      Los recursos artísticos seguirían protegidos por derechos de autor
    • Una alternativa parecida sería Minetest o Luanti
    • Hoy en día, podrían publicar el código y mantener de pago solo el acceso al servidor de autenticación de cuentas, sin afectar demasiado los ingresos
  • Últimamente prefiero trabajar en Luanti
    Puedes recrear con mods una experiencia casi igual a la de Minecraft, y también hay modos de juego como VoxeLibre
    Además, el código fuente de la mayoría de los mods escritos en Lua también está disponible
    En especial, Zoonami me parece interesante porque ofrece una experiencia tipo Pokémon

    • Me pregunto si en Luanti ya existen modpacks grandes como AllTheMods 10 o Meatballcraft
    • Parece que Zoonami podría lograr lo que Tuxemon no pudo
  • Minecraft ya es fácil de piratear, así que abrir el código probablemente no causaría mucho daño
    La mayoría mantiene cuentas legítimas para usar los servidores de autenticación de Mojang
    Incluso es tan grande que podrían volverlo open source imponiendo una condición de no uso comercial

    • Aunque si le pones una “cláusula de no uso comercial”, ya no sería open source de verdad sino Source Available
  • La ofuscación agresiva de Proguard complica mucho entender el código porque cambia los nombres de las clases por otros enrevesados e incluso aplica inlining
    En ese sentido, esta medida es un gran avance

  • ¡Es una buena noticia! Se abren nuevas posibilidades para la comunidad de modding de Minecraft

  • Los mapeos creados por la comunidad tenían licencias libres, pero los de Microsoft no
    Eso podría haber sido una especie de trampa

    • Pero ahora que los mapeos mismos desaparecieron, ya no tengo claro cuál sería esa trampa
    • Me pregunto si los nombres de variables también están protegidos por copyright
  • Si de verdad quisieran hacerlo más fácil, lo mejor sería publicar el código fuente con una licencia que permita mods