Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее

Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее

Всем привет! Чуть больше полугода назад я ради интереса решил разобраться, как вообще переводятся такие игры, чтобы просто поиграть в пятую часть на родном языке. За это время накопилась огромная база переведенного текста. Да, русификатор сейчас очень сырой: фразы местами вылезают за рамки, длинные строки обрезаются, а до многих текстур интерфейса у меня еще не дошли руки.

Но я решил, что лучше выпустить в открытый доступ Alpha v0.1 в таком виде, чем заставлять людей дальше мучиться с экранными переводчиками или играть на английском (тем, кто проходит в оригинале на японском — моё уважение, но таких всё же мало). В этой части я расскажу, как прошел релиз первой демки, как я лечил жуткие лаги в меню сохранений и какую функцию добавил в свой софт, чтобы ускорить работу с графикой.

Глава 39: Публичный релиз и главная проблема парсера

Седьмого апреля состоялся релиз первой играбельной сборки.

Вес архива получился смешным — всего около 169 МБ, но внутри упакован результат долгих месяцев реверс-инжиниринга. Туда вошел полностью переведенный сюжет, меню для 178 заведений (бары, рестораны, магазины), досье персонажей и часть системных меню. Я специально собрал всё самое основное, чтобы игру можно было запустить и комфортно пройти хотя бы базовые вещи без словаря.

Выпуская первую альфу, я прекрасно понимал, что багов будет много. И главная проблема сейчас кроется в моем собственном плагине — Редакторе Дракона (который собирает .msg файлы). В данный момент он работает некорректно и режет строки в рандомных местах. Даже короткая фраза может оборваться на полуслове, если она оказалась длиннее английского оригинала.

Самое обидное, что сам редактор этих ошибок не видит и показывает, что всё обновилось нормально. Глубокая переделка парсера — это колоссальный объем работы с риском сломать вообще всё, что сейчас хоть как-то работает. Поэтому публичный тест и ваши скриншоты в Telegram-бота («Кибер-Чистилище») или Google-форму сейчас жизненно необходимы. Если плагин не удастся победить в ближайшее время, вылавливать и сокращать эти обрезки придется вручную прямо в игре.

Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее
Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее
Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее

Вдобавок к этому, сразу после релиза вылез критический баг там, где я его не ждал — в меню сохранений. Из-за отсутствия нуль-терминатора в одной из строк файла explanation.bin, игра не просто обрезала текст, а начинала читать бинарный мусор дальше по файлу. В итоге в плашку описания вываливалось огромное количество бессмысленного текста. Намертво игра не зависала, но это дико перегружало систему при загрузке, и тормоза были такие, что пользоваться меню становилось больно.

Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее

Глава 40: Хотфикс сейвов и почему я пока не трогаю обрезки текста

Как я уже сказал, первый критический баг не заставил себя ждать: игра жутко лагала в меню сохранений. Проблема крылась в файле explanation.bin. Из-за того, что я перевёл название одной из глав слишком длинно, текст «затёк» за свои лимиты, перекрыл нуль-терминатор, и игра начала читать бинарный мусор, пытаясь отрисовать его на экране.

Чтобы не задерживать релиз и быстро выкатить Hotfix v0.11, я не стал глубоко переписывать код упаковщика, а применил «полевую хирургию» — просто вручную сократил проблемную строку по длине оригинала. Это сработало, лаги исчезли.

Это уже 0.12
Это уже 0.12

В игре всё ещё остается много мест, где текст обрезается на полуслове. Изначально я планировал отлавливать их и так же сокращать вручную, но вовремя остановился. Анализ показал, что проблема глубже: мой текущий сборщик .msg файлов периодически путает байты и обновляет параметры длины не у тех строк. Заниматься ручной правкой тысяч фраз при сломанном фундаменте — это мартышкин труд.

Поэтому я принял решение: пока обрезки текста я больше не трогаю. Моя главная техническая задача на ближайшие недели — написать абсолютно новую «Умную сборку», которая будет безошибочно находить нужные метаданные в бинарнике и правильно прописывать байты длины для каждой переведенной строки. Как только софт поумнеет, 90% обрезок в игре исчезнут сами собой.

Глава 41: Революция «Штампов» и автоматизация графики

Если с бинарным кодом я решил взять паузу, то в работе с графикой произошёл настоящий прорыв. В Yakuza 5 пять главных героев, и у каждого из них свой набор текстур интерфейса. Самое обидное в том, что текстовые блоки в меню паузы, инвентаре или телефоне у Кирю, Акиямы, Саеджимы, Харуки и Шинады расположены по идентичным координатам, но лежат в разных файлах. Раньше мне приходилось для каждого персонажа заново настраивать пресеты, подбирать размеры шрифтов и выравнивать их попиксельно. Это была монотонная работа, съедавшая кучу времени.

Чтобы не превратиться в робота, я обучил свою «Студию Сайджо» новой функции — системе «Штампов». Теперь процесс локализации интерфейса выглядит как работа профессионального печатника.

Как это работает технически:

  1. Захват (Capture): Я один раз идеально отрисовываю блок меню на текстуре одного героя (например, Кирю). Выделяю всю область и нажимаю «Захватить блок». Программа делает точный «слепок» этого фрагмента со всеми прозрачностями и сохраняет его в буфер обмена.
  2. Вклейка (Paste): Я открываю файл другого персонажа и, не меняя рамку выделения, жму «Вклеить штамп».
  3. Умная подготовка: В интерфейсе появилась критически важная галка — «Стереть перед вклейкой». Если она активна, софт перед наложением штампа сам запускает мой алгоритм Smart Erase. Он вычищает оригинальный английский текст, восстанавливая фон (Inpaint), и только после этого накладывает сверху идеально ровный русский перевод.

Результат — стопроцентная повторяемость. На всех текстурах интерфейс теперь стоит пиксель-в-пиксель на одном и том же месте, с тем же шрифтом и качеством. Именно благодаря этой функции в обновленном билде v0.11 меню паузы и характеристики готовы сразу для всех пяти персонажей.

Это пока без перевода, но я о них знаю.
Это пока без перевода, но я о них знаю.
Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее
Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее
Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее
Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее
Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее
Yakuza 5: Русификатор (Часть 12) — Первая публичная Alpha: о багах, штампах и планах на будущее

Планы на будущее:

Функция штампов — это задел на очень серьезные вещи. Сейчас я тестирую вклейку на простых фонах, но в будущем хочу научить систему правильно обрабатывать картинки со сложным, разноцветным фоном. Это позволит сделать красивые русские подписи прямо внутри картинок способностей и навыков. Там текст наложен поверх детального арта, и просто «закрасить» его нельзя — нужно ювелирно восстанавливать фон. Если удастся это автоматизировать, то русификатор по качеству графики не будет уступать официальным релизам.

Глава 42: Про Бусти, честность и будущее девлогов

Хочу честно прояснить ситуацию со стартом на Boosty. Разрыв между платным доступом к демке и публичным релизом составил всего 2 дня — это слишком мало и не совсем справедливо по отношению к тем, кто поддержал проект первым. Получилось так: люди купили подписку, получили билд 0.1 с багом, возились с хотфиксом, а через 48 часов все остальные получили исправленный билд бесплатно.

Скажу прямо — я просто не ожидал, что подписки полетят в первую же минуту. Для меня Бусти был прежде всего тестом площадки: как грузятся архивы, как работают уровни доступа. В будущем я сделаю разрыв по времени больше (неделя-две), чтобы подписка имела реальный смысл для тестеров. Спасибо всем, кто поверил в проект на самом старте!

Что дальше?

Билд v0.12 Alpha доступен для всех. Помимо Бусти и моего Telegram-канала, я залью его на PlayGround и другие зеркала. Сам я пока не планирую заниматься публикацией в Steam, на ZoG или в ВК — перевод всё еще слишком сырой. Но я не запрещаю: если вы считаете, что в это уже можно играть, и хотите поделиться на других площадках — делитесь. Инструменты со временем тоже станут доступны, скорее всего, пока только акционерам и тем, кто действительно готов улучшать перевод.

И еще один важный момент.

Мне, честно говоря, порядком надоело писать такие огромные девлоги по главам. На их составление уходит уйма времени, которое я мог бы потратить на код или текст. К тому же, лонгриды сейчас мало кто дочитывает до конца. Поэтому я хочу спросить у вас: что вам интересно читать дальше?

В 10-й части я уже набрасывал варианты (технические разборы, короткие заметки, видео-сравнения). Чтобы не повторяться, можете глянуть предложения там и написать в комментариях, какой формат «зайдёт» лучше всего.

Итоги Alpha v0.11:

✅ Текст: Полный перевод основного сюжета, 178 файлов магазинов/ресторанов и профилей персонажей.

✅ Графика: Интерфейс меню паузы и инвентаря готов для всех 5 героев.

✅ Техническая часть: Внедрена система «Штампов» для текстур и «Ёжик» для стабильных субтитров.

✅ Стабильность: Исправлен критический баг с зависанием сохранений.

Где найти проект:

📍 Telegram (Новости и связь):

📍 Feedback-бот (Баги слать сюда): @Cyber_Purgatory_bot

📍 Boosty (Поддержка и ранние билды): https://boosty.to/sungoro

Если вы готовы мириться с «альфой» и обрезками текста — качайте, тестируйте и присылайте скриншоты в бота. Помните, что такие варианты как «Казума», «Занмай» или «Нагойские Виверны» — это осознанный выбор транскрипции (Хепберн), а не ошибки.

Работаем дальше! 🐉🔥

64
31
9
4
2
1
36 комментариев