16 февраля 2021 16.02.21 20 16K

Вышли финальные версии исходного кода GTAIII и Vice City, которые создали через обратный инжиниринг

Весной 2018-го фанатское сообщество занялось re3 — проектом, в рамках которого собирали исходный код Grand Theft Auto III и Vice City через обратный инжиниринг. Теперь «сорцы» доросли до версии 1.0 — они доступны всем желающим. Если вы не программист со спортивным интересом, а простой геймер, то можно затаиться в ожидании великих вещей!

Полностью воссозданный исходный код развязывает руки разработчикам-любителям: например, теперь GTAIII и Vice City гораздо проще портировать на новые платформы — даже на основе предварительных версий re3 появились самопальные варианты этих игр для Switch, PS Vita и Wii U. Кроме того, с исходниками проще реализовать всякие технические апгрейды — как знать, может, Вайс-Сити скоро засияет лучами рейтрейсинга!

Наконец, в ходе создания исходного кода Кулибины ввели ряд улучшений: исправили множество багов, соорудили свободную камеру, внедрили поддержку стандарта XInput геймпадов Xbox, убрали подгрузку между островами, вернули частицы из версии для PlayStation 2 и так далее.

Планы на будущее имеются: авторы хотят портировать код обратно на PS2 (ди-каприо-из-начала.жпг), исправить физику при высоком фреймрейте, а также улучшить производительность на слабых устройствах (особенно на OpenGL в Raspberry Pi).

Юристы Rockstar Games и Take-Two вряд ли закроют проект: так как он основан на обратном инжиниринге и не использует код, который принадлежит компаниям, правового нарушения нет. По этому принципу выживают многие эмуляторы. Кроме того, вместе с re3 не дают ассеты игр — предполагается, что пользователи берут их из своих легально приобретённых копий GTAIII и Vice City.

Скриншоты в этой новости сделаны в GTAIII на основе re3.


Поддержи Стопгейм!

Grand Theft Auto: Vice City

Платформы
PC | Mac | PS2 | PS3 | PS4 | PS5 | XBOX | X360 | XONE | XBOXSX | iOS | Android | AmzKF
Жанры
Дата выхода
29 октября 2002
5.2K
4.4
3 827 оценок
Моя оценка

Grand Theft Auto III

Платформы
PC | Mac | PS2 | PS3 | PS4 | PS5 | XBOX | X360 | XONE | XBOXSX | iOS | Android | AmzKF
Жанры
Дата выхода
22 октября 2001
3.2K
4.1
2 123 оценки
Моя оценка

Лучшие комментарии

Хм, то есть возможно когда-нибудь выйдет еще перепройти Vice City с фреймрейтом выше 24 фпс и не сломаной при этом физике? Неплохо, неплохо.

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

Надеюсь проект будет стабильный в работе и модерская фан база будет.

Машины останавливающиеся как вкопаные через секунду как отпускаешь газ, инерция персонажа такая что влетая на спринте в машины можно их переворачивать, разбиваешься насмерть упав с двухметровой высоты. И чем выше фреймрейт тем сильнее проявляются огрехи. Вполне проходится, но выглядит весьма странно.

Если ты про слово «инжЕнЕрия», то это совершенно другой термин, заимствованный когда-то из французского или немецкого языка. А слово «инжиниринг» это новояз, англицизм по сути. Семантика у него другая.

В случае с эмуляторами действует правило, что весь код должен быть написан самостоятельно, без использования кода из оригинальной консоли. Об этом рассказывали разрабы эмулятора Dolphin. Недавно была крупная утечка внутренних документов Nintendo, где были и какие-то программные штуки, которые касаются Wii. Ну и разрабов Dolphin спросили, не собираются ли они покопаться в утечке и использовать что-нибудь оттуда в эмуляторе. Разрабы ответили, что не собираются, так как любое использование слитого кода моментально даст повод Nintendo закрыть Dolphin, чего она сейчас сделать не в силах — весь код-то в эмуле другой, самостоятельный.

Я могу ошибаться, конечно, но мне кажется, здесь работает тот же самый принцип, иначе юристы Rockstar и Take-Two уже прикрыли бы проект. Он известный, вирусился в интернете на протяжении нескольких месяцев, поэтому R* и T2 о нем наверняка знают. Но вот почему-то не закрывают. Моя теория — как раз благодаря тому, что весь код в этой оболочке чужой.

Можно ли восстановленный обратным инжинирингом код называть исходным?...

Я правильно понял, что теперь можно будет нормально играть в стим-версии этих игр?))))

Он будет исходным кодом для последующих модификаций, но не для изначальной игры. Юридически всё кошерно.

Проходил с 60 и не понял, чё все там нашли сломанного, вполне проходится.

Надо «обратная разработка», раз уж на то пошло. А вообще «ревёрс» самый нормальный термин.

Для этого используется дизассемблер IDA Pro, при помощи него копаются в ассемблерном коде исполняемого файла игры и по этому низкоуровневому коду восстанавливают код на любом другом языке программирования. Этот процесс действительно не может быть точным на 100% и его очень сложно автоматизировать (привет, Hex-Rays), т.к. при компиляции несущественная для исполнения информация теряется.

Не знаю какая там задача у них, но при желании можно воссоздать практически точную копию (с функциональной точки зрения).

Юристы Rockstar Games и Take-Two вряд ли закроют проект: так как он основан на обратном инжиниринге и не использует код, который принадлежит компаниям, правового нарушения нет.

Да ну? Вообще-то лицензионное соглашение большинства программ запрещает их ревёрс и в процессе ревёрса они один в один переписывают большинство оригинальных функций игры, так что больше половины кода по-прежнему принадлежит правообладателям. Они даже сами пишут, что всё, что не является обёртками для совместимости с другими платформами или фиксом, это полностью оригинальный код.

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

они доступны всем желающим

уже нет. но есть перезаливы на gitlab

Как они это делают? То есть, в чём заключается инжиниринг? 

Можно создать мир и подогнать физику на другом движке, например, но не думаю, что это будет считаться. Можно ли взять тот же движок и построить, чтобы было то же (даже баги и гличи чтобы остались)? Может же быть, что исходники работают по-другому, с другой иерархией классов, архитектурой, синхронизацией? Или это всё же более народный вариант, не претендующий на хирургическую точность, но дающий дорогу мододелам и любителям побаловаться?

А разве не инжинЕринг вместо нижиниринг?

Читай также