Как создать minecraft jar

Обновлено: 27.06.2024

Скажу сразу: «Все манипуляции производятся с версией Minecraft 1.5.2, т.к в других версиях — другая система сборки и запуска».

Для начала, скачаем утилиту — «cmdow», она нужна для управления окнами.

Кидаем ее в папку нашего «запускатора», затем создаем исходный файл самого нашего «запускатора». Назовем его — «Minecraft.bat».

Далее нам нужны *jar файлы нашего Minecraft, а конкретно: «jinput.jar, lwjgl.jar, lwjgl_util.jar, minecraft.jar», также не забываем перекинуть папку «natives» в папку нашего лаунчера.
Теперь, самое интересное. Открываем наш «Minecraft.bat», и начинаем писать код. Туда мы вставляем следующее:


Теперь, если вы все сделали правильно, то при запуске нашего «Minecraft.bat», у нас запуститься Minecraft.

Прокачаем наш «запускатор» и сделаем не большой лаунчер!

Вставляем туда следующий код:

Мы написали почти что настоящий лаунчер для игры Minecraft. Гарантированная работоспособность на Win7 x64.

Камера и управление

Я уже говорил, что controls принимает параметры в виде камеры, сцены и карты. Также в конструкторе мы добавляем массив keys для клавиш и movingSpeed для скорости. Для мыши у нас есть 3 метода. onClick определяет какая кнопка нажата, а onRightClick и onLeftClick уже отвечают за действия. Правый клик(удаление блока) происходит через raycast и поиска пересеченных элементов. Если их нет, то прекращаем работу, если есть, то удаляем первый элеент. Левый клик работает по схожей системе. Для начала создаем блок. Запускаем рейкаст и если есть блок который пересек луч, то получаем координаты этого блока. Далее определяем с какой стороны произошел клик. Меняем координаты для созданного куба в соответствии со стороной к которой мы добавляем блок. градация в 5 единиц т.к. это размер блока(да здесь можно было использовать свойство из settings).

Как работает управление камерой?! У нас есть три метода inputKeydown, inputKeyup и update. В inputKeydown мы добавляем кнопку в массив keys. inputKeyup отвечает за очистку кнопок из массива которые отжали. В update идет проверка keys и вызывается moveForward у камеры, параметры которые принимает метод это скорость.

Структура проекта

Вот так выглядит структура проекта.

image

index.html — Расположение канваса, немного интерфейса и подключение стилей, скриптов.
style.css — Стили только для внешнего вида. Самое важное это кастомный курсор для игры который располагается в центре экрана.

texture — Здесь лежат текстуры для курсора и блока земли для игры.
core.js — Основной скрипт где происходит инициализация проекта.
perlin.js — Это библиотека для шума Перлина.
PointerLockControls.js — Камера от three.js.
controls.js — Управление камерой и игроком.
generationMap.js — Генерация мира.
three.module.js — Сам three.js в виде модуля.
settings.js — Настройки проекта.

[Гайд] Устанавливаем моды в *.jar архив игры

[Гайд] Устанавливаем моды в *.jar архив игры

Итак, для начала стоит отметить, что данный подход абсолютно не обязателен при установки рядовых модов. Описываемый способ - скорее необходимость. Наиболее распространённый сценарий его использования - это установка OptiFine на чистый Minecraft. И для этого совсем не обязательно устанавливать Forge или пользоваться специальными программами.

Итак, для начала загрузите нужную Вам версию Minecraft с помощью стандартного лаунчера. Затем зайдите в папку "versions" в корне нашей сборки. Скопируйте папку с нужной нам версией (Например: 1.6.2). Скопированную папку переименуйте так, как Вам будет удобнее (Например: 1.6.2-OptiFine). Зайдите в только что переименованную папку и *.jar и *.json аналогично измените их названия. Почти готово. Осталось только открыть файл *.json и изменить значение параметра "id" на название ранее созданной папки.

Откройте файл *.jar с помощью любого архиватора. Удалите папку META-INF и переместите в архив файлы из ранее скаченного мода. Обратите внимание: Такая установка должна выполняться только если это указано автором мода.

Также, советую посмотреть видео-урок на эту тему:

Настройки

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

Ссылки

Как и обещал. Весь материал который пригодится.

Если есть желание, то на можете добавить свой функционал к проекту на гитхаб.

[1.5.2-1.6.4+][Гайд][Windows]Кастомная папка или minecraft не в AppData

[1.5.2-1.6.4+][Гайд][Windows]Кастомная папка или minecraft не в AppData

Вы наверно сталкивались с проблемой, когда хочется иметь больше одного клиента Minecraft. Как установить minecraft не в AppData. Этот небольшой гайд расскажет вам, как сделать отвязку клиента от AppDat'ы.

Что нам будет нужно:

  1. Бубен Лаунчер в .exe формате
  2. Батник с кодом запуска
  3. Папка с клиентом Minecraft (.minecraft) [Если только вы хотите ставить уже готовый клиент]
  4. Одна прямая рука

Шаг 1: Подготовка папки под "отшитый" клиент

1. Создаём папку с любым названием в любом месте

[1.5.2-1.6.4+][Гайд][Windows]Кастомная папка или minecraft не в AppData

2. В эту папку кидаем лаунчер и папку с Minecraft [Папку кидать, если только вы хотите ставить уже готовый клиент]

Шаг 2: Создание батника-отшивки

[1.5.2-1.6.4+][Гайд][Windows]Кастомная папка или minecraft не в AppData

1. Создаём текстовый файл в созданной папке

2. Открываем его и вставляем следующий код:

[1.5.2-1.6.4+][Гайд][Windows]Кастомная папка или minecraft не в AppData

3. Сохраняем файл под любым именем, но с расширением .bat

Примечание:
Лаунчер запускаем через батник. Лаунчер нужен для графического ввода логина, входа и обновления клиента. Появляется окно лаунчера. Вводим логин, пароль.

И так что нам будет нужно:

  1. Бубен Лаунчер в .exe формате
  2. Батник с кодом запуска
  3. Папка с клиентом Minecraft (.minecraft) [Если только вы хотите ставить уже готовый клиент]
  4. Одна прямая рука

Шаг 1: Подготовка папки под "отшитый" клиент

1. Создаём папку с любым названием в любом месте

[1.5.2-1.6.4+][Гайд][Windows]Кастомная папка или minecraft не в AppData

2. В эту папку кидаем лаунчер и папку с Minecraft [Папку кидать, если только вы хотите ставить уже готовый клиент]

Шаг 2: Создание батника-отшивки

[1.5.2-1.6.4+][Гайд][Windows]Кастомная папка или minecraft не в AppData

1. Создаём текстовый файл в созданной папке

2. Открываем его и вставляем следующий код:

Как можно догадаться, этот код заставляет думать систему, что папка с этим батником является AppDat'oй

[1.5.2-1.6.4+][Гайд][Windows]Кастомная папка или minecraft не в AppData

3. Сохраняем файл под любым именем, но с расширением .bat

Почти тоже самое

И так что нам будет нужно:

  1. Бубен Лаунчер в .exe формате
  2. Батник с кодом запуска
  3. Папка с клиентом Minecraft (.minecraft) [Если только вы хотите ставить уже готовый клиент]
  4. Одна прямая рука

Шаг 1: Подготовка папки под "отшитый" клиент

1. Создаём папку с любым названием в любом месте

[1.5.2-1.6.4+][Гайд][Windows]Кастомная папка или minecraft не в AppData

2. В эту папку кидаем лаунчер и папку с Minecraft [Папку кидать, если только вы хотите ставить уже готовый клиент]

Шаг 2: Создание батника-отшивки

[1.5.2-1.6.4+][Гайд][Windows]Кастомная папка или minecraft не в AppData

1. Создаём текстовый файл в созданной папке

2. Открываем его и вставляем следующий код:

Как можно догадаться, этот код заставляет думать систему, что папка с этим батником является AppDat'oй

[1.5.2-1.6.4+][Гайд][Windows]Кастомная папка или minecraft не в AppData

3. Сохраняем файл под любым именем, но с расширением .bat

Примечание:
Клиент запускаем через батник. Лаунчер нужен для графического ввода логина, входа и обновления клиента.
После запуска батника появляется командная строка и сразу же исчезает(Только пиратка). Через некоторое время(зависит от мощности ПК) появляется окно лаунчера. Вводим логин, пароль (Если лицензия) и происходит запуск Minecraft'a не из AppData.

Генерация карты

В классе Map у нас есть несколько свойство которые отвечают за кеш материалов и параметры для шума Перлина. В методе generation мы загружаем текстуры, создаем геометрию и меш. noise.seed отвечает за стартовое зерно для генерации карты. Можно рандом заменить на статичное значение чтобы карты всегда была одинаковая. В цикле по X и Z координатам начинаем расставлять кубы. Y координата генерируется за счет библиотеки pretlin.js. В конечном итоге мы добавляем куб с нужными координатами на сцену через scene.add( cube );

generationMap.js

Игровой цикл

В core.js нужно провести инициализацию three.js, настроить его и добавить все нужные модули от игры + обработчики событий… ну и игровой цикл запустить. В учет того, что все настройки стандартные, то объяснять их нет смысла. Поговорить можно про map (он принимает сцену игры для добавления блоков) и contorls т.к. он принимает несколько параметров. Первый это камера от three.js, сцену для добавления блоков и карту чтобы можно было взаимодействовать с ней. update отвечает за обновление камеры, GameLoop — игровой цикл, render- стандарт от three.js для обновления кадра, событие resize также стандарт для работы с канвасом (это реализация адаптива).

Делаем свой minecraft на JavaScript

image

Попробуем сделать небольшую демку minecraft в браузере. Пригодятся знания JS и three.js.

Немного условностей. Я не претендую на звание лучшее приложение столетия. Это всего лишь моя реализация для данной задачи. Также есть видео версия для тех кому лень читать(там тот же смысл, но другими словами).

В конце статьи есть все нужные ссылки. Постараюсь как можно меньше воды в тексте. Объяснять работу каждой строки не буду. Вот теперь можно начать.

Для начала чтобы понимать какой будет итог, то вот демка игры.

Разделим статью на несколько частей:

  1. Структура проекта
  2. Игровой цикл
  3. Настройки игры
  4. Генерация карты
  5. Камера и управление

Читайте также: