Важная информация
Данный репозиторий является частью системы по загрузке, обновлению, получению авторизации с сайта и запуску игры Minecraft на компьютере пользователя.
Система состоит из отдельных частей каждая из которых отвечает за отдельные функции системы:
- Лаунчер - приложение которое размещается на ПК пользователя, скачивает/обновляет файлы игры, получает авторизацию и запускает саму игру с нужными параметрами.
https://gitflic.ru/project/reaktiv/launcher-minecraft-launcher - Хранилище клиента - Скрипты для создания в интернете места, где будут лежать файлы игры в удобоваримом виде, откуда их может скачать лаунчер на компьютер пользователя.
https://gitflic.ru/project/reaktiv/launcher-minecraft-client-store - API авторизации - Набор скриптов обратившись к которым лаунчер может получить токены авторизации пользователя с сайта сделанного на CMS Joomla!
https://gitflic.ru/project/reaktiv/launcher-minecraft-api-auth-joomla
Преимущества
- Система НЕ требует для своей работы постоянно включенного лаунч-сервера, нет необходимости содержать отдельно работающую виртуальную машину.
- НЕ нужна даже JAVA. Лаунчер создан на языке высокого уровня, полностью скомпилирован и не требует для запуска игры присутствия на компьютере пользователя каких-либо виртуальных машины, сред выполнения или отдельных компонентов.
- Лаунчер может работать и запускать игру из любой папки в ПК, даже с флешки. Не требует установки, не создаёт мусорных файлов в системе, всё нужное складывает рядом с собой.
- Распределённая схема работы позволяет создавать проекты с отдельными независимыми администраторами определённых сборок, исключающими права влияния на сборки друг друга и другие компоненты проекта.
Назначение хранилища клиента
Хранилище клиента это часть которая отвечает за сохранение и обеспечение доступности файлов игры для загрузи их лаунчером на ПК пользователя. Позволяет легко обновлять сборку через лаунчер на компьютерах игроков для поддержания её в актуальном состоянии.
Преимущества хранилища клиента
- Не требует лаунч-сервера. Может жить на любом shared хостинге рассчитанном для создания сайта на любых популярных фреймворках и движках (wordpress, joomla, битрикс24 и т.д.)
- Может жить даже на бесплатных хостингах.
- Не требует наличия специфических компонентов от хостинга, не нужны PYTHON, CGI и др., не нужна даже mySQL. Для работы требуется только наличие PHP которая есть везде и сразу.
- Не нужно знать никакие команды. Простой вею-интерфейс с окошком для ввода пароля и кнопкой, всё.
- Позволяет обновлять не только файлы клиента, но и сам лаунчер.
- Имеет гибкий настраиваемый список исключений, который позволяет настроить уникальные файлы пользователей для любой сборки.
Использование
- Создаёте сайт своего проекта доступный для пользователей. Неважно где вы его берёте, покупаете, регистрируете бесплатно, или может быть настраиваете на своём хосте.
- Скачиваете репозиторий или архив с релизом к себе на компьютер. Вам нужны эти файлы и папки, остальное не нужно.
- Загружаете в отдельную папку у себя на сайте файлы хранилища клиента. Рекомендуется загружать в …www/launcher/client/<название сборки>/ пример
- В файле “setting.php” обязательно меняете пароли на свои. Остальные параметры можно менять при необходимости.
- В папку “launcher” загружаете скомпилированный под вас лаунчер (файл должен называться “game.exe”). Название файла можно перенастроить в настройках. пример
- В папку “files” загружаете файлы вашего клиента. Клиент должен обязательно содержать определённый список файлов и папок. пример
- Заходите в веб-интерфейс вашей сборки. Адрес к веб-интерфейсу строится из пути до скрипта “build.php” с GET параметром “previewPassword” где указывается пароль для просмотра из конфига. Если пароль неправильный то страница не отобразится. пример
- Редактируете список исключений при необходимости. Все пути относительные. Если путь заканчивается папкой то исключаются из проверки все файлы в папке, если заканчивается файлом то исключается из проверки определённый файл. Если файл есть у пользователя но отсутствует в папе “files” и в исключениях то он будет у пользователя удалён. Если у пользователя есть файл с неправильным размером, и его нет в исключениях, то он будет удалён и перезагружен. Если файл есть в папке “files” и добавлен в исключения, то он первоначально будет загружен, но в последствии не будет проверяться, обновляться и удаляться у пользователя. пример
- Введите пароль и нажмите кнопку “Создать”. Если циферка “Порядковый номер” изменилась, значит новый билд создан успешно, и с этого момента у пользователей начнут обновляться клиенты при запуске. пример
- Обратитесь к скрипту “run.php” браузером. Если всё настроено правильно, то вам будет предоставлена информация о сборке в виде json. пример
Меняете файлы сборки - создаёте билд, меняете исключения - создаёте билд, что-нибудь ещё меняете - создаёте билд. Повторяете это меняете - создаёте билд по мере потребностей. Лаунчер всё ощущает и обновляет, сборка крутится, фан мутится.
Особенности
- Для экономии места на хостинге файлы хранятся в единственном экземпляре. Это значит что как только вы изменили файлы или лаунчер, обязательно нужно пойти и сделать новый билд, иначе у пользователей возникнет проблема.
- Лаунчер умеет загружать ассеты с серверов моджангов, папку “assets/objects” в хранилище клиента можно отчистить так чтобы она была пустой, это сэкономит место на хостинге.
- При изменении лаунчера тоже необходимо создавать билд. Скрипт увидит, что изменился размер лаунчера и добавит информацию об этом в билд, и у пользователей начнётся процесс самообновления лаунчера.
- Для просмотра файлов при обращении к скрипту “run.php” можно предать параметр “previewPassword” и тогда информация отобразится в человекопонятном виде. пример
Описание
Набор скриптов для сайта на PHP который позволяет организовать хранение файлов клиента игры Minecraft для их скачивания на компьютеры игроков лаунчером и последующего запуска