( +10.60 10,5 -0.10 )

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL

Автор: obscurus

Данная статья - идейное продолжение моей прошлой новости
Создаем установщик для своей сборки + портативный клиент на основе tLauncher



За основу клиента ( не установщика ) взят клиент с моей сборки
The Journey



В данной статье мы научимся создавать портативный установщик для своей сборки.



Плюсы:


  • Выбор любой папки для установки
  • Выбор устанавливаемых модов
  • Принудительный запуск предустановленной 64-битной Java 8 u181 - у скачавших будет меньше проблем с запуском игры
Минусы:
  • Привязка к Windows - невозможность запуска на других ОС
  • Возможность запуска только на 64-битных системах


Подготовка рабочего места

Качаем данный архив с клиентом, примером скрипта, Inno Setup и русификатором к нему.


Распаковываем в любое место и запускаем.

innosetup-qsp-5.6.1-unicode.exe

Устанавливаем в любое место, далее -> далее -> далее и т.д., ничего не меняя.
В конце нам предложат запустить программу - любезно отказываемся.
В итоге мы установили 2 программы - Inno Setup и Inno Script Studio

Копируем файл Russian.lng, который был в архиве в

C:\Program Files (x86)\Inno Script Studio\Languages

Так мы установили русификатор, к которому мы еще вернёмся



Подготовка клиента игры

Подготавливаем наш клиент для упаковки в установщик. В комплекте идут пара модов на 1.12.2 для примера и 2 предустановленные версии с Forge

Minecraft 1.7.10 Minecraft 1.12.2
Forge 10.13.4.1614 Forge 14.23.4.2759

Удалите лишний по усмотрению.

В клиенте для примера находятся 11 модов для различных примеров, итоговый вид папки \Minecraft :

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL

ЧЕМ МЕНЬШЕ ФАЙЛОВ - ТЕМ ВАМ БУДЕТ ЛЕГЧЕ
Поэтому познавайте дзен очищения сборок от лишних файлов

Настройки лаунчера ( configuration.cfg ) и профили хранятся в папке

\\Minecraft\libraries\bin

Предустановленная Java хранится в

\\Minecraft\libraries\bin\java

По умолчанию в лаунчере выставлено 2 Гб выделенной памяти без дополнительных аргументов, всё в ваших руках.



Создание установщика

Для начала русифицируем нашу программу. Берём файл Russian.lng и вставляем его в установленную папку ISS.

C:\Program Files (x86)\Inno Script Studio\Languages

Далее открываем файл примера скрипта из архива setup.iss.
Должна открыться программа Inno Script Studio. В меню View меняем язык на Русский

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL


Теперь быстро пробежим по секциям:

Inno Setup Script

весь код установщика в чистом виде

Ставим курсор в конец 6 строки AppId= и нажимаем кнопки Shift+Ctrl+G
После чего в положение курсора должен вставиться уникальный GUID, генерируйте его так каждый раз при создании нового проекта установщика.

Пример: AppId={{22AF3634-7CEC-413C-9EC4-233DB9777B09}

Рассмотрим основные строки:

#define MyAppName "Minecraft Super Client"
Название установщика
#define MyAppVersion "1.5"
Версия установщика
DefaultDirName=C:\Games\Minecraft Client\{#MyAppName}
Путь по умолчанию, куда будет установлен клиент
SetupIconFile=C:\Games\SIP\Без-имени-1.ico
Путь к иконке установщика

Компоненты

категории и элементы для выборки устанавливаемых модов

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL

Тут мы создаём всё, что хотим сделать опциональным.
Компоненты разделяются на категории/подкатегории обратной косой чертой ( \ ).
Имя - название компонента.
Описание - то, что будет показано в установщике.
Типы - к какому типу установки принадлежит категория. По умолчанию стоит тип "Full", т.е. полная установка.
Если выставить компоненту тип "Full", то он будет включен по умолчанию. Если ничего не выставлять - выключен по умолчанию.
Флаги - параметр компонента. По умолчанию никаких флагов не установлено.
"fixed" - запрет на изменение вкл./выкл. "exclusive" - сделать компонент уникальным в масштабе данной категории, т.е. будет возможен выбор только одного элемента
В итоге наш пример будет выглядеть так:

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL


Файлы

все файлы, которые будут упакованы в установщик

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL

Пихаем сюда весь наш клиент. Тут начинается самая тяжёлая и долгая часть.

Для начала нажмите ПКМ в любом месте правого окна ( где файлы ), в всплывшем окне нажмите "Настройка представления" и поставьте галочку у "Компоненты"
Рассмотрим основные свойства:

Исходная папка
Откуда будет взят данный файл
Папка назначения
Куда будет установлен файл. {app} - путь по умолчанию, который мы указали ранее
Компоненты
Выбранный компонент файлу. Если не выбрать - то файл не будет установлен!

В свойства файла можно двойным нажатием ЛКМ или через соответствующий пункт через ПКМ. Возможно изменение свойств нескольким выбранным файлам.

Для удобства я разделил "системные" файлы, которые будут установлены в любом случае, выдав им компонент "client"

Все остальные файлы модов и прочего - надо выставить вручную для каждого созданного компонента.

То есть для файла BetterFPS выбираем компонент "mods\cat1\betterfps", который мы создали специально для него.

И подобным образом компоненты выставляются всем файлам, включая файлы конфигов ( из папки config ).

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

Если вы создали компонент, но не назначили ему файлов, то в установщике не будет указан его размер.

После того, как отмучаетесь с этим - можно компилировать скрипт ( красная рамка ).

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL

В случае успеха там же есть кнопка для запуска установщика ( фиолетовая рамка ).

Обязательно проверяйте установщик после успешной компиляции! Установите его несколько раз, посмотрите на список компонентов, всё ли верно выставлено Проверьте пути установки и правильность расположения файлов


В итоге у нас должно получиться уот такое уот чудо:

Создаём 64-битный портативный установщик с выбором модов и встроенной Java на основе TL

  1. Олдфаги

    31 августа 2018 18:07

    +3

    Жду советов по оформлению новости, не знаю как её раскрасить NewspaperGuy
  2. Посетители

    31 августа 2018 18:13

    +2

    5 мем,раскрашивать туторилы не обязательно
  3. Посетители

    31 августа 2018 22:45

    +1

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

    Естественно, пятый мем и плюсик в репу the-man
  4. Администраторы

    1 сентября 2018 21:45

    0

    Топ, большое спасибо за такой материал и оформление.
    Низкий поклон. nravitsa
Для написания комментария зарегистрируйся на сайте, это займет всего пару минут, голосуй за новости, зарабатывай репутацию.