Моди для Minecraft Server - як це працює?


9

Сервер Minecraft поставляється як одна банка. Як розробляються модники? Як вони взаємодіють з оригінальною баночкою? Що там під кришкою?

Які технології там задіяні? Я в основному хлопець C ++ / Python, але хотів би дізнатися щось про розробку модів.

Відповіді:


11

JAR - це просто ZIP-файл, що містить різні файли класу та інші використовувані метадані - це повністю стандартизований формат.

Файли ZIP можуть бути вилучені, а файли класу можна редагувати в міру необхідності для модифікації. Потім змінені файли додаються назад в архів, завдяки чому сервер використовує змінені файли замість оригінальних.

Технічно моди Minecraft дійсно "зламали" версії оригінального коду: фактичні файли бінарного класу повинні бути змінені, щоб гра могла знати про нові речі; ще немає офіційної підтримки мод (хоча Notch заявив, що над цим вони працюватимуть під час Beta).

Звичайно, це не дуже приємний спосіб робити речі, якщо ви активно проектуєте для модників. Натомість ви створили б якусь архітектуру плагінів, яка дозволяє запускати спеціальний код, де це доречно. Точно, як ви б вирішили це, залежить від того, що ви хочете, щоб ваші модники мали змогу робити - наприклад, якщо безпека викликає занепокоєння, ви, ймовірно, хочете розробити інтерфейс мода для використання якогось сценарію, щоб ви могли обмежувати модники робити всілякі речі на комп'ютер користувача.


Це не зовсім вірно - МакАдмін, наприклад, написаний на C #
BlueRaja - Danny Pflughoeft

@BlueRaja: На мою думку, MCAdmin насправді не є модифікатором - це власний, окремий сервер. Хоча це може дозволити клієнту робити нові речі за допомогою команд, я вважаю, що ці дві речі відрізняються.
Майкл Мадсен

Так? Ні, це був безумовно мод; це була обгортка навколо сервера minecraft. Це вимагало запуску сервера minecraft, тому він не був самостійним. Я коротко переглянув джерело, і, здавалося, перехоплюють мережеві повідомлення та змінюють їх у процесі входу / виходу.
BlueRaja - Danny Pflughoeft

3
@BlueRaja: Так - міг би присягнути, що це окремий сервер, але знову ж таки, я визнаю, що ніколи насправді не використовував. Це свого роду особливий випадок, оскільки він, як видається, працює як проксі-сервер між програвачем та сервером. Я все ще не дуже називав би це модом, але це, можливо, я просто.
Майкл Мадсен

6

Одиночні гравці модів є зламаними версіями вихідного коду. Наразі багатокористувацькі моди відрізняються. Вони майже всі використовують серверну обгортку hey0, яка посилається на minecraft_server.jar (або будь-який термін є у землі Java), але визначає власні класи функцій, перевантажує деякі основні функції та виконує власну головну ()

Hey0 надає модний API . Подивитися


1

Для вашої інформації, в найближчому майбутньому Mojang випустить "Mod API" (під час бета-версії, тож до офіційного релізу, який відбудеться близько листопада 2011 року).

Насправді це буде повний вихідний код, про який згадували у блозі Notch

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

але наразі вам доведеться "декомпілювати" банки, щоб побачити частково затуманений код і перекомпілювати його для подальшого використання / налагодження.

Для цього настійно рекомендую пакет Minecraft Coder http://mcp.ocean-labs.de/index.php/MCP_Releases

На форумах також є декілька модеруючих навчальних посібників, як цей: http://www.minecraftforum.net/topic/96862-creating-mods-modding-tutorials-21511/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.