Игра Minecraft имеет огромную базу фанатов по всему миру. Эта популярная песочница позволяет получить доступ к нескольким режимам геймплея, но предварительно для запуска придется скачать майнкрафт лаунчер. В этой программе вводится логин и пароль игрока, после чего начинается запуск файлов. Launcher отвечает за загрузку основных пакетов Java, в том числе minecraft.jar, который содержит код и главные ресурсы игры (текстуры, LWJGL). Утилита Minecraft Launcher поддерживает 57 языков.
Пользователь обязан войти в систему, чтобы запустить игру в первый раз. Дополнительно использовать лаунчер рекомендуется для запуска устаревших версий и обновления Minecraft. В настоящее время действует шестая версия Minecraft Launcher, предназначенная для автоматического обновления.
Каждый раз, когда выполняется вход в систему, программа тщательно проверяет директорию, в которой игра хранит основные файлы. Речь идет о папке под названием «minecraft». Сперва проверяются файлы с именем «launcher_profiles.json», в которых хранятся данные учетных записей для входа. Если файла не существует, он поврежден или ни один из пользователей не вошел в систему, рекомендуется использовать премиум-аккаунт. В противном случае новый пользователь направляется в демоверсию игры.
Что за новый лаунчер майнкрафт??
В случае повреждения файлов учетной записи появляется также предложение приобрести игру. При входе в систему для начала лаунчер попытается проверить имя пользователя. Если действующий файл «launcher_profiles.json» существует, но подключение к интернету закрыто, игроку будет предложен автономный режим (кнопка «Play»).
Если соединение прошло успешно, игра запустится в зависимости от текущих параметров профиля. Автоматически производится проверка обновлений. Когда выбранная версия игры не поддерживается или значительно устарела, игроку будет предложено «Использовать последнюю версию».
В процессе обновления Launcher загрузит все компоненты Minecraft и необходимые файлы Java. Дополнительно произойдет синхронизация файлов в папке «Assets». Здесь находятся игровые ресурсы. После успешной установки и своевременного обновления лаунчер выполнит вход в Minecraft (через «javaw.exe» и Java Virtual Machine).
Если в системе отсутствуют файлы «.jar», программа для запуска попытается автоматически заменить все недостающие компоненты. В этом случае рекомендуется подключиться к интернету, иначе загрузка остановится.
Источник: www.niasam.ru
Как работает лаунчер Minecraft
Данная статья написана в ознакомительных целях и рассчитана на читателей уже знакомых в первую очередь с Minecraft, HTTP протоколом, имеющих опыт прикладного программирования на языках Java, C++ или др.
Прежде чем начать воспользуемся хорошей практикой и обратимся к Google с запросом «Minecraft Launcher вики» далее пройдя по ссылке на официальную Minecraft вики мы найдем следующую важную для понимания информацию .
Лучший лаунчер майнкрафт
Лаунчер является интерфейсом загрузки и входа в клиент Minecraft. Он отвечает за загрузку пакетов Java, включая minecraft.jar , который содержит код игры, авторизует игрока и запускает клиент.
Основное функциональное назначение:
- Загрузка файлов игры
- Авторизация игрока
- Запуск клиента
Рассмотрим процесс детальнее на примере.
Файлы игры
Скачаем официальный лаунчер, авторизуемся, загрузим версию игры 1.12.2.
Далее в зависимости от системы перейдем к расположению загруженных файлов.
- Windows %APPDATA%.minecraft
- macOS ~/Library/Application Support/minecraft
- Linux ~/.minecraft
Вид каталога с игрой после загрузки ( структура ).
В рамках данной статьи я оставлю минимальный набор файлов, необходимый для самостоятельного запуска игры.
Сформируем общее понимание базовых составляющих игры.
- Файл versions/1.12.2/1.12.2.jar (в более ранних версиях minecraft.jar) содержит в себе весь код игры и является ядром.
- Папка libraries/ содержит в себе все сторонние пакеты или библиотеки Java такие как графическая библиотека LWJGL которые используются в исходном коде игры из versions/1.12.2/1.12.2.jar они также требуют поставки в комплекте с игрой.
- Некоторые сопутствующие библиотеки написаны специально под конкретную операционную систему их называют нативными (нативные библиотеки имеют разные расширения в зависимости от ОС, примеры расширений: macOS – .dylib ; Linux – .so ; Windows – .dll ), официальный лаунчер хранит их в bin/natives на ОС Windows.
- Папка assets/ содержит звуки, текстуры, шрифты, языковые файлы и другие ресурсы игры.
- Файл versions/1.12.2/1.12.2.json является файлом версии, это означает что он хранит в себе всю информацию о конкретной версии игры, в нем можно найти список всех необходимых библиотек, клиента, сервера игры, URL адресов для скачивания, Hash-кодов для сверки соответствия файлов и параметры запуска (об этом далее).
Авторизация
Процесс авторизации в лаунчере:
- Пользователь вводит учетные данные: имя пользователя, пароль.
- Лаунчер преобразует данные в JSON и отправляет POST запрос на сервер аутентификации.
- Сервер аутентификации находит пользователя в базе данных и генерирует уникальный UUID и accessToken, затем возвращая их вместе с именем пользователя обратно лаунчеру.
- Лаунчер записывает имя пользователя, UUID и accessToken, в дальнейшем используя эти параметры для запуска игры.
Запуск клиента
Дальнейшие действия выполняются лаунчером при входе в игру. Их можно сымитировать в ручную через терминал (или консоль в Windows). Для ручного запуска нам потребуется загруженный набор файлов игры из versions/1.12.2/1.12.2.json и полученные от сервера аутентификации наше имя пользователя, UUID и accessToken. Для запуска игры мы просим Java запустить versions/1.12.2/1.12.2.jar со списком параметров:
- Путь к папке с нативными пакетами, которые используются в versions/1.12.2/1.12.2.jar
- Путь к папке с Java пакетами, которые используются в versions/1.12.2/1.12.2.jar
- Главный класс net.minecraft.client.main.Main (берется из versions/1.12.2/1.12.2.json )
- Параметры Java машины (опционально, такие как количество выделяемой оперативной памяти и т.д.)
- Игровые параметры (берется из versions/1.12.2/1.12.2.json ):
- Имя игрока —username
- Версия игры —version 1.12.2
- Путь к папке с игрой —gameDir ‘/Users/scavver/Library/Application Support/minecraft’
- Путь к папке с ассетами —assetsDir ‘/Users/scavver/Library/Application Support/minecraft/assets’
- Индекс ассетов —assetIndex 1.12
- UUID игрока —uuid
- Токен игрока —accessToken
- Тип пользователя —userType mojang
- Тип версии —versionType release
Демонстрация итоговой строки запуска для macOS без перечисления всего списка библиотек и дополнительных параметров Java машине (в терминале подобная конструкция должна быть объеденена в одну строку, вместо символов переноса строки должны быть символы пробела):
«/Applications/IntelliJ IDEA CE.app/Contents/jbr/Contents/Home/bin/java» -Djava.library.path=»/Users/scavver/Library/Application Support/minecraft/bin/natives» -cp «/Users/scavver/Library/Application Support/Minecraft.biz/libraries/1.jar: /Users/scavver/Library/Application Support/Minecraft.biz/libraries/2.jar: /Users/scavver/Library/Application Support/Minecraft.biz/libraries/3.jar: /Users/scavver/Library/Application Support/Minecraft.biz/libraries/N.jar: /Users/scavver/Library/Application Support/Minecraft.biz/versions/1.12.2/1.12.2.jar» net.minecraft.client.main.Main —username scavver —version 1.12.2 —gameDir ‘/Users/scavver/Library/Application Support/minecraft’ —assetsDir ‘/Users/scavver/Library/Application Support/minecraft/assets’ —assetIndex 1.12 —uuid —accessToken —userType mojang —versionType release
- Для параметра -cp (classpath – местоположение пользовательских классов или пакетов) необходимо перечислить список полных путей ко всем пакетам (библиотекам) из libraries/ .
- Разделитель двоеточие ( : ) используется на macOS и Linux, в Windows необходимо использовать точку с запятой ( ; ).
- Разделитель пути косая черта ( / ) используется на macOS и Linux, а в DOS и Windows обратная косая черта ( ).
- Пути могут содержать пробелы поэтому их нужно заключать в кавычки.
Для закрепления материала рекомендую самостоятельно запустить игровой клиент с помощью .bat файла на Windows или составив строку запуска для терминала macOS или Linux. Подсказка: воспользуйтесь официальным лаунчером для загрузки чистого клиента и авторизации (получения UUID и accessToken от сервера аутентификации Mojang). Теперь у вас есть достаточно информации для самостоятельной работы и поисков, тема также останется открытой на форуме.
Источник: teletype.in
Лаунчер
Лаунчер (англ. Launcher) — программа, предоставляющая пользователю возможность войти в свой аккаунт Mojang или Microsoft, а также загрузить и запустить клиент игры. Лаунчер ответственен за загрузку версия игры>.jar , в котором содержится байт-код игры, библиотек и ресурсов (ассетов). Он также выступает в роли технического средства защиты авторских прав, позволяя запускать полную версию игры только пользователям, зашедшим с премиум-аккаунта, для других доступна демо-версия. Для загрузки доступны все вышедшие версии игры, за исключением Indev.
Также через клиент игры можно загрузить лаунчер для Minecraft Dungeons.
- 1 Описание
- 2 Последняя версия лаунчера
- 3 Предыдущая версия лаунчера
- 4 Использование командной строки
- 5 История
- 6 Примечания
Описание
Каждый раз при запуске лаунчера, он проверяет папку .minecraft , которая является корневой папкой для всех файлов игры. Также лаунчер проверяет файл, под названием launcher_profiles.json , который хранит данные авторизации. Если в файле launcher_profiles.json верные данные, и если лаунчеру не удается установить соединение с сервером авторизации, то он предложит игроку вариант игры в режиме оффлайн. Если этот файл поврежден или не существует, пользователь должен войти в игру с действительным премиум-аккаунтом, иначе игра не будет запущена.
При входе в систему лаунчер сначала попытается проверить подлинность аккаунта на сервере авторизации. Если лаунчеру удается установить соединение с сервером, он проверит, не доступна ли новая версия игры. Информация про версию расположена в файле версия игры>.json каталоге versions . Если этого файла не существует или система обнаруживает, что данная версия игры устарела, лаунчер предложит игроку загрузить с сервера новую версию игры.
Наконец, после успешного обновления или установки игры, лаунчер запустит игру из файла версия игры>.jar . Впрочем, возможна и такая ситуация, когда файл версия игры>.json будет рабочим и обновлённым, но будут отсутствовать необходимые jar-файлы, то в этом случае лаунчер зависнет.
Последняя версия лаунчера
Последняя версия лаунчера была в разработке с мая 2013 года, и одновременно была публично представлена. Она отличалась тем, что можно загружать разные версии Minecraft, в версии 1.0 — заменилось профилями. Также, он позволяет менять папки версий Minecraft и расположение исполняемого файла Java. В 1.2 лаунчер теперь может загружать версии Beta, с 1.2.1 — Alpha, Infdev и версии Classic. Лаунчер был выпущен 1 июля 2013 года.
Предыдущая версия лаунчера
Вторая версия лаунчера была в разработке с 21 января 2011 года. [1] . Обновленный лаунчер на данный момент обладает улучшенной системой обновления файлов игры (теперь обновляются только изменённые файлы), запросом перед обновлением игры, поддержкой входа через HTTPS для увеличения стойкости соединения и другими улучшениями в интерфейсе. Техническая демо-версия лаунчера «утекла» (её выложил Нотч) в сеть 18 февраля 2011 года. [2] . В новом лаунчере также было добавлено окно «Опции», где размещена ссылка на директорию установленной на ПК игры, а также кнопка «Force Update», после нажатия которой игра будет полностью загружена с сервера и установлена поверх существующей. В новом лаунчере также есть окно, в котором размещена лента новостей обновлений игры, которая синхронизируется из Tumblr, а также добавлена поддержка командной строки. [3] Новый лаунчер был выпущен 21 февраля 2011 года. [4]
Использование командной строки
Minecraft.jar (Все ОС):
Minecraft.jar (Windows — без окна CMD):
Источник: minecraft.fandom.com