Komunitas gaming sedang membahas proyek menarik yang bertujuan untuk mendekompilasi Minecraft: Nintendo Switch Edition, yang memberikan wawasan tentang sejarah teknis versi konsol Minecraft. Proyek ini secara khusus berfokus pada versi 1.0.17 dari Nintendo Switch Edition, bagian dari apa yang dikenal sebagai Legacy Console Edition (LCE) yang dikembangkan oleh 4J Studios.
Detail Teknis Proyek Dekompilasi
- Target: Minecraft: Nintendo Switch Edition v1.0.17
- Referensi: Minecraft: Wii U Edition Patch 35 (v560)
- Perbedaan kompiler:
- Wii U Edition: Kompiler GHS (sulit untuk dicocokkan)
- Switch Edition: Kompiler Clang (lebih mudah dicocokkan dengan versi yang tepat)
- Keuntungan Switch Edition untuk dekompilasi:
- Memuat typeinfo (membantu mengidentifikasi vtables)
- Dapat mengimpor simbol dari Wii U Edition
- Alat yang dibutuhkan:
- Python 3.6+
- Ninja
- CMake 3.13+
- Rust toolchain
- Berbagai dependensi lainnya
Perjalanan Java-ke-C++ dari Minecraft
Salah satu temuan paling menarik dari diskusi komunitas adalah bagaimana Minecraft berkembang di berbagai platform. Sementara banyak gamer tahu Minecraft dimulai sebagai aplikasi Java, lebih sedikit yang memahami sejarah pengembangan kompleks yang mengikutinya. Ketika versi konsol menjadi diperlukan, Mojang mempekerjakan 4J Studios untuk membuat port untuk platform seperti Xbox 360, PS3, dan akhirnya Nintendo Switch.
Seperti yang dijelaskan oleh seorang komentator, Java pada konsol adalah kombinasi yang buruk, sehingga mereka mulai menulis port mereka baru dari C++, tetapi sangat diturunkan dari Java upstream sebagai titik referensi. Ini menjelaskan mengapa proyek dekompilasi mengungkapkan kode C++ dengan nama kelas yang mengingatkan pada pustaka standar Java seperti BufferedOutputStream - 4J Studios pada dasarnya menciptakan padanan C++ dari komponen Java untuk mempertahankan fungsionalitas serupa sambil mendapatkan manfaat kinerja dari C++.
Tiga Cabang Minecraft
Proyek dekompilasi menyoroti bagaimana Minecraft akhirnya terbagi menjadi tiga basis kode yang berbeda: Java Edition asli, versi konsol C++ dari 4J Studios (Legacy Console Edition), dan penulisan ulang C++ in-house Mojang untuk perangkat mobile (Pocket Edition, yang kemudian menjadi Bedrock).
Fragmentasi ini menciptakan dinamika kompetitif yang menarik. Sementara versi konsol 4J secara khusus dioptimalkan untuk konsol game, Pocket Edition Mojang secara bertahap berkembang dari ponsel ke Windows 10 dan akhirnya menggantikan versi 4J di konsol sekitar waktu rilis Update Aquatic. Komunitas tampaknya terbagi mengenai implementasi mana yang memberikan pengalaman konsol yang lebih baik, dengan beberapa komentator mencatat bahwa 4J melakukan pekerjaan yang lebih baik di konsol daripada game mobile yang dipuja-puja dari Microsoft.
Timeline Versi Minecraft
- Original Java Edition: Versi pertama, masih dipertahankan hingga saat ini
- Legacy Console Edition (4J Studios):
- Platform: Xbox 360, PS3, PS Vita, Wii U, Xbox One, PS4, Nintendo Switch
- Ditulis dalam: C++ (dengan struktur terinspirasi Java)
- Nintendo Switch Edition v1.0.17 sesuai dengan Wii U Edition Patch 35 (v560)
- Dihentikan setelah Update Aquatic
- Pocket Edition/Bedrock (Mojang):
- Dimulai sebagai versi mobile
- Diperluas ke Windows 10
- Akhirnya menggantikan Legacy Console Edition di konsol generasi saat ini
- Ditulis dalam: C++
Nostalgia Komunitas Modding
Diskusi seputar proyek dekompilasi ini telah memicu nostalgia yang cukup besar untuk ekosistem modding yang kuat dari versi Java. Banyak komentator dengan nostalgia mengingat mod teknis seperti IndustrialCraft 2, ComputerCraft, dan Buildcraft yang menambahkan fitur seperti mikrokontroler yang dapat diprogram, listrik, dan sistem otomatisasi.
Saya merindukan modding dari versi Java asli - khususnya paket teknologi. Mikrokontroler yang dapat Anda program untuk membuat robot pertanian, listrik, alat listrik, tenaga surya, minyak, itu adalah masa-masa yang indah!
Meskipun Bedrock Edition menawarkan kinerja dan fitur yang lebih unggul seperti dukungan VR, kemampuan modding tetap lebih terbatas dibandingkan dengan Java Edition. Namun, seperti yang ditunjukkan oleh beberapa komentator, Java Edition dan komunitas moddingnya tetap aktif hingga saat ini melalui platform seperti Fabric dan Forge.
Tantangan Teknis Dekompilasi
Proyek dekompilasi itu sendiri menghadapi rintangan teknis yang signifikan. Para pengembang memilih untuk bekerja dengan Nintendo Switch Edition karena, meskipun tidak memiliki simbol fungsi, ia berisi typeinfo yang membantu mengidentifikasi vtables. Mereka menggunakan Wii U Edition (yang memiliki simbol fungsi) sebagai referensi untuk memindahkan simbol ke versi Switch.
Dokumentasi proyek mengungkapkan perbedaan kompiler yang menarik antar versi - Wii U Edition menggunakan kompiler GHS (Green Hills Software) yang hampir tidak mungkin untuk dicocokkan dengan tepat, sementara Switch Edition menggunakan Clang, membuatnya lebih mudah untuk mencapai pencocokan assembly 1:1 dengan versi kompiler yang tepat.
Proyek ini tampaknya masih dalam tahap awal, dengan beberapa komentator mencatat bahwa aktivitas telah melambat dalam beberapa bulan terakhir. Seperti banyak upaya dekompilasi, proyek ini menawarkan wawasan berharga tentang bagaimana game komersial disusun sambil berjalan dengan hati-hati pada garis hukum dengan mengharuskan pengguna untuk menyediakan file game asli mereka sendiri.
Bagi mereka yang tertarik pada sejarah pengembangan game, proyek ini memberikan gambaran menarik tentang bagaimana Minecraft berkembang di berbagai platform dan keputusan teknis yang membentuk berbagai inkarnasinya.
Referensi: Minecraft: LCE Decompilation Project