Сборка Open Source GTA VC и GTA III в Linux
Скорее всего нет тут такого человека, который бы не играл в 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 можно так (если не установлены):
Установка необходимых библиотек:
Тут остановимся и рассмотрим поподробнее. Я вчера пол часа потратил на поиск решения проблемы компиляции из-за своей невнимательности. На 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
Распаковываем в любую папку. Заходим в распакованную папку и выполняем следующие команды:
Библиотека нужной версии установлена. Теперь клонируем репозиторий:
Это много времени не займет. После клонирования размер папки reVC около 120 МБ(из которых 70 МБ папка .git).
Далее идем в папку reVC и запускаем premake5Linux:
Генерация фалов сборки займет пару секунд.
Примечание: Если вы используете архитектуру 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 нужно так:
Компиляция происходит достаточно быстро. На моём старом ноутбуке (Asus X55A, Pentium B970 2×2.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 ничем не отличается, за исключением клонирования репозитория:
Источник
Нативные GTA III, Vice City и Liberty City Stories для Linux, FreeBSD и macOS
Работают хорошо, по крайней мере GTA 3 и Vice City, Liberty City Stories не пробовал. Для работы нужен как минимум OpenGL 2.1 или OpenGL ES 2.0.
20.02.21 репозиторий на GitHub закрыт по DMCA. Ссылки на другие источники: раз, два, три.
А вот этот проект заглох?
У него требования выше вроде как.
Спасибо за линк!
На данный момент видимо да, последний коммит был почти год назад. Хотя вполне возможно, что потом продолжат пилить.
С Re3, вроде как, игра полностью проходима, а в OpenRW только некоторые миссии пройти можно.
OpenRW ещё и OGL 3.x требует вроде как и шейдерами под завязку обвязан.
для тебя плохие новости, обладатель s3 trio
Воу, вот это крутота, молодцы! Сейчас потестим. А Сан-Андреас планируется? До сих пор любимая часть UPD так, а как ставить-запускать то? там какие-то master branch, miami branch, ссылки какие-то, git clone не делать,я так понял?
Опять только убунта поддерживается 🙁
пять звёзд, а не знает, что в линуксе на работу бинарей не из реп можно не особо рассчитывать
Не знаю. Для San Andreas есть другой проект.
а как ставить-запускать то? там какие-то master branch, miami branch, ссылки какие-то, git clone не делать,я так понял?
Там есть ссылки на уже собранные бинарники для Linux. Скачиваешь, кладешь в каталог с игрой, запускаешь. Файлы игры, конечно, придется откуда-нибудь скачать, так как в проекте только сам движок. На рутрекере есть сборка от меня.
Если хочешь сам скомпилировать, то там также есть инструкция.
master branch — это GTA 3; miami — это Vice City; lcs — Liberty City Stories.
Не только Ubuntu, просто нужен как минимум glibc 2.27. Скомпилируй сам на своей системе, тогда будет работать.
Я не могу, т.к. для сборки требуется либо premake5, либо conan, но ни того, ни другого в моем дистре нет.
Бинарь premake5 лежит прямо среди исходников, нужно его использовать.
Еще для сборки нужен glfw как минимум версии 3.3, тебе его придется скомпилировать, так у тебя явно более старая версия, с которой движок не соберется.
Для San Andreas есть другой проект.
open source reimplementation of GTA San Andreas game engine in Unity.
На безрыбье сойдет, конечно, но, надеюсь, что в будущем будут альтернативы на других движках.
Ок, со сборкой разобрался, но теперь новая проблема: игра жалуется на отсутствующие аудиофайлы. Аудиофайлы лежат на втором компакт-диске, как и положено в лицензионной версии. Куда их положить, чтобы все заработало?
Просто скопируй все файлы с двух дисков в один каталог и из него запускай. Должно сработать.
Явно какая-то фигня с путями.
Больше ошибок нет? re3.ini должен при запуске появляться.
Афигеть, с самого выхода GTA SA наблюдаю подобные проекты под и не один раньше дальше отрисовки меню не продвинулся
Хорошо, что я набрёл на эту тему прежде чем строчить в толксах.
Подтверждаю, на дебиане и интеловской встройке летает так, как и должна летать нативная игра.
Хотя должен отметить, что сейвы от стим-версии не грузит, а по ходу прохождения иногда зависает (что с гташной моделью сохранения тот ещё подарок).
Но в целом результат всё равно потрясный.
В детстве уже столько раз играно переиграно что давно не интересно
на дебиане и интеловской встройке летает так, как и должна летать нативная игра
В 2012 году запускал в VirtualBox GTA SA. Да, это при весьма плохом и экспериментальном 3D, и SA поновее и тяжелее. Работало хорошо.
Двадцать лет всё же играм.
Когда я последний раз запускал сабж на линуксе без стимплея, это был ещё ванильный вайн и изрядные тормоза.
А у стимовской версии свои заморочки вроде бажного вайдскрина или неснижаемой и очень высокой чувствительности мышки.
Так что да, для меня настолько приятно работающий вайс сити оказался в диковинку. Ну, пока он первый раз не сегфолтнулся)
В 2015 ещё в GTA III играл на MacBook Air 2013 года.
Ну вообще смешно — там графика на калькулятор.
Единственное, что пришлось самому переконвертить музыку — она шла с артефактами. Известный баг версии для macOS, не знаю исправили или нет.
А так порт на macOS сделан через что-то вайно подобное — Сидр какой-то там.
Известный баг версии для macOS, не знаю исправили или нет.
Да, исправили. Теперь в Steam игра только под Windows.
Видать окончательный переход macOS на 64 бита добил.
Я-то запускал, когда ещё даже портов на айось-андроид не было) Вайн за период 2010-2015 сильно поменялся.
Вообще, я очень надеюсь, что порт SA тоже запилят. А то там в движке сидит очень много дурацких ограничений (дальность прорисовки, количество трафика) из-за того, что PS2 не тянула. Конечно, есть всякие CLEO, но это малость не то.
Repository unavailable due to DMCA takedown.
Repository unavailable due to DMCA takedown.
Только сегодня хотел попробовать. Какой Fucking Slave это сделал? Сколько люди времени на реверс-инжиниринг потратили. Там даже самих ресурсов игры не было. За что там dmca.
Мде, совести у них нет.
Если кто не успел попробовать, здесь есть мои бинарники, собранные несколько дней назад. Исходники, увы, не сохранил, однако наверняка они скоро появятся на другом ресурсе.
Take2, издатель и, соответственно, владельцы рокстара.
Что, на самом деле, примечательно, поскольку в сабже, насколько я понимаю, отреверсили движок, а он в тех гта отнюдь не рокстаровский: RenderWare делали Criterion.
Показывает, насколько тщательно проверяется обоснованность этих самых takedown claims.
Оспорили бы… Но к сожалению, умение разрабатывать сложные проекты и умение отстаивать свои права в одном человеке сочетаются редко. Боюсь, что махнут рукой и закопаются куда-нибудь в даркнет.
Ну так не используй, раз тебя пугает 1/83.
Ты же в курсе, что ты URL просканировал, а не сами файлы по ссылке?
Take2, издатель и, соответственно, владельцы рокстара.
Кто-то из Cock2 на лоре сидит или это просто совпадения?
Нашел, кстати, ссылку на исходники на Reddit.
насколько я понимаю, отреверсили движок, а он в тех гта отнюдь не рокстаровский: RenderWare делали Criterion.
Показывает, насколько тщательно проверяется обоснованность этих самых takedown claims.
А ты откуда, эксперт, такой вывод сделал?
Ну знаешь, на самом деле это слишком лихо требовать от человека быть готовым забесплатно посвящать своё время подобной бюрократии.
Тут проблема скорее в подходе «бей, потом разберёмся», который исповедует гитхаб. Хотя, конечно, их хозяевам ни к чему репутационные риски сутяжничества с издателями игр. А комьюнити никуда с подводной лодки не денется.
А ты откуда, эксперт, такой вывод сделал?
Из описания проекта.
Я две твои цитаты привёл, почему из первого следует второе?
Судя масштабу проекта и по стилю и содержательности описалова на гитхабе, это делали не деревенские дети из россии/индии/китая, а люди с пониманием, поэтому не ясно зачем им было заявлять, что это именно реверс-инж. Наверняка понимали же что подставляются.
Если исходить из посылки о том, что в проекте реализован именно лицензированный в своё время разработчиками движок, то для обоснования претензии её автор должен доказать нарушение прав именно на движок.
Однако в претензии Take2 кроме общей фразы о том, что «The content in the links below consists of copyrighted materials owned by Take-Two» и ссылок на страницы игр, ничего на эту тему нет. В чём состоят «copyrighted materials», не сказано. Хотя, по хорошему, как минимум T2 должны были сообщить, что у них есть такие-то права на RW и они на этом основании уполномочены выступать с этими претензиями.
Кроме того, учитывая, что дата претензии — вчера, и учитывая масштаб проекта, я лично сильно сомневаюсь, что её обоснованность всерьёз анализировалась (хотя это, разумеется, неэкспертное мнение).
Но то, что она была принята с таким бестолковым обоснованием в отношении проекта, который требует для работы наличия у пользователя собственно игры (тех самых copyrighted materials), показывает, что обоснованность претензий всерьёз не анализируется и, скорее всего, они обрабатываются автоматически (вот я Америку-то открыл, а).
https://github.com/github/dmca/blob/master/2021/02/2021-02-19-take-two.md
Ну всё обосновано.
Какой смысл рассусоливать на пол страницы про *DMCA*. и прочих лойеров? Oно изначально создано не для смысла, а чтобы бабло из воздуха делать не мешали. Всё равно что адекватность EULA-портянок обсуждать.
Любые попытки натянуть диджитал-эра контент на сову законотворчества эпохи индустриального обчества обречены на провал.
Электроны не слушаются законов Сената или Госдуры. Только господ Ома, Кулона да еще парочки. И то это не точно)) Поэтому прав РМС со своим подходом, что всё что улетело в диджитал обратно не загонишь.
Потому что всю историю нового времени, что бы не изобретали и не патентовали люди, это было что-то что вовлекает человека.
Диджиталу человек не нужен от слова совсем.
Источник