Mod untuk Server Minecraft - bagaimana cara kerjanya?

9

Server Minecraft hadir dalam satu toples. Bagaimana mod dikembangkan? Bagaimana mereka berinteraksi dengan toples asli? Apa yang ada di bawah tenda?

Teknologi apa yang terlibat di sana? Saya sebagian besar pria C ++ / Python, tapi saya ingin belajar sesuatu tentang pengembangan mod.

selamat tinggal
sumber

Jawaban:

11

JAR hanyalah file ZIP, yang berisi berbagai file kelas dan metadata lain yang digunakan - ini adalah format yang sepenuhnya standar.

File ZIP dapat diekstraksi, dan file kelas dapat diedit seperlunya untuk modifikasi. File yang dimodifikasi kemudian ditambahkan kembali ke dalam arsip, yang membuat server menggunakan file yang dimodifikasi dan bukan yang asli.

Secara teknis, mod Minecraft benar-benar versi "diretas" dari kode asli: file kelas biner yang sebenarnya harus dimodifikasi untuk membuat game tahu tentang hal-hal baru; belum ada dukungan mod resmi (walaupun Notch telah menyatakan bahwa mereka akan mengerjakannya selama Beta).

Tentu saja, itu bukan cara yang sangat baik untuk melakukan sesuatu jika Anda secara aktif merancang mod. Sebagai gantinya, Anda akan merancang semacam arsitektur plugin yang memungkinkan kode khusus dijalankan jika perlu. Bagaimana Anda akan melakukannya tergantung pada apa yang Anda inginkan agar mod Anda dapat lakukan - misalnya, jika keamanan menjadi perhatian, Anda mungkin ingin merancang antarmuka mod untuk menggunakan semacam skrip, sehingga Anda dapat membatasi mod dari melakukan segala macam hal ke komputer pengguna.

Michael Madsen
sumber
Ini tidak sepenuhnya benar - McAdmin, misalnya, ditulis dalam C #
BlueRaja - Danny Pflughoeft
@ BlueRaja: MCAdmin sebenarnya bukan mod menurut saya - ini adalah server yang berdiri sendiri dan khusus. Meskipun memungkinkan klien untuk melakukan hal-hal baru melalui perintah, saya menganggap dua hal berbeda.
Michael Madsen
Hah? Tidak, itu pasti mod; itu adalah pembungkus di sekitar server minecraft. Diperlukan server minecraft untuk berjalan, jadi itu tidak mandiri. Saya melihat sumbernya sebentar, dan itu muncul untuk mencegat pesan jaringan dan mengubahnya saat keluar / masuk.
BlueRaja - Danny Pflughoeft
3
@ BlueRaja: Huh - bisa bersumpah itu adalah server yang berdiri sendiri, tapi sekali lagi, saya akui bahwa saya tidak pernah benar-benar menggunakannya. Ini semacam kasus khusus, karena tampaknya berfungsi dengan bertindak sebagai server proxy antara pemain dan server. Saya masih belum cukup menyebutnya mod, tapi itu mungkin hanya saya.
Michael Madsen
6

Mod pemain tunggal adalah versi kode asli yang diretas. Mod multipemain berbeda sekarang. Mereka hampir semua menggunakan wrapper server hey0, yang menghubungkan di minecraft_server.jar (atau apa pun istilahnya di tanah Jawa) tetapi mendefinisikan kelas fungsinya sendiri, membebani beberapa fungsi inti, dan menjalankan sendiri utamanya ()

Hey0 menyediakan mod API . Lihat

cthom06
sumber
1

Sekadar informasi, Mojang akan merilis "Mod API" dalam waktu dekat (selama beta, jadi sebelum rilis resminya yang akan tiba sekitar november 2011).

Bahkan, itu akan menjadi kode sumber lengkap, seperti yang disebutkan di blog Notch

http://notch.tumblr.com/post/4955141617/the-plan-for-mods

tetapi untuk sekarang, Anda harus "mendekompilasi" toples, untuk melihat kode yang sebagian dikaburkan dan mengkompilasi ulang untuk digunakan nanti / debugging.

Untuk melakukan ini, saya sangat merekomendasikan Paket Minecraft Coder's http://mcp.ocean-labs.de/index.php/MCP_Releases

ada beberapa tutorial modding di forum juga, seperti ini: http://www.minecraftforum.net/topic/96862-creating-mods-modding-tutorials-21511/

dominicbri7
sumber