Как создать свою версию майнкрафта

Обновлено: 05.07.2024

Ребят, кто хочет научится делать свою личную версию майнкрафта без доп софта? Вероятно многие..

Но, я вас немного обманул, вам все таки понадобится некоторые программки, а именно:
1. Сам .apk майнкрафта
2. Проводник, у меня это ES

И так, первое, что мы делаем - это меняем у майнкрафта расширение с .apk на .zip и распаковываем в свободную папку. Что же с полученными файлами можно сделать? Смотрим дальше..

Многие знают, что blocklauncher забирает часть производительности, особенно заметно на одноядерных устройствах. Но иногда все же хочется поиграть с текстурами.

Ну и как же поставить свои текстуры?
Это заметно сложнее, в отличии от block launcher'а. Вобщем, вы берете текстур пак, распаковывать его, и берете нужные вам текстуры и ставите их на место оригинальных (папка в которую вы распаковали/assets/images). Внимание, важно, что бы названия оригинальных и ваших совпадали.

Так же вы можете поменять лого игры для этого вы ставите любую картинку вместо оригинального лого (папка в которую вы распаковали/res/ drawable-ldpi-v4 и такую же картинку в drawable-mdpi-v4)

Ну и наверно, самое прикольное, так-как в майнкрафте в версии 0.11.0 появилась локализация, но многих не устроило качество, а у некоторых вообще не запускалась игра при выборе русского языка. Но вы сами можете сделать свои подписи, для этого вы направляетесь в (папка в которую вы распаковали/assets/Lang/en_US) а там вы уже разберетесь.

После проделанных вами махинаций, запаковываете файлы в архив, меняете .zip на .apk и если вы всё сделали правильно то у вас установится игра.

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

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

generationMap.js

Ссылки

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

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

Создание качественных сборок на маинкрафт [Guide]

Создание качественных сборок на маинкрафт [Guide]


Начнём пожалуй с того, что такое сборка в принципе. Изначально, когда сборки только зарождались, они были все однотипны. Так продолжалось вплоть до 1.4.7, когда был первый всплеск качественных сборок. Именно тогда моды начали интегрировать друг с другом. Не умело, пробуя перо, но интегрировать. Затем началась эпоха FTB , которая длится и по сей день, однако неумолиомо идёт на спад (фантан иссяк). Уже тогда сваливать моды в кучу стало дурным тоном. Не так давно, как вы наверняка знаете, вышла сборка Sevtech Ages от Darkosto . Она вывела сборки майнкрафт на совершенно другой уровень. Теперь, как вы понимаете, свалки модов не в почёте и если вы хотите создать достойную сборку, то вам придётся немало попотеть.


Итак. Какой же должна быть современная сборка? Попробуем разобраться в этом.

1) Нужно чётко определиться с жанром сборки. Будет ли это industrial, magic, magitech, AFN(all from nothing или всё из ничего), а может RPG.


Вы спросите. А как же SevTech? Ведь там есть и магия и технологии и приключения. Я вам отвечу. Это межжанровая сборка, но на её создание было убито огромное количество сил и времени! Да и делал её профессионал! Поэтому это исключение из правил и вам не стоит ровняться на этот стиль!

2) Вы должны… Нет… Вы ОБЯЗАНЫ идеально знать все моды, которые вы хотите включить в вашу сборку! Причём очень желательно хотя бы приблизительно понимать, как они работают (потом поможет избежать проблем в стиле «Я хотел сделать так, а оно работает не так, что делать?») Если вы ну совсем не можете читать исходный код, то рекомендую вам пройти майнкрафт с каждым из модов, которые вы хотите воткнуть в сборку по отдельности или сгрупировав их по 2-3 штуки (не считая JEI, WAILA, Minimap и т. д.)

Наверняка многие господа младше 14 лет начнут кричать «НО ВЕДЬ ЛОЛОЛОШКА ВСЕГДА ИГРАЕТ С МОДАМИ КОТОРЫЕ ОН ВООБЩЕ НЕ ЗНАЕТ И ЭТО КЛАССНО!». Забудьте о Роминых сборках. Этому есть несколько причин. Первая: он уже несколько лет на ютубе и может себе позволить халтуру, бо всё равно ведь схавают. Вторая: он развлекает аудиторию стримов и видосов, а не привлекает игроков. На его сборках играет меньше 5% его зрителей! Третья: вы даже не представляете, сколько работы он проводит, чтобы собирать такие гигантские сборки с НИКОМУ не знакомыми модами, чтобы было интересно!

3) Моды должны быть настроены и интегрированы. Не бойтесь отключать половину контента модов. Главное чтобы всё было гармонично и вписывалось в общую концепцию!

4) Если моды всем хорошо знакомы, то придумывайте игроку цели, которых трудно будет достичь!

5) Сборка должна быть оптимизирована. Желательно под максимум 4 ГБ ОЗУ


Что нам потребуется для создания качественной сборки:

  1. Forge.
  2. Exel (как бы это странно не звучало, но он вам очень пригодится для балансировки)
  3. CraftTweaker с аддонами (менять рецепты, удалять предметы)
  4. BetterFPS
  5. FoamFix (желательно)
  6. Если есть лицензия маинкрафт, то TwitchApp (ускорит процесс создания сборки в 1.5 раз)
  7. JEI или аналог. Просто must have если открытие крафтов не является частью игрового опыта
  8. 7-10 основных модов, которые игрок будет развивать в течении игры
  9. Любой мод для добавления кастомных ачивок/квестов


Что не стоит добавлять в вашу сборку:

  1. Optifine. Если вы будете выкладывать сборку с установленным оптифайном на Curseforge, Minecraft forrum и другие комьюнити сервисы, то вас могут забанить за нарушение авторских прав.
  2. Better Foliage. Очень сильно нагружает видео карту и совместим не со всеми модами. Если добавляете, то отключайте в настройках по умолчанию всё, что только можно.
  3. Greg Tech. Если вы не умеете читать код, то даже не пробуйте ставить этот лагодром в вашу сборку. Вы огребёте с ним огромное количество проблем!
  4. Драконик. Я уже слышу, как рвёт пуканы у школьников. Драконик — ужасный и совершенно не сбалансированный мод! Если вы его ставите в сборку и он вам ну оооочень нужен, то усложните его до предела и вырежте из него все источники энергии (или сделайте их крафт настолько сложным, чтобы пролучить их можно было только в самом конце). Хороший пример интеграции этого мода — FTB Infinity Evolved
  5. Моды аналоги. Например AE2 и RefindStorage.

Пожалуй на этом с вводной статьёй всё. Если она вам понравилась, но напишите в комментариях, о чём вы хотели бы прочитать. Я учту это при написании статьи — гайда.

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

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

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

Игровой цикл

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

Плейлист гайдов по MCreator:

MCreator - программа для создания модов Майнкрафт [1.16.5] [1.15.2] [1.14.4] [1.12.2] [1.11.2] [1.8.9] [1.7.10]

MCreator - программа для создания модов Майнкрафт [1.16.5] [1.15.2] [1.14.4] [1.12.2] [1.11.2] [1.8.9] [1.7.10]

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

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

К сожалению программа не имеет поддержки русского языка и не имеет возможности перевести программу, но если посмотреть пару тройку гайдов, то вы сможете в ней работать. Я не будут создавать гайд, так как он будет очень объемным и трудоемким, просто посмотрите серию гайдов на ютубе.









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

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

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 — Настройки проекта.

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

image

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

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

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

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

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

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

Настройки

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

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