Projek Dekompilasi Minecraft Legacy Console Edition Mendedahkan Sejarah Penulisan Semula C++ oleh 4J Studios

BigGo Editorial Team
Projek Dekompilasi Minecraft Legacy Console Edition Mendedahkan Sejarah Penulisan Semula C++ oleh 4J Studios

Komuniti permainan video sedang membincangkan projek menarik yang bertujuan untuk mendekompilasi Minecraft: Nintendo Switch Edition, yang memberikan gambaran tentang sejarah teknikal versi konsol Minecraft. Projek ini memberi tumpuan khusus kepada versi 1.0.17 Nintendo Switch Edition, sebahagian daripada apa yang dikenali sebagai Legacy Console Edition (LCE) yang dibangunkan oleh 4J Studios.

Butiran Teknikal Projek Dekompilasi

  • Sasaran: Minecraft: Nintendo Switch Edition v1.0.17
  • Rujukan: Minecraft: Wii U Edition Patch 35 (v560)
  • Perbezaan pengkompil:
    • Wii U Edition: Pengkompil GHS (sukar untuk dipadankan)
    • Switch Edition: Pengkompil Clang (lebih mudah dipadankan dengan versi yang betul)
  • Kelebihan Switch Edition untuk dekompilasi:
    • Mengandungi typeinfo (membantu mengenal pasti vtables)
    • Boleh memindahkan simbol dari Wii U Edition
  • Alat yang diperlukan:
    • Python 3.6+
    • Ninja
    • CMake 3.13+
    • Rust toolchain
    • Pelbagai kebergantungan lain

Perjalanan Java-ke-C++ Minecraft

Salah satu penemuan paling menarik daripada perbincangan komuniti ini adalah bagaimana Minecraft berkembang merentasi platform yang berbeza. Walaupun ramai pemain tahu Minecraft bermula sebagai aplikasi Java, lebih sedikit yang memahami sejarah pembangunan kompleks yang berlaku selepas itu. Apabila versi konsol menjadi keperluan, Mojang mengupah 4J Studios untuk mencipta port untuk platform seperti Xbox 360, PS3, dan akhirnya Nintendo Switch.

Seperti yang dijelaskan oleh seorang pengomen, Java pada konsol adalah kombinasi yang buruk, jadi mereka mula menulis port mereka baru dari C++, tetapi sangat dipengaruhi dari Java sebagai rujukan. Ini menjelaskan mengapa projek dekompilasi mendedahkan kod C++ dengan nama kelas yang mengingatkan kepada pustaka standard Java seperti BufferedOutputStream - 4J Studios pada dasarnya mencipta komponen C++ yang setara dengan Java untuk mengekalkan fungsi yang serupa sambil mendapat manfaat prestasi C++.

Tiga Cabang Minecraft

Projek dekompilasi ini menyoroti bagaimana Minecraft akhirnya terbahagi kepada tiga pangkalan kod yang berbeza: Java Edition asal, versi konsol C++ 4J Studios (Legacy Console Edition), dan penulisan semula C++ dalaman Mojang untuk peranti mudah alih (Pocket Edition, yang kemudiannya menjadi Bedrock).

Perpecahan ini mewujudkan dinamik persaingan yang menarik. Sementara versi konsol 4J dioptimumkan khusus untuk konsol permainan, Pocket Edition Mojang secara beransur-ansur berkembang dari telefon ke Windows 10 dan akhirnya menggantikan versi 4J pada konsol sekitar masa pelancaran Update Aquatic. Komuniti nampaknya terbahagi mengenai implementasi mana yang memberikan pengalaman konsol yang lebih baik, dengan beberapa pengomen menyatakan bahawa 4J melakukan kerja yang lebih baik pada konsol berbanding permainan mudah alih Microsoft yang dimuliakan.

Garis Masa Versi Minecraft

  • Edisi Java Asal: Versi pertama, masih dikekalkan sehingga kini
  • Edisi Konsol Legacy (4J Studios):
    • Platform: Xbox 360, PS3, PS Vita, Wii U, Xbox One, PS4, Nintendo Switch
    • Ditulis dalam: C++ (dengan struktur berinspirasi Java)
    • Edisi Nintendo Switch v1.0.17 sepadan dengan Edisi Wii U Patch 35 (v560)
    • Dihentikan selepas Kemaskini Aquatic
  • Pocket Edition/Bedrock (Mojang):
    • Bermula sebagai versi mudah alih
    • Dikembangkan ke Windows 10
    • Akhirnya menggantikan Edisi Konsol Legacy pada konsol generasi terkini
    • Ditulis dalam: C++

Nostalgia Komuniti Modding

Perbincangan mengenai projek dekompilasi ini telah mencetuskan nostalgia yang ketara untuk ekosistem modding versi Java yang mantap. Ramai pengomen mengingati dengan nostalgia mod teknikal seperti IndustrialCraft 2, ComputerCraft, dan Buildcraft yang menambah ciri-ciri seperti mikropengawal boleh diprogram, elektrik, dan sistem automasi.

Saya merindui modding dari versi Java asal - khususnya pakej teknologi. Mikropengawal yang boleh anda program untuk mencipta robot pertanian, elektrik, alat elektrik, solar, minyak, itu adalah hari-hari yang indah!

Walaupun Bedrock Edition menawarkan prestasi dan ciri-ciri yang lebih baik seperti sokongan VR, keupayaan modding masih lebih terhad berbanding Java Edition. Walau bagaimanapun, seperti yang ditunjukkan oleh beberapa pengomen, Java Edition dan komuniti moddingnya masih aktif hari ini melalui platform seperti Fabric dan Forge.

Cabaran Teknikal Dekompilasi

Projek dekompilasi itu sendiri menghadapi halangan teknikal yang ketara. Para pembangun memilih untuk bekerja dengan Nintendo Switch Edition kerana, walaupun ia tidak mempunyai simbol fungsi, ia mengandungi typeinfo yang membantu mengenal pasti vtables. Mereka menggunakan Wii U Edition (yang mempunyai simbol fungsi) sebagai rujukan untuk memindahkan simbol ke versi Switch.

Dokumentasi projek mendedahkan perbezaan pengkompil yang menarik antara versi - Wii U Edition menggunakan pengkompil GHS (Green Hills Software) yang hampir mustahil untuk dipadankan dengan tepat, manakala Switch Edition menggunakan Clang, menjadikannya lebih mudah untuk mencapai pemadanan pemasangan 1:1 dengan versi pengkompil yang betul.

Projek ini nampaknya masih di peringkat awal, dengan beberapa pengomen menyatakan bahawa aktiviti telah berkurangan dalam beberapa bulan kebelakangan ini. Seperti banyak usaha dekompilasi, ia menawarkan pandangan berharga tentang bagaimana permainan komersial disusun sambil berjalan dengan berhati-hati pada garis undang-undang dengan memerlukan pengguna menyediakan fail permainan asal mereka sendiri.

Bagi mereka yang berminat dengan sejarah pembangunan permainan, projek ini memberikan gambaran menarik tentang bagaimana Minecraft berkembang merentasi platform dan keputusan teknikal yang membentuk pelbagai versinya.

Rujukan: Minecraft: LCE Decompilation Project