Почему ломаются файлы игры?

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

1. Во время применения патчей в Наследии возникает ошибка Runtime Error!
2. Игра отказывается запускаться или вылетает до окна выбора персонажа
3. Вместо заставок или карт местности вы видите сетку из квадратиков
4. Вместо некоторых текстов вы видите <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 минут.

  1. Зайти в папку с игрой, удалить там файлы client_local_English.dat и client_general.dat
  2. Запустить игру, запустится лаунчер игры, который запустит скачивание удаленных вами файлов
  3. Дождаться окончания скачивания, после скачивания запустить игру, проверить, что всё работает, не вылетает
  4. Закрыть игру, запустить Наследие и русифицировать игру.

После выполнения данных действий ваши игровые архивы снова здоровы, полны сил и готовы к новым испытаниям. Приятной вам игры в мире русского Средиземья!

Внимание! Если выполнение вышеуказанных действий вам не помогло, то скорее всего у вас сломан dat-файл со шрифтами - client_surface.dat. Ситуация крайне редкая, но возможная. В этом случае процедура "лечения" будет такой же, но помимо файлов client_local_English.dat и client_general.dat нужно удалить и файл client_surface.dat из папки с игрой и дать лаунчеру игры скачать удаленные файлы заново. После этого проблема должна исчезнуть.

+4
02:34
1891
08:56
+4
Спасибо большое, теперь, при случае, будет легче и быстрее починить игру. Спасибо за уделённое время! kissing
20:30
Спасибо! bravo
15:09
Спасибо, помогло smile
10:04
Спасибо, задолбал этот Runtime error))
23:37
За советы спасибо, но в моем случае ничего не помогло. Мучался, пока на каком то сайте по ошибкам С++ не увидел совет поменять язык системы на Английский(США), и на удивление этот способ сработал. Русификация установилась без проблем и вылетов.