Mod cho Minecraft Server - nó hoạt động như thế nào?


9

Máy chủ Minecraft đến như một bình duy nhất. Làm thế nào mod được phát triển? Làm thế nào để họ tương tác với bình ban đầu? Có gì dưới mui xe?

Những công nghệ có liên quan ở đó? Tôi chủ yếu là một anh chàng C ++ / Python, nhưng tôi muốn tìm hiểu điều gì đó về phát triển mod.

Câu trả lời:


11

JAR chỉ đơn giản là một tệp ZIP, chứa các tệp lớp khác nhau và siêu dữ liệu khác được sử dụng - đó là định dạng được chuẩn hóa hoàn toàn.

Các tệp ZIP có thể được trích xuất và các tệp lớp có thể được chỉnh sửa khi cần thiết để sửa đổi. Các tệp đã sửa đổi sau đó được thêm lại vào kho lưu trữ, điều này làm cho máy chủ sử dụng các tệp đã sửa đổi thay vì các tệp gốc.

Về mặt kỹ thuật, các mod Minecraft thực sự là phiên bản "hack" của mã gốc: các tệp lớp nhị phân thực tế phải được sửa đổi để cho trò chơi biết về nội dung mới; chưa có hỗ trợ mod chính thức nào (mặc dù Notch đã tuyên bố rằng họ sẽ làm việc với nó trong bản Beta).

Tất nhiên, đó không phải là cách làm rất hay nếu bạn chủ động thiết kế mod. Thay vào đó, bạn sẽ thiết kế một số loại kiến ​​trúc plugin cho phép mã tùy chỉnh được chạy khi thích hợp. Chính xác là bạn sẽ làm thế nào về điều này phụ thuộc vào những gì bạn muốn mod của mình có thể làm được - ví dụ: nếu bảo mật là vấn đề đáng lo ngại, bạn có thể muốn thiết kế giao diện mod để sử dụng một số loại kịch bản, vì vậy bạn có thể hạn chế mod tất cả mọi thứ cho máy tính của người dùng.


Điều này không hoàn toàn đúng - chẳng hạn, McAdmin, được viết bằng C #
BlueRaja - Danny Pflughoeft

@BlueRaja: Theo tôi, MCAdmin không thực sự là một mod - đó là một máy chủ độc lập, tùy chỉnh. Mặc dù nó có thể cho phép khách hàng thực hiện những điều mới thông qua các lệnh, tôi coi hai điều này là khác nhau.
Michael Madsen

Huh? Không, nó chắc chắn là một mod; nó là một cái bọc xung quanh máy chủ minecraft. Nó yêu cầu máy chủ minecraft phải chạy, vì vậy nó không độc lập. Tôi đã xem xét ngắn gọn về nguồn này và nó xuất hiện để chặn các tin nhắn mạng và thay đổi chúng trên đường vào / ra.
BlueRaja - Daniel Pflughoeft

3
@BlueRaja: Huh - có thể đã thề rằng đó là một máy chủ độc lập, nhưng sau đó, một lần nữa, tôi thừa nhận rằng tôi chưa bao giờ thực sự sử dụng nó. Đây là một trường hợp đặc biệt, vì nó dường như hoạt động như một máy chủ proxy giữa người chơi và máy chủ. Tôi vẫn sẽ không gọi nó là mod, nhưng đó có thể chỉ là tôi.
Michael Madsen

6

Các mod người chơi đơn là các phiên bản hack của mã gốc. Mod nhiều người chơi là khác nhau ngay bây giờ. Hầu hết tất cả đều sử dụng trình bao bọc máy chủ của hey0, liên kết trong minecraft_server.jar (hoặc bất kỳ thuật ngữ nào có trong vùng đất Java) nhưng xác định các lớp chức năng riêng của nó, làm quá tải một số chức năng cốt lõi và chạy hàm chính của nó ()

Hey0 cung cấp API mod . Xem


1

Để biết thông tin của bạn, Mojang sẽ phát hành "Mod API" một thời gian trong tương lai gần (trong giai đoạn thử nghiệm, vì vậy trước khi phát hành chính thức vào khoảng tháng 11 năm 2011).

Trên thực tế, nó sẽ là mã nguồn đầy đủ, như đã đề cập trên blog của Notch

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

nhưng bây giờ, bạn phải "dịch ngược" các lọ, để xem mã bị xáo trộn một phần và biên dịch lại để sử dụng / gỡ lỗi sau này.

Để thực hiện điều này, tôi đặc biệt khuyên dùng Gói bộ giải mã Minecraft http://mcp.ocean-labs.de/index.php/MCP_Release

cũng có một vài hướng dẫn mod trên các diễn đàn, như thế này: http://www.minecraftforum.net/topic/96862-creating-mods-modding-tutorials-21511/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.