Написание модов для minecraft. Как создать мод для Minecraft разными способами

  • 04.05.2020

В этой статье описывается процесс создания модификаций для Minecraft с использованием Forge и Eclipse. Не нужно быть профессионалом, чтобы создавать простые модификации, но хотя бы посредственное понимание принципов работы языка программирования Java желательно. Если во время создания модификаций возникнут вопросы или проблемы, не описанные здесь, опишите их на странице обсуждения.

Таблица готовности
Урок 1.6+ 1.7+
Блок Готов Готов
Предмет Готов Готов
Крафт Готов Готов
Компиляция Готов Готов
Генерация Не планируется Готов
Прокси и инстанция Не планируется Готов
Моб Не планируется Готов
Блоки с моделью Не планируется Возможно
Доп. Уроки Всего: 2 Всего: 12

Первые шаги

Давайте для начала сделаем самое главное: установим Java и Eclipse. Вне зависимости от версии Minecraft, для которой вы хотите создать модификацию, эти шаги одинаковы.

Java JDK

Самое важное для написания на языке Java чего-либо - это, естественно, сами библиотеки Java.

Скачать их можно на сайте Oracle. Переходим на эту страницу и нажимаем слева на иконку Java. Открывшуюся страницу чуть-чуть проматываем вниз, выбираем, что согласны с лицензионным соглашением (Accept License Agreement), и выбираем внизу первого списка пункт, соответствующий вашей операционной системе, и скачиваем. После скачивания просто устанавливаем, нажимая Далее. После установки нужно занести путь установки в переменные среды Windows. Для этого зайдите в меню Свойства компьютера (⊞ Win + PauseBreak или Мой Компьютер -> Свойства -> Дополнительные параметры системы -> Переменные среды). Найдите системную переменную Path, выделите и нажмите Изменить. В самом конце строки Значение через точку с запятой допишите путь к JDK/bin, например, C:\Program Files\Java\jdk1.7.0_45\bin . После чего три раза нажмите ОК.

Здравствуйте, дорогие друзья! Этой статьей я даю старт к написанию материала по созданию модов Minecraft. Конечно же, вам уже не терпится приступить к работе над каким-нибудь эпичным и оригинальным модом, но не нужно спешить. Прежде чем начать придется установить необходимый софт.

Что нам нужно:

  • Java JDK
  • MinecraftCoderPack
  • Minecraft
  • ModLoder
  • NotePad ++
  • Eclipse

*Не волнуйтесь, пусть список и состоит аж из 6 пунктов на деле же все обстоит куда проще чем кажется.

Для начала нужно установить Java и чистый Minecraft (лучше лицензионный), конечно это у вас уже есть, но все же… Во избежание ошибок или, если таковые появятся – обратитесь к видео-уроку “Установка Java JDK”, который доступен внизу страницы. Там же вы сможете найти видео по установке Minecraft Coder Pack (MCP).

Установка MCP

На сегодняшний день актуальной версией является MCP 7.23 . Данная версия подойдет для игры 1.4.5

Загружаем, распаковываем в любою папку (пример : папка “mcp” на рабочем столе).
Нам потребуется чистый Minecraft 1.4.5. Для этого запускаем игру и жмем “Force update”.

Переходим по пути: “C:\Documents and Settings\ВашПользователь\Application Data\.minecraft”

*Перейти по этому пути можно, нажав сочетание клавиш Win+R, а затем вписав в поле: %appdata%

Скачиваем ModLoader последней версии (1.4.5) и устанавливаем его. Урок об установке ‘а вы всегда сможете найти и без моей помощи, я же надеюсь, что вы это умеете.

На всякий случай создадим резервную копию minecraft.jar.

Копируем папки bin и resources в папку “jars” нашего mcp.
Запускаем decompile.bat , по завершению жмем любую клавишу. Если во время декомпиляции компьютер выдал вам пару ошибок, то не стоит волноваться на этот счет.

Установка Eclipse

Где же мы будем работать с кодом, создавать и редактировать наши моды? Конечно же в редакторе Java! Я предпочитаю Eclipse, но вы также можете использовать и NetBeans. Честно говоря, подойдет практически любой текстовый редактор, но удобнее работать в специальных программах.

Установка данной софтины довольно проста. Теперь запускаем и указываем путь:
“C:\Documents and Settings\Пользователь\Рабочий стол\mcp\eclipse”

Редактор NotePad ++ вам тоже пригодится. С его помощьо вы также сможете редактировать необходимые файлы, причем действовать им очень оперативно и удобно.

*Внимание не забудьте скопировать именно 2 папки (bin и resources ). В видео это не упомянуто!

Видео

Так же советую ознакомиться с Быстрой установкой Minecraft Coder Pack. Вам нужно только повторять все действия за мной.

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

Введение в моддинг Minecraft

Следует отметить, что моды Minecraft пишутся на Java. Никаких удобненьких редакторов здесь не будет. От вас требуется хотя бы минимальное знание Java, либо опыт работы с другими языками программирования, знание их основ. На крайний случай – большое желание научиться всему этому. Если вы не будете тупо копировать примеры, а постараетесь понять, как оно работает, то вас определенно ждет успех.

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

Почему Forge? Представьте, что вам нужно починить телевизор/компьютер/айфон/большой адронный коллайдер (нужное подчеркнуть), но под рукой у вас только молоток и гвозди. Конечно же мы пойдем и достанем пыльный ящичек с инструментами, в котором есть и пассатижи, и пинцет, да и вообще все, что душа пожелает. В нашем случае, Forge – это и есть тот желанный ящик с инструментами.

Приступим к работе

Для начала нам нужно скачать JDK (Java Development Kit)

Статья является эксклюзивной для сайт. Копирование и перепечатка информации возможна только с письменного согласия автора.


Не надо удалять META-INF, в minecraft.jar, и minecraft_server.jar
1. Создаем папку (Например: MCP Forge) и распаковываем туда содержание архива с MCP.
2. Копируем в папку../MCP Forge/jars/ , из клиента папку bin и resources, из сервера нам потребуется только minecraft_server.jar.
3. Распаковываем архив с Forge-src в папку MCP Forge
4. Открываем папку../MCP Forge/forge/ и запускаем файл install.cmd. Ждем окончания декомпиляции..
(P.S Если хотите что бы у вас уже был готовый MCP с Forge, например если вы случайно удалили его или ещё что-то, то: Когда декомпиляция пройдёт запустите игру пусть скачает lib, и потом добавьте в архив этот MCP Forge например так (mcp Forge 1.5.1)
5. "Устанавливаем" и запускаем Eclipse, во время запуска у вас "спросят" папку с проектом, указываем путь: ../MCP Forge/eclipse/
6. Итак, мы открыли проект, теперь (Обычно слева, есть Package explorer) смотрим, какую библиотеку он "ест"(В окне Package explorer, "открываем проект Minecraft" и если будет строка "JRE System Library ", то все нормально, но если строка "JRE System Library ", то нажимаем ПКМ(Правой кнопкой мыши), выбираем пункт Properties, далее открылось окно в нем пункт Execution environment, выбираем в нем JavaSE-1.7 и нажимаем Ok.
7. Итак, приготовления готовы.

Как же все таки начать писать мод?

Для начала, нам нужно создать "основу", то есть основную "папку" в которой будет храниться наша "основа" и все остальное.
1.Заходим в Eclipse видим в Package Explorer папку Minecraft, открываем, и нажимаем ПКМ на папку src, выбираем New->Package. Открытом окне в строке Name, мы указываем название папки в которой будет все храниться (Для примера возьмем: mods.testmod.src) и нажимаем Ok.
2. Нажимаем ПКМ по нашей папке (mods.testmod.src), далее New -> Class. В строке Name указываем название нашего файла (Например: TestModBase) и нажимаем Finish.
3. Меняйте путь, но не уберайте mods, вот так например mods.NewItemMod.src.
4. В новых версиях надо импортировать "Очень много" всего, чтобы сделать это быстрее в Эклипсе нажимайте "ctrl + shift + o", и вам быстро он всё импортирует, а если появиться окно тогда выбирайте нужный вам импорт.
5. Если вы работаете не в эклипсе, тогда вам будет намного труднее, так что лучше перейти на него, он укажет где ошибка, и какие импорты надо, и вы не будете задавать глупых вопросов в комментариях.

package mods.testmod.src;

import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.Mod.PostInit;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.common.network.NetworkMod.SidedPacketHandler;
import cpw.mods.fml.common.SidedProxy;
@Mod (modid = "TestMod", name = "Test Mod", version = "0.0.1")
@NetworkMod (clientSideRequired = true, serverSideRequired = false, versionBounds = "1.0.0")

public class TestModBase {

@Instance("TestModID")
public static TestModBase instance;

@Init

{
}

@PreInit
public void preLoad(FMLPreInitializationEvent event)
{
}

@PostInit
public void postLoad(FMLPostInitializationEvent event)
{
}
}


В нашем файле TestModBase
После надписи:
public class TestModBase {
Вписываем вот такую строку:
public static final Block testBlock = new TestBlock(2020).setUnlocalizedName("testBlock");
Разбор:
public static final Block "testBlock" - testBlock название нашего блока в коде(не в игре)
new TestBlock(2020) - TestBlock название нашего блока в коде(не в игре), 2020 ID блока
setUnlocalizedName("testBlock") - ("testBlock") название нашего блока в коде(не в игре)
После надписи:
@Init
public void load(FMLInitializationEvent event)
{

Вписываем вот такую строку:
GameRegistry.registerBlock(testBlock);
LanguageRegistry.addName(testBlock, "Test Block");

Разбор:
(testBlock) - название нашего блока в коде(не в игре)
(testBlock, "Test Block") - testBlock название нашего блока в коде(не в игре), "Test Block" название нашего блока в игре.
Создаем файл testBlock и вписываем в него такой код:
package mods.testmod.src;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;

public class TestBlock extends Block {

public TestBlock(int par1)
{
super(par1, Material.ground);//Материал
this.setCreativeTab(CreativeTabs.tabTools);//Добавляем в креатив
}
//Регистрируем текстуру
@Override

{
}
}


В нашем файле TestModBase
После надписи:
public class TestModBase {
Вписываем вот такую строку:
public static Item testItem = new TestItem(2021).setUnlocalizedName("testItem");
Разбор:
public static final Item "testItem" - testItem название нашего предмета в коде(не в игре)
new TestItem(2021) - TestItem название нашего предмета в коде(не в игре), 2021 ID предмета
setUnlocalizedName("testItem") - ("testItem") название нашего предмета в коде(не в игре)
После надписи:
@Init
public void load(FMLInitializationEvent event)
{

Вписываем вот такую строку:
LanguageRegistry.addName(testItem, "Test Item");
Разбор:
(testItem, "Test Item") - testItem название нашего предмета в коде(не в игре), "Test Item" название нашего предмета в игре.
Создаем файл testItem и вписываем в него такой код:
package mods.testmod.src;

import net.minecraft.item.Item;
import net.minecraft.client.renderer.texture.IconRegister;
import net.minecraft.creativetab.CreativeTabs;

public class TestItem extends Item
{
public TestItem(int par1)
{
super(par1);
setCreativeTab(CreativeTabs.tabTools);
}

//Регистрация текстуры для итема немного отличается от блока
@Override
public void registerIcons(IconRegister par1IconRegister)
{
}
}


@Override
public void registerIcons(IconRegister par1IconRegister)
{
this.blockIcon = par1IconRegister.registerIcon("testmod:testBlock");
}

("testmod:testBlock"), testmod - это "имя папки", в которой будет "папка с текстурой", testBlock - название нашей текстуры. Вот такое у нас размещение текстуры:

\Tutorial Forge 1.5.1\mcp744\src\minecraft\mods\testmod\textures\blocks\testBlock.png


@Override
public void registerIcons(IconRegister par1IconRegister)
{
this.itemIcon = par1IconRegister.registerIcon("testmod:testItem");
}

("testmod:testItem"), testmod - это "имя папки", в которой будет "папка с текстурой", testItem - название нашей текстуры. Вот такое у нас размещение текстуры.

Пользовательская модификация компьютерных игр - это довольно распространенное явление, которое представляет собой изменение и дополнение файлов игры для получения большего количества контента, разнообразия игрового процесса и так далее. Иногда моды могут быть небольшими, добавляющими лишь пару предметов или функций. А иногда можно встретить и глобальные моды, которые практически полностью изменяют игровой процесс. Для "Майнкрафта", одной из самых популярных компьютерных игр современности, геймеры делают довольно много разнообразных модов. Поэтому и вы можете научиться тому, как создать мод для Minecraft - на самом деле это проще, чем кажется, но в любом случае займет у вас довольно много времени.

Моды для "Майнкрафта"

Итак, если вы всерьез решили разобраться с тем, как создать мод для Minecraft, то вам нужно понять, что именно там можно модифицировать. На самом деле возможностей имеется невероятно много - модов к этой игре существует гораздо больше, чем ко всем остальным. Это обусловлено тем, что выглядит "Майнкрафт" довольно просто - соответственно, и изменить что-то в нем или добавить в него определенные функции проще, чем в топовый проект, над которым несколько лет работали сотни профессионалов. Сейчас уже имеются такие моды, как "Индастриал Крафт" или "Таумкрафт", которые можно смело отнести к глобальным, так как они добавляют в игру невероятно много контента - первый переносит "Майнкрафт" в индустриальную эпоху, добавляя сотни новых рецептов и предметов. Второй же добавляет в игру магию и все к ней прилагающееся. Естественно, начинать стоит с более простых проектов, но в итоге вы также можете сотворить что-то серьезное. Но для начала вам нужно узнать, как создать мод для Minecraft.

Создание чистого мода

Если вы хотите узнать о том, как создать мод для Minecraft, то вам нужно сразу же уяснить, что его можно делать двумя совершенно разными методами - с использованием API или без. Сначала нужно разобрать создание чистого мода, который не требует дополнительного программного обеспечения. В данном случае вам нужно хорошо разбираться в механике игры и иметь определенные дизайнерские навыки, а также умение программировать на высоком уровне. Тогда вы сможете внедрять в игру что-то новое, а также изменять определенные предметы, функции и многое другое. В итоге вы сможете создать уникальный и необычный мод, но вполне вероятно, что он будет ограничен в использовании другими геймерами, так как не будет стандартизован - соответственно, у кого-то из геймеров может возникнуть проблема с запуском и совместимостью, независимо от того, для какого режима создавалась эта модификация "Майнкрафт" - выживание или креатив.

Создание модов с помощью API

API - это специальный программный интерфейс, который уже содержит в себе очень многие функции из самой игры, а также текстуры, скины и многое другое. Таким образом, вместо того, чтобы прописывать весь код с нуля, вы сможете использовать уже готовые решения, которые можно будет совмещаться между собой, создавая что-то новое. Существует большое количество разнообразных интерфейсов, и выбрать среди них что-то конкретное может быть проблемой. Здесь нужно учитывать специфику мода, например, в отношении режима "Майнкрафт" - выживание, хардкор, креатив и так далее. Но если вы только начинаете делать моды, а также хотите, чтобы ваша модификация была доступна максимальному количеству людей, то вам нужно использовать Minecraft Forge. Это наиболее распространенный API, который сейчас существует - в то же время он самый функциональный, объемный и востребованный. Поэтому, если вы собираетесь добавлять в Minecraft новые моды - обратите внимание в первую очередь именно на него.

Особенности использования Minecraft Forge

Многие геймеры, которые создают или используют моды, задаются вопросом о том, зачем вообще нужен "Фордж". Ведь это так неудобно - вам обязательно нужно установить сам API, чтобы иметь возможность затем запустить модификацию. Неужели нельзя делать чистые моды, которые не требуют ничего дополнительного для игры? На самом деле "Фордж" имеет гораздо больше преимуществ, чем недостатков (кстати, он есть только один, который заключается именно в необходимости предустановки API для запуска мода). Во-первых, процесс создания мода упрощается, во-вторых, у вас появляется гораздо больше возможностей, для использования которых не нужно прикладывать усилий. Но самое главное - ваш мод становится универсальным. Если вы делаете модификацию без API, как уже было сказано выше, велика вероятность того, что многие геймеры не смогут ее установить. Если же вы использовали "Фордж", то любой геймер с установленным API сможет установить и ваш мод без малейших проблем.

Особенности использования

Самое главное правило модификации, независимо от того, какой вариант вы выбрали, заключается в том, чтобы не изменять исходные файлы. Например, вы решили сделать для Minecraft мод на машины - лучше добавьте новые объекты, а не исправляйте те, которые имеются в игре, чтобы избежать конфликтов.