Моддер под ником Valps создал GTA 2 Map Rotator – инструмент для поворота карт GTA 2 на 90°, 180° и 270°. То, что казалось простой задачей переворота ретрофутуристического города, превратилось в многомесячный технический кошмар с переписыванием скриптов и обработкой десятков типов геометрии.
GTA 2 использует блочную структуру карт, похожую на Minecraft, но со специальными элементами – диагональными стенами и наклонами. Valps начал проект с попытки извлечь текстуры из PlayStation-версии игры. Когда стандартные инструменты не справились, он написал собственный на Python, что дало опыт для чтения других файлов игры.
Вращение карты GTA 2 – идея, которая у меня была давно, но я не знал, как это сделать.
Используя официальную документацию DMA Design о технических деталях файлов карт, он создал GMP Rotator для работы с .gmp-файлами.
Первые шаги оказались обманчиво простыми. Valps начал с чтения карты в Python – вводил xyz-координаты и получал свойства блока в этой точке, чтобы проверить корректность данных. Но каждое изменение вызывало цепную реакцию: поворот блоков требовал поворота текстур, наклонов и даже стрелок дорожной разметки.
Когда ландшафт карты был повернут – здания и дороги смотрели в новые стороны – выяснилось, что скрипты остались на прежних местах. Все объекты оказались не там: телефоны, припаркованные машины, цели миссий. Тоглда Valps написал вращатель скриптов – код на Python, читающий исходники карты, извлекающий координаты и поворачивающий их.
Работа была очень трудоемкой, но код стал одним из самых красивых, организованных и аккуратных, что я когда-либо писал.
Поворот дорог вызвал новые проблемы. Весь транспорт начал ездить по левой полосе в британском стиле, что сделало некоторые миссии неиграбельными и породило неожиданные баги – машины скорой помощи перестали респавниться, а наемные убийцы вместо преследования игрока уходили в противоположную сторону.
Самой сложной частью стали наклоны карты. DMA Design определила 63 типа наклонов – градиенты, рампы и диагональные стены. Для блоков с углом 45° существует четыре варианта, направленных на север, запад, восток и юг. Для углов 26° и 7° вариантов еще больше. Каждый наклон имеет номер от 0 до 63, и они следуют разным паттернам, так что Valps обрабатывал каждую группу индивидуально.
Стоит отметить, что оригинальную игру убрали из Steam еще в 2013 году, но мультиплеерное сообщество использует модифицированную версию 11.44 с исправлениями багов.
Подробности о проекте GTA 2 Map Rotator доступны на форуме GTA.
Источник новости: shazoo.ru