[C++, Разработка игр] Сборка Open Source GTA VC и GTA III в Linux

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
18-Фев-2021 00:31


Скорее всего нет тут такого человека, который бы не играл в GTA (или хотя бы не слышал о ней). Первая 3D версия серии вышла около 20 лет назад. Это была GTA III. Через год вышла GTA: Vice City. Несмотря на это, в эти игры до сих пор не только играют, но и создают моды. Эти игры портированы на множество платформ, но к сожалению, Linux (до недавнего времени) обошли стороной. Единственный вариант поиграть в Linux — был wine. Но недавно все изменилось.
Мне на глаза новость — Разработчики закончили реверс-инжиниринг GTA III и Vice City и выпустили порты для разных платформ. А так как я слежу за всем, что касается исходников(утечки, открытие и т.д.), а также люблю собирать софт из исходников — разумеется это я не мог проигнорировать. Из новости я понял, что энтузиасты опубликовали исходный код GTA III и GTA: VC. Моей радости не было предела. Я сразу же пошел на github за дополнительной информацией.
Основные улучшения (касательно miami):
— Исправлено множество мелких и крупных багов.
— Пользовательские файлы (сохранения и настройки), теперь хранятся в корневом каталоге GTA.
— Настройки теперь хранятся в файле reVC.ini (в оригинале были в gta_vc.set).
— Добавлено меню отладки (доступно по CTRL+M).
— Свободная камера (Debug camera). CTRL+B — вкл/выкл. При включении камеру можно свободно перемещать во всей карте.
— Убраны экраны загрузки между островами.
— И некоторые другие исправления/улучшения, включая исправления для других платформ.
Примечание: эти параметры можно настроить в файле core/config.h. Некоторые параметры можно менять прямо в игре (используя отладочное меню), а для остальных потребуется пересборка.
Перейдем к самому интересному, а именно к сборке miami (GTA: VC).
Нам потребуются:
— Дистрибутив Linux (Ubuntu, Debian, Mint, etc);
— Оригинальные файлы (ассеты) с дистрибутива игры VC (в случае сборки GTA III — соответственно потребуются файлы GTA III).
— GCC.
— Некоторые библиотеки и заголовочные файлы.
В качестве ОС использую Linux Mint 19.3 (основа — Ubuntu 18.04 LTS). Установить компиляторы gcc можно так (если не установлены):
sudo apt install build-essential

Установка необходимых библиотек:
sudo apt install libopenal-dev libglew-dev libglfw3-dev libmpg123-dev

Тут остановимся и рассмотрим поподробнее. Я вчера пол часа потратил на поиск решения проблемы компиляции из-за своей невнимательности. На GitHub четко указано, что версия библиотеки glfw должна быть не ниже 3.3, в то время как в репозиториях Ubuntu 18.04 — 3.2. Поэтому, если у вас дистрибутив построенный на Ubuntu 18.04 (или в репозитории версия библиотеки glfw ниже 3.3) — то данную библиотеку необходимо собрать из исходников. Но тут нет ничего сложного. Качаем архив github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.zip
Распаковываем в любую папку. Заходим в распакованную папку и выполняем следующие команды:
mkdir glfw-build
cd glfw-build
cmake -DBUILD_SHARED_LIBS=ON ../
make -j2
sudo checkinstall

Библиотека нужной версии установлена. Теперь клонируем репозиторий:
git clone --recursive -b miami https://github.com/GTAmodding/re3.git reVC

Это много времени не займет. После клонирования размер папки reVC около 120 МБ(из которых 70 МБ папка .git).
Далее идем в папку reVC и запускаем premake5Linux:
./premake5Linux --with-librw gmake2

Генерация фалов сборки займет пару секунд.
Примечание: Если вы используете архитектуру arm/arm64 — то вам нужно собрать утилиту premake5Linux из исходников, а потом запустить с параметром, указанном выше.
Теперь собственно сама сборка. Для сборки доступны следующие конфигурации:
— debug_linux-x86-librw_gl3_glfw-oal
— debug_linux-amd64-librw_gl3_glfw-oal
— debug_linux-arm-librw_gl3_glfw-oal
— debug_linux-arm64-librw_gl3_glfw-oal
— release_linux-x86-librw_gl3_glfw-oal
— release_linux-amd64-librw_gl3_glfw-oal
— release_linux-arm-librw_gl3_glfw-oal
— release_linux-arm64-librw_gl3_glfw-oal
Думаю, из названий и так все понятно. Главное не перепутайте amd64 и arm64(я вчера ночью сонный недосмотрел, потом не мог понять, почему не происходит сборка).
Переходим в директорию reVC/build и запускаем make с вашей конфигурацией. В случае с debug-версией для amd64 нужно так:
make config=debug_linux-amd64-librw_gl3_glfw-oal

Компиляция происходит достаточно быстро. На моём старом ноутбуке (Asus X55A, Pentium B970 2x2.3 ГГц и 4 Гб памяти) сборка отладочной версии заняла 2 мин. 10 сек.(выходной файл = 30.4 МБ), релизной — 4 мин. 44 сек.(размер файла = 43,8 МБ). По своему опыту скажу, что во многих случаях — обычно все наоборот.
Если компиляция прошла без ошибок, то в папке reVC/bin/ваша_конфигурация/Debug_или_Release/ будет бинарник reVC.
Копируем куда-нибудь оригинальную папку с GTA: VC (при желании, можно удалить все файлы из корня — они нам не понадобятся). Потом в папку с игрой копируем наш бинарник reVC. Теоретически, игру уже можно запускать, и даже играть. Но текст на некоторых пунктах меню будут неправильно отображаться:

Чтобы это исправить, копируем папки с заменой из reVC/gamefiles в папку с игрой. Правда, в таком случае, игра будет на английском языке.
Теперь пробежимся по меню отладки:

Что бы включить или выключить меню отладки — нажмите CTRL+M.
— Cam — все, что связанно с камерой.
— Cheats — Различные читы.
— Debug — Отображение разной отладочной информации, позиции игрока, и т.д.
— Debug Render — Можно скрывать или отображать различные объекты, транспорт, строения, пешеходов, показывать пути транспорта и пешеходов и т.д.
— Game — Телепортация в любое место (предварительно нужно поставить метку на карте). Также можно запустить абсолютно любую миссию.
— Particle — Не знаю что это такое.
— Render — Некоторые fix'ы, настройка fps, графические настройки…
— Spawn — Спаун транспорта.
— Time & Weather — Настройка времени и погоды.
Сборка GTA III ничем не отличается, за исключением клонирования репозитория:
git clone --recursive https://github.com/GTAmodding/re3.git

Насчет модов: текстуры, скрипты, модели должны работать. А вот dll/asi, CLEO работать не будут. Некоторые возможности этих модов уже реализованы в re3, некоторые можно настроить в файле config.h.
Ссылки по теме:
github.com/GTAmodding/re3
Инструкция по сборке GTA III
Готовые бинарники reVC для Mac, Linux, Windows
Готовые бинарники re3 для Mac, Linux, Windows
Просмотр репозитория в Visual Studio Code
Lifehack: Если в ссылке на github изменить github.com на github1s.com, то репозиторий можно просматривать в удобном Visual Studio Code.
===========
Источник:
habr.com
===========

Похожие новости: Теги для поиска: #_c++, #_razrabotka_igr (Разработка игр), #_gta, #_grand_theft_auto, #_open_source, #_reverse_engineering, #_linux, #_c++, #_razrabotka_igr (
Разработка игр
)
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 22-Ноя 15:51
Часовой пояс: UTC + 5