12 पॉइंट द्वारा GN⁺ 2025-10-30 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Mojang ने घोषणा की है कि वह Minecraft: Java Edition से obfuscation पूरी तरह हटा रहा है
  • obfuscation गेम इंडस्ट्री में एक सामान्य security practice रही है, लेकिन इससे code accessibility और mod विकास पर सीमाएँ लगती थीं
  • पहले class, function और variable के नाम सभी obfuscated होते थे, जिससे mod development और debugging जटिल हो जाती थी, लेकिन अब original code names शामिल करने वाले builds उपलब्ध कराए जाएंगे
  • Mounts of Mayhem update के बाद आने वाले पहले snapshot से obfuscation हट जाएगा, और मौजूदा tools की compatibility बनाए रखने के लिए कुछ समय तक obfuscated और deobfuscated versions साथ-साथ जारी किए जाएंगे
  • इस बदलाव से mod development, code analysis, crash log interpretation, और bug fixing काफी आसान होने की उम्मीद है

Minecraft code obfuscation का इतिहास

  • Java Edition ने शुरुआती रिलीज़ से ही source code की सुरक्षा के लिए obfuscation का उपयोग किया है
    • code के अंदर class, function और variable names को जानबूझकर बेमानी strings में बदल दिया जाता था और उन्हें वैसे ही public नहीं किया जाता था
    • इसके कारण modders को हर code के काम को manually analyze करना पड़ता था
  • 2019 से Mojang ने इसे आसान बनाने के लिए obfuscation mappings files सार्वजनिक किए
    • obfuscated names को उनके मूल अर्थ वाले names से जोड़ने वाली mapping list दी गई
    • इससे modders के लिए code structure समझना आसान हुआ, लेकिन फिर भी बीच का एक process बना रहा

obfuscation हटाने का फैसला

  • Mojang ने obfuscation को ही हटाने का फैसला किया है ताकि बीच का process पूरी तरह खत्म हो जाए
    • “Mounts of Mayhem” की पूरी रिलीज़ के बाद आने वाले पहले snapshot से यह लागू होगा
    • आगे आने वाले सभी versions में variable names, field names, class names जैसे original names वाला code default रूप से उपलब्ध होगा
    • developers और modders को सीधे code access और modification की सुविधा मिलेगी
  • इसे Java Edition की openness बढ़ाने और mod ecosystem की बाधाएँ कम करने वाला कदम माना जा रहा है

modders के लिए transition चरण

  • Mojang ने मौजूदा tools की compatibility issues को ध्यान में रखते हुए transition period रखा है
    • अगले snapshot से deobfuscated experimental release भी साथ में जारी की जाएगी
    • modders नए code structure के अनुसार अपने tools और workflow को पहले से test कर सकेंगे
    • पूरी तरह transition होने के बाद मौजूदा obfuscated version बंद कर दिया जाएगा
  • पहला पूर्ण deobfuscated version Mounts of Mayhem रिलीज़ के बाद का पहला snapshot होगा

बदलाव का उद्देश्य

  • Mojang ने कहा कि “modding Java Edition का core है”, और obfuscation उसके विकास में बाधा बन रही थी
    • जटिल code deciphering के बिना तेज़ी से mod बनाना, update करना और debug करना संभव होगा
    • crash logs की readability बेहतर होने से issues सुलझाने की रफ़्तार भी बढ़ेगी
    • modders के बीच collaboration और learning process भी सरल होने की उम्मीद है

लाइसेंस और कानूनी दिशानिर्देश

  • इस बदलाव का EULA या Usage Guidelines पर कोई असर नहीं पड़ेगा
    • Minecraft और mod creators को अब भी इन नियमों का पालन करना होगा
    • हर jar file में EULA से सीधे जुड़ने वाली LICENSE file शामिल होगी
  • आगे होने वाले बदलाव:
    • version .json से obfuscation mapping information हटाई जाएगी
    • client/server jar files दोनों deobfuscated रूप में उपलब्ध कराए जाएंगे
    • हर jar में नई LICENSE file शामिल होगी

आगे की दिशा

  • Mojang ने इसे “ज़्यादा transparent future की ओर transition” बताया है और community feedback सक्रिय रूप से लेने की बात कही है
  • obfuscation हटना Minecraft Java Edition के इतिहास में सबसे अधिक open development environment changes में से एक है,
    जिससे mod ecosystem की growth तेज़ होने और educational value बढ़ने की उम्मीद है

1 टिप्पणियां

 
GN⁺ 2025-10-30
Hacker News राय
  • यह हैरानी की बात है कि Minecraft जैसा मज़बूत mod community वाला गेम होने के बावजूद, डेवलपर्स ने decompile किए गए obfuscated Java binaries पर काम किया
    10 साल से ज़्यादा समय तक deobfuscation और reobfuscation दोहराते हुए tooling को बेहतर बनाना उनकी समर्पण भावना दिखाता है

    • मैंने 2004 में एक MMO गेम pirate server पर खेला था, जहाँ server operator hex editor से सीधे binaries बदलकर features जोड़ता था
      वह hexadecimal numbers को देखते हुए एक-एक अक्षर बदलता था, बिल्कुल फिल्म Matrix के हैकर जैसा, और यह दृश्य बहुत प्रभावशाली था
    • यह इस बात का एक और सबूत है कि source code के बिना भी software को modify किया जा सकता है
      हालांकि Java में decompile करना मूल रूप से आसान है, इसलिए असली बाधा code obfuscation से ज़्यादा object-oriented structure की जटिलता है
    • दरअसल 2019 से Mojang आधिकारिक तौर पर mapping files देने लगा था
      अब पहले की तरह community को उन्हें खुद बनाकर इस्तेमाल नहीं करना पड़ता
    • Java को decompile करना आसान है, इसलिए JVM code समझते ही उस पर जल्दी काम शुरू किया जा सकता है
      VM structure और object dispatch की अवधारणा भर समझना काफ़ी था
      शुरुआती Minecraft modding community वाकई बहुत मज़ेदार जगह थी, और यह मेरे coding अनुभवों के सबसे यादगार पलों में से एक था
    • मैं भी Minecraft से ज़्यादा परिचित नहीं था, इसलिए मुझे लगा कि इसमें कोई आधिकारिक plugin system होगा
      लेकिन बाद में पता चला कि इसका ज़्यादातर ecosystem reverse engineering से बना था, यह काफ़ी चौंकाने वाला था
  • Minecraft, Roblox, Geometry Dash और Trackmania जैसे गेम community की ताकत से सफल हुए उदाहरण हैं
    अगर engine बंद हो या development मुश्किल हो, तो Vision Pro या metaverse की तरह बढ़ना कठिन होता है
    community बनने के लिए hobby developers और छोटे user groups का आसानी से शामिल होना ज़रूरी है

    • Flight Simulator series ने भी एक बड़ा add-on ecosystem बनाया
      लेकिन आखिरकार सबसे ज़रूरी चीज़ खुद ‘अच्छा गेम’ होना है
      जब community बड़ी होती है, तो उसका एक हिस्सा स्वाभाविक रूप से modding शुरू कर देता है
      उदाहरण के लिए Richard Burns Rally मूल रूप से modding को ध्यान में रखकर नहीं बना था, लेकिन fans ने इसमें cars, tracks और online features तक जोड़ दिए
      voxel engine Luanti में भी ऐसा ही देखने को मिलता है
    • Roblox के शुरुआती दौर में engine की परिपक्वता सचमुच शानदार थी
      2006 में मुफ़्त में हज़ारों 3D multiplayer games को तुरंत चलाया जा सकता था, और building destruction या terrain deformation भी संभव था
      उस समय के हिसाब से यह क्रांतिकारी था, और उसकी वही सरल accessibility आखिरकार बच्चों के बाज़ार पर छा गई
    • मुझे लगता है Minecraft एक अपवाद है
      alpha version से ही single-player experience बेहतरीन था, और survival व creativity का संतुलन लगभग परफेक्ट था
      उसी दौर में यह पहले से ही लाखों डॉलर की कमाई कर रहा था
    • metaverse के असफल होने की एक और वजह यह है कि कोई वास्तव में उसे चाहता ही नहीं
      महँगा VR headset पहनना बहुत कम लोग चाहते हैं
    • मैं इस बात से सहमत नहीं हूँ कि VR engine खराब हैं
      Unity, Unreal और Godot सभी में VR support अच्छा है
      असली समस्या यह है कि development cost के मुकाबले users कम हैं
      accessibility, UX और motion sickness से बचाव जैसी बहुत-सी चीज़ों पर ध्यान देना पड़ता है, इसलिए development कहीं ज़्यादा महँगा हो जाता है
      उदाहरण के लिए 6DoF environment में subtitles दिखाना भी आसान नहीं है
  • Mojang ने 2019 में जो obfuscation mappings जारी किए थे, वे obfuscated नामों को खोलने वाली सूची थीं
    इससे modders को अब हर code का अनुमान नहीं लगाना पड़ता था, लेकिन यह सवाल बना रहा कि सिर्फ आधा ही क्यों जारी किया गया

    • क्योंकि कई mod tools पहले से ही community naming scheme के अनुसार तैयार किए गए थे
    • शायद legal team ने deobfuscation शब्द सुनते ही घबरा गई होगी
    • हो सकता है यह सिर्फ कानूनी वजहों या procedural convenience की वजह से हुआ हो
    • यह भी जानने की जिज्ञासा है कि कहीं mappings केवल कुछ classes या methods तक सीमित official API के रूप में तो नहीं थीं
  • यह जानना दिलचस्प होगा कि क्या कभी Minecraft Java Edition को GitHub पर open source किया जाएगा
    Skyrim की तरह लगता है कि यह किसी भी platform पर बिकता रहेगा

    • पहले से ही open source launchers मौजूद हैं, जो account authentication का ध्यान रखें तो ठीक से काम करते हैं
      game files भी Microsoft servers से मुफ़्त में डाउनलोड की जा सकती हैं, इसलिए open source करने से शायद कोई खास नुकसान नहीं होगा
    • 2010 में Notch ने वादा किया था कि “अगर बिक्री घटेगी तो source code जारी कर दूँगा”
      उस समय के webpage का archive
    • Doom की तरह सिर्फ engine को open source करना भी अच्छा तरीका हो सकता है
      art assets तब भी copyright protection के तहत रहेंगे
    • इसके समान विकल्प Minetest या Luanti हैं
    • आज के समय में source खोलकर सिर्फ account authentication server access को paid रखा जाए, तो भी revenue पर शायद बड़ा असर नहीं पड़ेगा
  • आजकल मैं Luanti पर काम करना ज़्यादा पसंद करता हूँ
    इसमें mods के जरिए Minecraft जैसा लगभग वही अनुभव बनाया जा सकता है, और VoxeLibre जैसे game mods भी हैं
    Lua में लिखे गए mods का source code भी ज़्यादातर खुला हुआ है
    खासकर Zoonami दिलचस्प है, क्योंकि यह Pokémon जैसे game experience देता है

    • यह जानने की उत्सुकता है कि क्या Luanti में भी AllTheMods 10 या Meatballcraft जैसे बड़े modpacks हैं
    • लगता है Zoonami वह लक्ष्य हासिल कर सकता है जो Tuxemon नहीं कर पाया
  • Minecraft में पहले से ही piracy आसान है, इसलिए source खोलने से होने वाला नुकसान शायद लगभग न के बराबर होगा
    ज़्यादातर लोग Mojang के authentication servers इस्तेमाल करने के लिए official account बनाए रखते हैं
    इसका पैमाना इतना बड़ा है कि non-commercial शर्त के साथ source release भी संभव लगती है

    • लेकिन अगर “commercial use निषेध” clause हो, तो वह असली open source नहीं बल्कि Source Available कहलाएगा
  • Proguard की aggressive obfuscation class names को जटिल बना देती है और inlining तक कर देती है, जिससे code समझना मुश्किल हो जाता है
    इस लिहाज़ से यह कदम बड़ा आगे बढ़ना है

  • यह अच्छी खबर है! Minecraft modding community के लिए नई संभावनाएँ खुल रही हैं

  • community द्वारा बनाई गई mappings free license के तहत थीं, लेकिन Microsoft की mappings वैसी नहीं थीं
    यह किसी तरह का trap भी हो सकता है

    • लेकिन अब जबकि mappings ही हट गई हैं, समझ नहीं आता कि वह trap क्या था
    • यह भी जिज्ञासा है कि क्या variable names पर भी copyright लागू हो सकता है
  • अगर इसे सचमुच और आसान बनाना है, तो modding-allowed license के तहत source code जारी करना सबसे अच्छा होगा