12 poin oleh GN⁺ 2025-10-30 | 1 komentar | Bagikan ke WhatsApp
  • Mojang mengumumkan akan menghapus obfuscation sepenuhnya dari Minecraft: Java Edition
  • Obfuscation merupakan praktik keamanan yang umum di industri game, tetapi membatasi aksesibilitas kode dan pengembangan mod
  • Sebelumnya, nama kelas, fungsi, dan variabel semuanya di-obfuscate sehingga pengembangan mod dan debugging menjadi rumit, tetapi kini akan disediakan build yang menyertakan nama kode asli
  • Obfuscation akan hilang mulai dari snapshot pertama setelah update Mounts of Mayhem, dan demi kompatibilitas dengan tool yang ada, selama beberapa waktu versi obfuscated dan de-obfuscated akan didistribusikan bersamaan
  • Perubahan ini diharapkan akan semakin mempermudah pengembangan mod, analisis kode, pembacaan crash log, dan perbaikan bug

Sejarah obfuscation kode Minecraft

  • Java Edition telah menggunakan obfuscation untuk melindungi source code sejak awal perilisannya
    • Nama kelas, fungsi, dan variabel di dalam kode sengaja diubah menjadi string yang tidak bermakna dan tidak dipublikasikan
    • Akibatnya, para modder harus menganalisis peran tiap bagian kode secara manual
  • Sejak 2019, Mojang meredakan hal ini dengan merilis file obfuscation mappings
    • Menyediakan daftar mapping yang menghubungkan nama yang di-obfuscate dengan nama aslinya yang bermakna
    • Berkat itu, modder lebih mudah memahami struktur kode, tetapi proses perantara tetap ada

Keputusan untuk menghapus obfuscation

  • Mojang memutuskan untuk menghapus obfuscation itu sendiri agar proses perantara benar-benar hilang
    • Berlaku mulai snapshot pertama setelah rilis penuh “Mounts of Mayhem”
    • Ke depannya, semua versi akan secara default menyediakan kode yang memuat nama asli variabel, field, kelas, dan lainnya
    • Developer dan modder akan dapat mengakses dan memodifikasi kode secara langsung
    Iklan
  • Ini dipandang sebagai langkah yang meningkatkan keterbukaan Java Edition dan menurunkan hambatan dalam ekosistem mod

Tahap transisi untuk modder

  • Mojang menyiapkan masa transisi dengan mempertimbangkan masalah kompatibilitas tool yang ada
    • Mulai snapshot berikutnya, rilis eksperimental de-obfuscated juga akan didistribusikan
    • Modder dapat menguji tool dan workflow lebih awal agar sesuai dengan struktur kode baru
    • Setelah transisi penuh, versi obfuscated lama akan dihentikan
  • Versi pertama yang sepenuhnya de-obfuscated adalah snapshot pertama setelah perilisan Mounts of Mayhem

Tujuan perubahan

  • Mojang menyatakan bahwa “modding adalah inti dari Java Edition”, dan menjelaskan bahwa obfuscation telah menghambat pertumbuhannya
    • Tanpa harus melakukan decoding kode yang rumit, pembuatan, pembaruan, dan debugging mod dapat dilakukan lebih cepat
    • Keterbacaan crash log meningkat sehingga penyelesaian masalah juga menjadi lebih cepat
    • Kolaborasi antar-modder dan proses belajar juga diharapkan menjadi lebih sederhana
    Iklan

Lisensi dan panduan hukum

  • Perubahan ini tidak memengaruhi EULA maupun Usage Guidelines
    • Pembuat Minecraft dan mod tetap harus mematuhi ketentuan tersebut
    • Setiap file jar akan menyertakan file LICENSE yang terhubung langsung ke EULA
  • Perubahan selanjutnya:
    • Informasi obfuscation mappings dihapus dari versi .json
    • Baik file jar client maupun server akan disediakan dalam keadaan de-obfuscated
    • Setiap jar menyertakan file LICENSE baru

Arah ke depan

  • Mojang menyebut ini sebagai “transisi menuju masa depan yang lebih transparan” dan berencana aktif mengumpulkan masukan dari komunitas
  • Penghapusan obfuscation ini merupakan perubahan lingkungan pengembangan paling terbuka dalam sejarah Minecraft Java Edition,
    dan diharapkan akan mempercepat pertumbuhan ekosistem mod serta memperluas nilai edukatifnya

1 komentar

 
GN⁺ 2025-10-30
Opini Hacker News
  • Mengejutkan bahwa Minecraft adalah game dengan komunitas mod yang sangat kuat, tetapi para pengembangnya bekerja dengan mendekompilasi biner Java yang diobfuskasi
    Dedikasi mereka luar biasa, mengembangkan tooling sambil berulang kali melakukan deobfuscation dan re-obfuscation selama lebih dari 10 tahun

    • Pada 2004 saya pernah memainkan game MMO di server bajakan, dan operator server menambahkan fitur dengan memodifikasi binernya langsung memakai hex editor
      Pemandangan saat dia melihat heksadesimal dan mengubahnya satu karakter demi satu karakter benar-benar mengesankan, seperti peretas di film Matrix
    • Ini bukti lain bahwa perangkat lunak bisa dimodifikasi bahkan tanpa source code
      Hanya saja Java memang sejak awal mudah didekompilasi, jadi hambatan sebenarnya bukan obfuscation kode melainkan kompleksitas struktur berorientasi objek
    • Sebenarnya sejak 2019 Mojang mulai menyediakan file mapping secara resmi
      Jadi komunitas tidak perlu lagi membuat dan memakainya sendiri seperti dulu
    • Java mudah didekompilasi, jadi kalau sudah paham bytecode JVM, cukup cepat untuk mulai mengutak-atiknya
      Cukup memahami struktur VM dan konsep object dispatch
      Komunitas modding Minecraft di masa awal benar-benar tempat yang menyenangkan, dan itu salah satu pengalaman coding paling berkesan yang pernah saya alami
    • Saya juga tidak begitu akrab dengan Minecraft, jadi saya kira ada sistem plugin resmi
      Ternyata mengejutkan bahwa sebagian besar ekosistemnya dibangun lewat reverse engineering
  • Game seperti Minecraft, Roblox, Geometry Dash, dan Trackmania adalah contoh sukses berkat kekuatan komunitas
    Jika engine-nya tertutup atau sulit dikembangkan, akan sulit tumbuh seperti Vision Pro atau metaverse
    Agar komunitas terbentuk, pengembang hobi dan pengguna skala kecil harus bisa ikut serta dengan mudah

    • Seri Flight Simulator juga membangun ekosistem add-on yang sangat besar
      Namun pada akhirnya yang penting adalah game yang memang ‘bagus’
      Saat komunitas membesar, sebagian darinya akan secara alami mulai membuat mod
      Misalnya Richard Burns Rally awalnya tidak dirancang untuk modding, tetapi para penggemar tetap menambahkan mobil, trek, bahkan fitur online
      Fenomena serupa juga terlihat pada engine voxel Luanti
    • Kematangan engine Roblox pada masa awal benar-benar luar biasa
      Pada 2006, ribuan game multiplayer 3D gratis bisa langsung dijalankan, dan bahkan mendukung penghancuran bangunan serta deformasi terrain
      Itu sangat inovatif untuk zamannya, dan aksesibilitasnya yang sederhana pada akhirnya membuatnya menguasai pasar anak-anak
    • Saya rasa Minecraft adalah pengecualian
      Sejak versi alpha, pengalaman single-player-nya sudah sangat bagus, dan keseimbangan antara survival dan kreativitas terasa sempurna
      Bahkan pada masa itu saja, game ini sudah menghasilkan jutaan dolar pendapatan
    • Alasan lain metaverse gagal adalah karena memang tidak ada yang menginginkannya
      Hampir tidak ada orang yang ingin memakai headset VR yang mahal
    • Saya tidak setuju dengan anggapan bahwa engine VR itu buruk
      Unity, Unreal, dan Godot semuanya punya dukungan VR yang bagus
      Masalahnya adalah jumlah pengguna terlalu kecil dibanding biaya pengembangan
      Ada banyak hal yang harus dipertimbangkan seperti aksesibilitas, UX, dan pencegahan mabuk gerak, sehingga pengembangannya jauh lebih mahal
      Misalnya, bahkan menampilkan subtitle di lingkungan 6DoF pun sulit
  • Obfuscation mappings yang dirilis Mojang pada 2019 adalah daftar yang mengembalikan nama-nama yang diobfuskasi
    Berkat itu para modder tidak perlu lagi menebak semua kode, tetapi tetap muncul pertanyaan kenapa hanya setengah yang dibuka

    • Karena banyak tool mod sudah menyesuaikan diri dengan sistem penamaan komunitas
    • Mungkin tim legal mendengar istilah deobfuscation lalu langsung panik
    • Bisa juga semata karena alasan hukum atau kemudahan prosedural
    • Ada juga rasa penasaran apakah mapping itu berbentuk API resmi yang hanya mencakup sebagian class atau method
  • Saya penasaran apakah suatu hari Minecraft Java Edition akan dirilis sebagai open source di GitHub
    Rasanya game ini akan terus laku di platform apa pun seperti Skyrim

    • Sudah ada launcher open source yang tetap berjalan normal selama hati-hati dengan autentikasi akun
      File game juga bisa diunduh gratis dari server Microsoft, jadi rasanya tidak banyak kerugian jika dijadikan open source
    • Pada 2010 Notch pernah berjanji, “kalau penjualan menurun saya akan membuka source code”
      Arsip halaman web saat itu
    • Seperti Doom, membuka engine saja sebagai open source juga bisa menjadi pendekatan yang baik
      Aset artistik tetap dilindungi hak cipta
    • Alternatif serupa yang ada adalah Minetest atau Luanti
    • Kalau sekarang, rasanya source bisa dibuka dan hanya hak akses ke server autentikasi akun yang tetap berbayar tanpa banyak memengaruhi pendapatan
  • Akhir-akhir ini saya lebih suka mengerjakan sesuatu di Luanti
    Pengalaman yang nyaris sama dengan Minecraft bisa diwujudkan lewat mod, dan ada juga game mod seperti VoxeLibre
    Source code mod yang ditulis dalam Lua juga sebagian besar terbuka
    Secara khusus, Zoonami menarik karena menghadirkan pengalaman bermain ala Pokémon

    • Saya penasaran apakah Luanti juga punya modpack besar seperti AllTheMods 10 atau Meatballcraft
    • Zoonami tampaknya bisa mencapai tujuan yang gagal dicapai Tuxemon
  • Minecraft sudah mudah dibajak, jadi rasanya hampir tidak ada kerugian tambahan kalau source-nya dibuka
    Kebanyakan orang tetap mempertahankan akun asli untuk memakai server autentikasi Mojang
    Skalanya bahkan cukup besar sampai rasanya open source dengan syarat nonkomersial pun mungkin saja dilakukan

    • Hanya saja, kalau ada “larangan penggunaan komersial”, itu bukan open source sejati melainkan tergolong Source Available
  • Obfuscation agresif dari Proguard membuat nama class menjadi rumit dan bahkan melakukan inlining, sehingga kode lebih sulit dipahami
    Dari sudut pandang itu, langkah kali ini adalah kemajuan besar

  • Kabar baik! Ini membuka kemungkinan baru bagi komunitas modding Minecraft

  • Mapping buatan komunitas memakai lisensi bebas, tetapi mapping milik Microsoft tidak demikian
    Ini bisa jadi semacam jebakan

    • Namun sekarang mapping itu sendiri sudah hilang, jadi saya tidak begitu paham jebakannya apa
    • Saya penasaran apakah hak cipta juga berlaku pada nama variabel
  • Kalau benar-benar ingin membuatnya lebih mudah, cara terbaik tampaknya adalah membuka source code dengan lisensi yang mengizinkan modding