S
seroperson's channel
@seroperson_me40 подп.
72просмотров
6 февраля 2026 г.
📷 ФотоScore: 79
⛏️ Чем заняться в свободное время, ч.1 Сейчас немножко выпал из инфополя, сегодня вот расскажу, почему. Собственно, у меня иногда такое случается, что появляется какой-то мини-проект или какая-то супер-сложная интересная (самовыдуманная) таска, которая забирает у тебя просто всё свободное время, которое раньше тратилось на что-то более полезное. Такое очень часто связано с играми и реверс-инженирингом какой-то неведомой хуйни. Короче, я залип в игру No Rest for the Wicked. Я там уже прошел всё что можно, естественно, но причина моей пропажи не в этом, а в том, что мне захотелось к этой игре закодить интерактивную карту мира. В самой игре как бы есть карта, но на ней не отмечены ресурсы, сундуки всякие, ну и вот это всё. А мне вот надо достать координаты всего лута из игры, достать карту, всё это спроецировать и отрисовать. Такой вот мини-проектик я себе придумал и сейчас им занимаюсь. Игра с последним апдейтом немножко завирусилась и привлекла много новой аудитории (в том числе меня), и такой карты до недавнего момента не было вообще, и вот когда эта идея у меня появилась и я начал её реализовывать, кто-то из, видимо, новоприбывших, тоже выкатил свою карту, что, конечно, немножко отбило желание дальше этим заниматься. Но всё равно уже хочется довести начатое до конца, как минимум из спортивного интереса. Тем более, что выкатили там полное говно: просто карту, на которой ручками сами отметили точки, которые нашли во время игровой сессии. В этом, конечно, нет никакого челленджа, это вообще неинтересно и делается за один вечер. В моей топ-карте пришлось запотеть и вот примерно какие шаги я прошел до текущего момента (кстати, сама карта 🗺 seroperson.github.io/nrftw-interactive-map): 🔹 Выгрузить картинкой саму карту. Это было легко: тут просто берешь какой-то экспортер Unity-ресурсов (в моем случае это был AssetRipper) даешь ему бандл, на выходе получаешь кучу гигабайт ресурсов. Среди этих ресурсов находишь тайлы карты, в обычном редакторе склеиваешь всё в одну картинку и готово. 🔹 Теперь нужно найти координаты ресурсов и всего лута, который хочешь на эту карту нанести. Часть ресурсов лежит в захардкоженном виде прям в экспортированных файлах игры, единственная проблема с ними только в том, что всех их реально надо прям найти. Файлы огромные, файлов много, кроме огромных регулярок часто остается действовать только методом научного тыка. 🔹 После того как нашли всё что могли, это надо нанести на карту. Координаты нам достаются формате огромных интовых чисел, которые ну как бы не матчатся 1-в-1 на твою 16384x16384 картинку, естественно. Поэтому надо приседать с проекциями, пробовать кучу разных трансформаций, пробовать всякие теории и предположения, перековырять ещё неизвестно сколько кишков игры, чтобы по итогу оно всё-таки нормально на эту картинку легло. 🔹 Далее мы вайбкодим само приложение, присираем всякие селекторы, раскатываем всё в интернет. Выглядит страшненько, код там тоже так себе, но для исследовательских целей сойдет. И сейчас я на этапе, когда нужно достать недостающие объекты, которые отсутствуют в экспортированных файлах и берутся вообще непонятно откуда. Ну, есть подозрение, что они всё равно лежат статично в файлах игры, просто в бинарном или ещё каком-то виде. Вот в этом я и ковыряюсь последние дни. Тут уже надо дебаггером цепляться к игре, в рантайме доставать эти координаты, экспортить их, ну и вот это всё. И ладно ещё подцепиться - надо же ещё понять, куда именно цепляться, и как там вообще хоть что-то увидеть вменяемое. Ну, короче, занятие действительно интересное, такое мы любим. Вот такие дела. Буду держать в курсе, как тут продвигается процесс. Потом может оформлю всё в какую-нибудь статейку. Ковырять кишки игр - это всегда увлекательно! 👨‍🔬
72
просмотров
3738
символов
Нет
эмодзи
Да
медиа

Другие посты @seroperson_me

Все посты канала →
⛏️ Чем заняться в свободное время, ч.1 Сейчас немножко выпал — @seroperson_me | PostSniper