Yakuza 5 Alpha (v0.12): Харука-гопник и восстание «Такши». Разбор первой волны баг-репортов
Привет, DTF! Прошло две недели с выхода Alpha-версии (v0.12) перевода Yakuza 5. Отчётов и скриншотов накидали прилично — фронт работ наметился чёткий. Тестеры молодцы: накопали кучу моментов, которые я один бы просто проглядел.
Сегодня я хочу показать вам, над чем сейчас идёт работа. Этот пост будет полезен и самим тестерам: если вы увидите свою ошибку здесь — значит, я её уже зафиксировал, она в базе, и присылать её больше не нужно.
Восстание «Такши» и «Отнеши»
Самая большая подлянка пришла откуда не ждали — от авто-исправлений. Чтобы привести имена к единому стандарту (Хепберн), я бахнул правило: «все слоги СИ на конце слов менять на ШИ».
Логика была простая: Осима ➡ Ошима. Но я не учёл, что в русском языке полно глаголов на «-си». В итоге мой же софт устроил восстание против здравого смысла.
- Глагол «Отнеси» превратился в шепелявое «Отнеши».
- Глагол «Принеси» стал «Принеши».
- А обычное «Такси» стало «Такши».
Сейчас я вычищаю эти ошмётки автоматизации из словаря и заменяю их на точечные правила для имён, чтобы персонажи больше не шепелявили.
Харука «поясняет» за копов и гендерный кризис мужиков
Ещё одна пачка багов прилетела из-за того, что нейросеть переводила голый текст, не видя того, что происходит на экране. Чтобы диалоги не звучали сухо, я попросил ИИ использовать более «живую» речь. Но без контекста это превратилось в лотерею.
В сцене, где полиция забирает вещи, Харука внезапно выдаёт: «В кабинете Пак-сан, если копы уже вернули вещи». Харука — вежливая девочка-айдол, и слово «копы» в её устах звучит максимально дико. Там, где в оригинале был акцент на официальных действиях полиции, нейронка решила «добавить стиля». Теперь вылавливаю такие моменты и возвращаю персонажам их характеры.
Туда же пошли и массовые ошибки родов. Японский язык коварен: суффикс «-тян» (или «-чан») для нейросети — это автоматический сигнал, что перед ней девушка. В итоге суровые мужики в игре начали массово менять пол:
Исправляю это теперь через глобальные правила в своём Хабе: прописал один раз в базе «Ошима — это мужик», и софт сам лечит все связанные с ним строки.
Ловушка контекста: «Знаменитая баня»
Это мой любимый баг из разряда «трудности перевода». В Нагое есть киоск с едой, который в английской версии называется Banya. По-японски это слово означает «лавка» или «рыбацкая сторожка». Но нейросеть (да и человек без картинки перед глазами) видит слово Banya и сразу представляет парную и веники.
В итоге на релизе игроки увидели палатку с жареными крылышками и гордую надпись: «Знаменитая баня Нагои». Теперь эта «баня» официально закрыта и переименована обратно в лавку.
Технический цех: Сражение с движком
Самая сложная часть — это даже не перевод, а стабильность. Тестеры находят «больные» места, где игра просто отказывается работать с русским текстом.
- Вылеты: Сейчас в работе критические баги с крашами на рыбалке, в гонках на такси и в некоторых сюжетных катсценах. Движок Dragon Engine — это «финальный босс», который очень капризен к любым изменениям в файлах.
- Байтовая математика: Я наконец-то научил свой инструментарий считать длину строк в байтах UTF-8. Это должно избавить нас от «обрубков» текста в диалогах и меню, которые преследовали перевод с самого начала.
Галерея Alpha-хаоса (Скрины от тестеров)
Ниже я просто вываливаю пачку скриншотов с самыми разными косяками, которые прислали ребята за эти две недели. Здесь всё: ошибки логики, кривой стиль, технический мусор, поплывшая верстка и просто забавные ляпы (что-то уже исправлено, а что-то нет).
Всё это — мой текущий «список дел». Я сохраняю это здесь в том числе и для себя, чтобы видеть прогресс и ничего не упустить при зачистке мастер-словаря.
Wall of Honor (Команда зачистки)
Этот проект движется только благодаря людям, которые тратят свое время на поиск этих косяков. Огромное спасибо за подробные отчеты и терпение:
Алексей Шиляев, Roman First, Boris Stepnov, Алексей Гапон, Максим Тароев, Кирилл Кегноев, Элвин Исрафилов, Igor Chapov, Ivan, Петренко, MinstCat Redgrave, Rose Quartz, Star Knight, Vinsm0ke1, Dmitry, Ортём, Ilag, bebros, jenkinz, Мурат.
Что дальше?
Я продолжаю «причесывать» базу и готовлю большой билд v0.3 Alpha. В нём многие из этих «приколов» будут исправлены окончательно.
Инструментарий: Yakuza Hub V2.0
Я полностью переписал свой софт. Из пачки скриптов он превратился в полноценную «станцию локализации», которой я очень доволен.
Что теперь умеет мой Хаб:
- Динамическая архитектура: Программа стала полностью портативной. Все пути к словарям, бэкапам и игре настраиваются в пару кликов через Dashboard.
- Delta-режим: Это киллер-фича. Теперь мне не нужно гонять файлы по 50 Мб. Хаб умеет экспортировать только те строки, которые изменились за день.
- Контроль безопасности: В «Навигатор» встроена проверка опасных технических строк (чтобы случайно не перевести код движка) и валидатор переменных. Теперь, если в переводе нарушен порядок %d или %s, софт ударит меня по рукам и не даст сломать игру.
Важное про доступ:
Я выпустил этот инструментарий для своих акционеров на Boosty. Открывать его для всех в паблик я пока не планирую — передаю «из рук в руки» тем, кто реально помогает проекту. Это вопрос безопасности и уважения к труду: я хочу, чтобы инструменты помогали развивать именно этот перевод, а не плодили кривые копии по всему интернету. Подробнее об этом я писал у себя в Telegram.
Что в планах:
Сейчас я обдумываю создание отдельного «Плагина-архивариуса». Его суть — вести базу данных всех попыток чтения одной и той же строки. Парсеры часто ошибаются, выдавая мусор, и мне нужен инструмент, который будет помнить: «вот этот вариант перевода — эталонный, а остальные пять — технический шум». Это позволит довести чистоту текста до идеала.