Интро в разработку модов Minecraft

В этой статье я хочу рассказать, с чего начать разработку модификаций для компьютерной игры Minecraft (Майнкрафт), и что нам с этим можно будет сделать. Давайте разбираться (но не на котах).

Что такое модификация?

Модификация (на жаргоне - "мод") - это особый элемент программного обеспечения, который, конкретно в контексте Minecraft, динамически вносит изменения во внутриигровые процессы. Также посредством модов возможно добавление ранее не существовавших элементов игры, таких как блоки, предметы, сущности, новый транспорт и т. д.

Примеры модификаций

В Интернете существует бесчисленное множество модов, значительно различающихся по своей направленности. Для понимания происходящего давайте рассмотрим наиболее популярные модификации по категориям.

Интерфейс стамески из мода Chisel. Источник: curseforge.com
Интерфейс стамески из мода Chisel. Источник: curseforge.com

Дизайнерские моды

Смысл дизайнерских модов заключается не столько в интерактивности, сколько в визуальной составляющей блоков. Бесспорно, для этого можно использовать ресурс-паки (текстуры), однако упомянутые моды, например, Chisel или MrCrayfish's Furniture Mod, обеспечивают большую степень кастомизации (тонкой настройки).

Простой алтарь наполнения Thaumcraft. Источник: minecraftforum.net
Простой алтарь наполнения Thaumcraft. Источник: minecraftforum.net

Магические моды

Моды магической направленности фактически позволяют отыгрывать роль ведьм или волшебников, например, давать уже существующим предметам новые, ранее невиданные свойства. В качестве примеров магических модов приведу Witchery, Botania, Thaumcraft 4.

Бурбулятор Дельного. Источник: YouTube-канал "Дельный"
Бурбулятор Дельного. Источник: YouTube-канал "Дельный"

Технические моды

Технические моды добавляют в игру самую разнообразную технику. Благодаря техническим модам некоторые игроки создали наиболее сложные и продвинутые автоматические заводы, электростанции и многое другое. В качестве примеров технических модов приведу BuildCraft, IndustrialCraft 2 (квинтэссенциальный технический мод), ComputerCraft и Thermal Expansion.

Блоки DivineRPG. Источник: ru-minecraft.ru
Блоки DivineRPG. Источник: ru-minecraft.ru

Приключенческие и ролевые моды

Ролевые моды добавляют механики ролевых игр (RPG), такие как, например: боссов, прокачку навыков, и т. п. В качестве наиболее известного приключенческо-ролевого мода приведу в пример DivineRPG от автора под ником Velocityraptor.

Как разработать свой мод?

Чтобы начать разработку собственной модификации, давайте сначала определимся с несколькими пунктами. Итак:

0. Для разработки всего, что может быть хоть немного интерактивным (чтобы читало, писало, плакало и хрюкало), необходимо хотя бы минимальное знание программирования. Если вы не знаете базовые (или не очень) аспекты, я бы предложил вам взять свои же пока ещё не сожжённые старые университетские конспекты по программированию и хоть маленечко покумекать.

1. Моды не могут напрямую взаимодействовать с игрой. Для этого необходима библиотека-прослойка, которая называется установщиком. Есть несколько вариантов установщиков: ModLoader, Forge, NeoForge, Fabric. Причём мод, написанный под один установщик, не будет работать с другими; то же самое и с версиями самой игры (модификация для Minecraft 1.7.10 не будет работать с 1.6.4 или 1.12.2).

2. Моды пишутся только для издания Java Edition, посему работают на виртуальной машине Java, на которой, соответственно, работает и код самой игры. Поэтому, моды пишутся только на языках программирования, инфраструктурой которых предусмотрена возможность компиляции под JVM, таких как (собственно) Java, Scala или Kotlin.

3. Моды компилируются посредством сборочной системы Gradle, за счёт чего обеспечивается быстрая и безболезненная сборка/конфигурация/бутстраппинг окружения. Для работы с апстримом (сервером, на котором хранятся библиотеки, которые подгружаются при конфигурации окружения) необходимо прописать актуальные зеркала библиотек. Вот ссылка на гайд:

Подборка инструментария

Источник: blog.jetbrains.com
Источник: blog.jetbrains.com

IDE: IntelliJ IDEA Community

В очень многих гайдах по разработке модов для Minecraft используются преимущественно две интегрированные среды разработки (место, где и будет писаться код мода): JetBrains IntelliJ IDEA (коммерческая и бесплатная) и Eclipse IDE (с открытым исходным кодом). Я рекомендую использовать IntelliJ IDEA Community 2021.2, так как данная версия является наиболее проработанной и совместимой с большинством современной инфраструктуры для написания модов.

Источник картинки: wikihow.com
Источник картинки: wikihow.com

Установщик модов: Minecraft Forge

Как было упомянуто выше, моды не могут работать с "ванильным" Майнкрафтом, то есть без вшитого установщика. Всего в сообществе разработчиков модификаций для Minecraft наибольшую популярность приобрели четыре установщика модов: ModLoader, Forge, NeoForge и Fabric. Для разработки под самые ходовые версии (1.6.4, 1.7.10, 1.12.2, 1.16.5) в подавляющем большинстве случаев используют именно MC Forge, так как под него написано наибольшее количество модов от других авторов.

Источник картинки указан
Источник картинки указан

Версия Minecraft: 1.12.2

Как я уже сказал, самыми ходовыми версиями для написания модификаций являются 1.6.4, 1.7.10, 1.12.2 и 1.16.5. Этот выбор сделан не случайно; он обусловлен тем, что следующие сразу после данных версий релизы (1.7.2, 1.8, 1.13, 1.17) вносили кардинальные изменения как во внутриигровые механики, так и во "внутрянку", в связи с этим разработчики не успевали оперативно идти в ногу со временем - выпускать новые версии установщиков и модов под новые версии игры, когда они только выпускаются - таким образом сложилась традиция выпускать модификации под самый последний малый (minor) релиз версии. Я рекомендую разрабатывать под Minecraft 1.12.2, так как на данный момент это не самая актуальная, но и не самая популярная версия, зато под неё создано рекордное количество наработок в сравнении с другими версиями.

Источник: моё
Источник: моё

JDK: Amazon Coretto 8

Версии Minecraft плотно привязаны к соответствующей им версии виртуальной машины Java (JVM). Так, для версий начиная с Pre-classic rd-132211 (самой-самой первой версии) и заканчивая 1.12.2, используется классическая Java 8 (1.8.0). Для относительно новых же версий, таких как, например, 1.17 или 1.20, необходимо использование уже более новой Java 17. Скажу наверняка очевидное, то, что JVM не поставляется отдельно от всей остальной "обвязки". Обвязки бывают двух типов: Runtime Environment (JRE) и Development Kit (JDK). Второй используется для запуска и сборки (компиляции) Java-приложений, а первый - только для запуска. Соответственно, для этих целей мы будем использовать JDK - именно 32-битный, чтобы обеспечить совместимость с некоторыми инструментами разработки.

Что дальше?

Я надеюсь, что я смог в достаточно доступной форме изложить свои мысли насчёт разработки модов для Майнкрафта, и надеюсь, что ваш путь в моддинге будет проходить легче и короче, чем мой. Думаю, что у вас всё получится, главное, не торопиться и глубоко вникать в суть вопроса. Спасибо за внимание.

P.S. В качестве дальнейшего чтения могу предложить следующие книги/веб-ресурсы:

-

1
3 комментария