Сборка RRS для ОС Windows 7/10/11 64 bit

Сборка RRS для ОС Windows 7/10/11 64 bit

Введение

Все нижеследующее рассчитано на читателя, знакомого с основами программирования, администрирования ОС семейства Windows, а также, имеющего базовые навыки использования систем контроля версий ПО. Автор руководства не несет ответственности за допущенные читателем ошибки. Автор, в данном тексте, не ставит своей целью разъяснение базовых навыков и деталей руководств пользователя ПО, упоминаемого в тексте. Все действия, выполняемые читателем далее, выполняются им на свой страх и риск.

1. Системные требования

В настоящее время симулятор ориентирован на использование в 64-разрядных версиях операционной системы Windows. Перед началом сборки игры следует убедиться в том, что

  • У вас установлена актуальная версия ОС со всеми необходимыми для работы обновлениями
  • Установлена актуальная версия драйвера видеокарты, поддерживающая OpenGL

2. Требования к средствам разработки

Для сборки проекта симулятора требуется установленный фреймворк Qt5 (рекомендуемая версия Qt 5.15.2), собранный 64-разрядным компилятором MinGW (рекомендуемая версия MinGW 8.10 64-bit)

3. Зависимости сборки

Симулятор использует ряд сторонних библиотек. Все зависимости собраны из исходных текстов компилятором MinGW. Для упрощения процесса подготовки окружения можно воспользоваться прекомпилированными версиями зависимостей, список которых, вместе со ссылками на скачивание, приведен ниже

НаименованиеВерсияНазначениеЗагрузка
OpenSceneGraph3.6.5Графический фреймворк для разработки 3D-графики на базе API OpenGLСКАЧАТЬ
(8,53 Мб)
OpenAL1.1Кроссплатформенный API для работы с аудиоданнымиСКАЧАТЬ
(4,88 Мб)
FreeType 2.4.10Библиотека для растеризации шрифтов и операций над нимиСКАЧАТЬ
(685 Кб)
zlib1.2.11Свободная кроссплатформенная библиотека для сжатия данныхСКАЧАТЬ
(112 Кб)

Внимание! Содержимое каждого из приведенных в списке 7-zip архивов распаковывается в отдельный каталог в произвольном, удобном вам месте жесткого диска. Для распаковки архивов требуется установка архиватора 7-zip, получить который можно здесь.

4. Настройка окружения сборки

После установки вышеприведенных зависимостей необходимо настроить следующие системные переменные окружения

  • %FREETYPE_LIBRARY% — содержит путь к библиотеке libfreetype.dll
  • %OPENAL_BIN% — содержит путь к каталогу bin/ библиотеки OpenAL
  • %OPENAL_INCLUDE% — содержит путь к заголовочным файлам (каталог include/) библиотеки OpenAL
  • %OSG_BIN_PATH% — путь к каталогу bin/ библиотеки OpenSceneGraph
  • %OSG_INCLUDE_PATH% — путь к заголовочным файлам (каталогу include/) библиотеки OpenSceneGraph
  • %OSG_PLUGINS_PATH% — путь к плагинам OpenSceneGraph
  • %ZLIB_LIBRARY% — путь к библиотеке libzlib.dll

Для примера, приведу свои значения указанных переменных окружения

Пример настройки окружения сборки RRS

5. Установка ресурсов игры

Симулятор RRS, помимо исходного кода, содержит ряд ресурсов, необходимых для нормальной работы, а именно

  • Модели, конфиги анимации и звуки для электровозов ВЛ60пк и ВЛ60к, поставляемых в комплекте с игрой
  • Модели, конфиги анимации вагонов, поставляемых в комплекте с игрой
  • Маршрут «Испытательный полигон»
  • Шрифты, используемые графической подсистемой

Данные ресурсы не хранятся в репозитории исходного кода, в виду их значительного объема. Архив, содержащий всё перечисленное выше, можно скачать здесь.

Следует создать в произвольном месте файловой системы каталог, назвав его, например RRS и распаковать туда содержимое данного архива, так, чтобы получилась следующая структура каталогов

6. Получение исходного кода симулятора

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

В каталоге с ресурсами игры (папки data/ и routes/) вызываем консоль GitBash

В появившемся терминале вводим команду

Начнется процесс клонирования репозитория на вашу локальную систему, который успешно завершается так

В каталоге проекта создан каталог с именем RRS

Переходим в него через терминал Git

Проект содержит зависимые репозитории (сабмодули), которые необходимо так же загрузить.

К ним относятся:

  • asound — звуковая подсистема симулятора, использующая OpenAL API
  • osgdb_dmd — плагин OenSceneGraph для загрузки 3D-моделей формата DMD (DGLEngine 1.1), используемых в маршрутах
  • tcp-connection — сетевой модуль (используется ограниченно, но из зависимостей не исключен)

Инициализируем сабмодули

и обновляем их

Теперь у нас развернуто полное дерево исходников симулятора

7. Настройка проекта и сборка в QtCreator

Запускаем IDE QtCreator из комплекта фреймворка Qt и открываем проект

Указываем путь к скрипту сборки проекта

Настраиваем сборочные каталоги, аналогично тому, как показано на рисунке (с точностью до конкретного пути к проекту)

Выбираем требуемую конфигурацию сборки

Правой кнопкой мыши на заголовке проекта выбираем пункт «Пересобрать»

После сборки, дерево каталогов проекта выглядит так

При четком выполнении инструкций, приведенных выше, сборка не должна доставить неудобств

8. Развертывание проекта вместе со средой времени выполнения (runtime)

Успешная сборка не означает получение работоспособного симулятора. Необходим этап развертывания проекта — компоновку программных модулей, файлов конфигурации, ресурсов и библиотек, необходим для работы игры. Симулятор придерживается концепции stand alone, то есть развертывание позволяет получить на целевой системе симулятор, содержащий в своей структуре все необходимое для его работы.

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

Для финального развертывания открываем консоль Qt (Пуск -> Qt -> Qt<номер версии> (MinGW<номер версии> 64-bit))

Переходим к каталогу проекта

Переходим в каталог scripts/

Далее, запускаем скрипт развертывания windeploy.bat

Успешное выполнение скрипта приведет к появлению в каталоге, на который указывает %RRS_DEV_ROOT% следующего содержимого

Если всё прошло успешно, мы получаем базовую сборку симулятора. Запуск выполняем стандартным способом, отправив на выполнение файл bin/launcher.exe

Заключение

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