Почему ломаются файлы игры?
Далеко не все возможные проблемы связаны с поломкой игровых файлов. Существует ряд других проблем, в том числе и имеющих схожие симптомы, однако, есть ряд признаков, которые однозначно свидетельствуют о том, что файлы игры поломаны и нуждаются в замене.
- Во время применения патчей Наследие вылетает или возникает ошибка Runtime Error!
- Игра отказывается запускаться или вылетает до окна выбора персонажа
- Вместо заставок или карт местности вы видите сетку из квадратиков
- Вместо некоторых текстов вы видите <String Table Error; TableDID ...
Если вы столкнулись с одной из вышеперечисленных ситуаций, мы настоятельно рекомендуем дочитать данную статью до конца. Не стоит бегать с криками "Караул, все пропало!", переустанавливать игру, переустанавливать Наследие - это либо ничего не даст, либо отнимет у вас гораздо больше времени и сил, чем прочтение данной статьи, которая даст ответы на все ваши вопросы и предложит вам простое решение вашей проблемы. Ну а те, кому не интересны предыстория и корни данной проблемы, могут смело переходить к концу статьи.
Не важно какую версию Наследия вы используете, данная проблема одинаково актуальна для всех версий Наследия. Этому есть как реальные примеры, так и логическое объяснение - механизм внедрения перевода абсолютно идентичен у всех версий Наследия и вы убедитесь в этом дочитав статью до конца.
Почему ломаются файлы?
Не существует ни идеального компьютерного "железа", ни идеального программного кода. На бумаге все чисто и гладко, но порой жизнь вносит свои коррективы. Сломаться может что угодно и когда угодно, от этого никто не застрахован. Даже крупные коммерческие продукты далеко не всегда способны обеспечить сохранность ваших данных.
Практически каждый пользователь ПК хоть раз в жизни, но сталкивался с подобной проблемой. И файлы игры в этом случае не исключение. Особенно учитывая тот факт, что по мере выхода обновлений игры в них вносится масса изменений, что значительно повышает шансы возникновения подобной проблемы.
Что такое игровые архивы?
Все мы слышали про существование программ архиваторов, таких как WinRAR, WinZip, 7-zip и т.д., и даже неоднократно ими пользовались. Понятие "архив" давно вошло в компьютерную терминологию и больше никого не удивляет. Файлы ресурсов игры, такие как client_local_English.dat, client_general.dat и т.д. - это практически такие же архивы, содержащие в себе десятки и сотни тысяч других файлов - текстов игры, картинок, текстур окружения и других системных файлов, необходимых для работы игры.
Что представляет собой процесс русификации?
Фактически этот процесс можно сравнить с процедурой распаковки архива, заменой оригинальных файлов на русские с последующей обратной сборкой архива. Говоря простыми словами, нам нужно заменить файлы в архиве такими же, но переведенными русскими файлами. В случае со стандартными общепринятыми форматами нет ничего проще - открываем архив в соответствующей программе, заменяем в нем файлы и получаем нужный нам результат. Но в случае с файлами игры все обстоит гораздо сложнее.
В чем же кроется проблема?
Кроется она в том, что каждый из архиваторов имеет собственный алгоритм сжатия данных и собственную структуру архива. Невозможно архиватором WinZip распаковать архив RAR, потому что данный формат ему неизвестен. Точно такая же ситуация и с файлами игры - нам неизвестен формат данных файлов, игра использует свой собственный алгоритм сжатия, формат архивов игры тоже отличается от других общепринятых форматов. Поэтому у нас не существует никаких стандартных средств распаковки и изменения этих файлов.
Данный формат известен только разработчикам игры, и они явно не станут им с нами делиться. Разглашение данной информации - прямой путь к порождению массы модов, самописных изменений, которые могу носить как чисто косметический характер, так и значительно влиять на игровой процесс. Напомню, что изменение файлов игры запрещено пользовательским соглашением, и разработчики в этом явно не заинтересованы.
Как нам удалось обойти эту проблему?
Тут придется немного окунуться в историю. Более 10 лет назад, в эпоху, когда SSD-дисков еще не существовало, ряд игроков сталкивались с проблемой падения производительности игры после выхода ее обновлений. Как выяснилось, формат архивов оказался не совсем удачным, и обновления игры приводили к увеличению размера файлов, изменения порядка файлов внутри архива, что негативно сказывалось на скорости их чтения и приводило к лагам и долгой прогрузке локаций. И тогда разработчиками Turbine Inc, которая в ту пору владела игрой, была написана специальная утилита-дефрагментатор, целью которой было упорядочивание файлов внутри игровых архивов и возобновление скорости доступа к ним.
Часть этой утилиты, отвечающая за работу с файлами игры, и положена в основу Наследия. Именно с ее помощью и происходит внедрение русских текстов в игровые архивы. Мы не знаем структуру игровых архивов, но у нас есть инструмент, который с этими архивами умеет работать. На первый взгляд, это идеальное решение - что может быть лучше готового инструмента от самих разработчиков игры? Однако, не все так радужно, как может показаться.
Кто виноват и что делать?
Начиная с самых первых версий Наследия мы начали сталкиваться с удивительными вещами - то в процессе установки русификации происходили вылеты самого Наследия, то сама игра отказывалась запускаться с русифицированными файлами, то в игре вместо перевода были текстовые и графические ошибки. Мы, естественно, грешили на наши кривые руки и пытались улучшить свой код, однако, все было безрезультатно. И в один прекрасный момент стало ясно, почему так происходит. В результате долгих наблюдений была замечена одна странность - русификация свежескачанных оригинальных файлов игры всегда проходила успешно, проблема появлялась далеко не у всех, но всегда только после установки обновлений лаунчером игры. Спустя какое-то время секрет столь странного поведения был нами разгадан - оказалось, что описанные выше библиотеки от Turbine Inc и те, которыми сейчас пользуется SSG, не в полной мере совместимы.
Представьте себе ситуацию, когда вы привыкли к определенному расположению предметов на своем столе, а в один прекрасный день вы приходите на работу и обнаруживаете, что кто-то заботливо "навел порядок" и расставил все предметы по-своему. Казалось бы, ничего не пропало, все необходимые инструменты есть, но работать в таких условиях вы не можете. Точно такая же ситуация происходит и с файлами игры - Наследие вносит изменения в архивы игры, размещая в нем русские файлы в соответствии с тем алгоритмом, который был написан разработчиками Turbine Inc, а следом приходит лаунчер игры и в процессе установки обновлений складывает их куда ему нравится и как ему нравится. Тем самым нарушая порядок и меняя правила игры.
Это очень напоминает ситуацию, когда вы смотрите фильм и замечаете периодически проскакивающие искажения изображения. Фильм вроде как запускается, его можно смотреть, но микроповреждения уже присутствуют. Или открываете ранее созданный вами файл и видите совсем не то, что ожидали увидеть.
В ряде случаев подобные изменения проходят безболезненно, написанная разработчиками Turbine Inc библиотека в состоянии разобраться что произошло и как в этом бардаке жить и работать, а в ряде случаев, к сожалению нет. Именно это и является причиной поломки файлов игры и мы, к огромному нашему сожалению, не в силах на это повлиять.
Что делать если вы столкнулись с подобной проблемой?
Вероятность того, что вы столкнетесь с данной ситуацией крайне низка. Как показывает практика, частота поломки файлов не превышает 0,5%, т.е. чисто теоретически вы можете один раз столкнуться с поломкой файлов, установив более 200 обновлений игры. Учитывая наш жизненный путь, это фактически равнозначно слову "никогда". Однако многие сталкиваются с данной проблемой гораздо чаще. Почему так происходит? Потому что статистика может лишь указать общее число таких случаев, и тут не существует равномерного распределения между всеми игроками. Наследие используют десятки тысяч игроков и минимум половина из них никогда об этой проблеме не слышала.
Зато есть "счастливчики", которые столкнулись с ней уже по нескольку раз, и именно для них предназначена данная статья. Нужно понимать, что возникновение данной проблемы - дело случая, никто от нее не застрахован. Вы можете годами играть в русскую LotRO, не подозревая о существовании данной проблемы, а можете столкнуться с ней несколько раз подряд после каждого обновления, такие случаи нам уже встречались. Главное, что вы должны знать, - в этом нет ничего страшного, исправить данную ситуацию легко, причин для паники нет. Достаточно лишь выполнить ряд простых действий, которые займут у вас не более 10 минут.
- Зайти в папку с игрой, удалить там файлы client_local_English.dat и client_general.dat
- Запустить игру, запустится лаунчер игры, который запустит скачивание удаленных вами файлов
- Дождаться окончания скачивания, после скачивания запустить игру, проверить, что всё работает, не вылетает
- Закрыть игру, запустить Наследие и русифицировать игру.
После выполнения данных действий ваши игровые архивы снова здоровы, полны сил и готовы к новым испытаниям. Приятной вам игры в мире русского Средиземья!
Внимание! Если выполнение вышеуказанных действий вам не помогло, то скорее всего у вас сломан dat-файл со шрифтами - client_surface.dat. Ситуация крайне редкая, но возможная. В этом случае процедура "лечения" будет такой же, но помимо файлов client_local_English.dat и client_general.dat нужно удалить и файл client_surface.dat из папки с игрой и дать лаунчеру игры скачать удаленные файлы заново. После этого проблема должна исчезнуть.