Перейти к содержимому
Zone of Games Forum

ChrisNWO

Новички
  • Публикации

    4
  • Зарегистрирован

  • Посещение

Все публикации пользователя ChrisNWO

  1. ═══════════════════════════════════════════════════════════════════════ GameResX — распаковка и локализация игровых ресурсов Версия 1.0.0-alpha · Windows · Бесплатно ═══════════════════════════════════════════════════════════════════════ КОРОТКО GameResX открывает архивы игровых ресурсов, извлекает текст, звук и графику, помогает перевести содержимое и собрать патч локализации. Программа задумана для тех, кто делает любительские переводы игр, и берёт на себя работу, которая обычно выполняется десятком разрозненных утилит. Одна программа вместо связки из QuickBMS, шестнадцатеричного редактора, табличного процессора и полудюжины скриптов. ─────────────────────────────────────────────────────────────────────── ЧТО ОНА ДЕЛАЕТ ЛУЧШЕ ПРОЧИХ ─────────────────────────────────────────────────────────────────────── ■ ПРОВЕРЯЕТ ШРИФТЫ ДО НАЧАЛА РАБОТЫ Самая дорогая ошибка в переводе игр — обнаружить после месяца труда, что игра не умеет показывать кириллицу. Программа отвечает на этот вопрос за секунды: Ни один шрифт не пригоден для перевода на Русский. Доработайте шрифты до начала работы: иначе весь переведённый текст игрок увидит пустыми прямоугольниками. Строка-образец показывает наглядно, какие именно символы отсутствуют. Поддерживается тринадцать языков. ■ НЕ ВЫДАЁТ МУСОР ЗА ТЕКСТ Распакованные данные движка состоят из тех же байтов, что и текст, а при чтении как UTF-16 превращаются в связные на вид иероглифы. Другие средства охотно вываливают такое в таблицу перевода. GameResX оценивает осмысленность содержимого: настоящий язык состоит из слов, а мусор слов не образует. Диалоги набирают 71—89 баллов из ста, распакованные данные — 13—44. Отсеянное считается отдельно, и программа честно сообщает, сколько ресурсов отброшено и почему. ■ РАБОТАЕТ С АРХИВАМИ ЛЮБОГО РАЗМЕРА Архив на 25 гигабайт со 126 249 записями разбирается примерно за шесть секунд, и окно остаётся отзывчивым всё это время. Файл отображается в память, а не читается целиком. Разбор, извлечение и загрузка текста идут в отдельных потоках. Список заполняется частями. Ничего не «висит». ■ ОПОЗНАЁТ ФОРМАТ, ДАЖЕ КОГДА НЕ УМЕЕТ ЕГО ОТКРЫТЬ Форматов тысячи, и плагин есть не для каждого. Но «формат не распознан» — худший ответ из возможных. Программа скажет, что это за файл, какому движку принадлежит, в каких играх встречается и чем его открыть. База знает 59 форматов: Unity, Unreal, Ubisoft Anvil и UbiArt, Rockstar RAGE, Bethesda Creation, Valve Source, CRIWARE, Wwise, FMOD, Blizzard MPQ, REDengine, BioWare Aurora, Nintendo SARC, Godot, id Tech, Build и другие. ■ САМА ПРИМЕНЯЕТ СКРИПТЫ СООБЩЕСТВА Когда встроенного плагина нет, программа подбирает подходящий скрипт QuickBMS из поставки и открывает архив им. Пользователю не нужно знать ни про QuickBMS, ни про то, какой из сотен скриптов требуется. При сборке скачивается свыше трёхсот скриптов из собраний сообщества. ■ ЛАБОРАТОРИЯ ФОРМАТОВ Игра, для которой нет ни плагина, ни скрипта, больше не тупик. — Карта содержимого: цветная полоса на весь файл. Синее — служебные структуры, где искать оглавление; красное — сжатые данные, где искать бесполезно. — Автопоиск таблиц записей: находит оглавление архива за секунды вместо часов в шестнадцатеричном редакторе. — Карвинг ресурсов по сигнатурам, даже когда строение не разобрано. — Черновик описания формата: правится в окне, сохраняется в каталог formats — и новый формат поддерживается без единой строки кода. ─────────────────────────────────────────────────────────────────────── ВОЗМОЖНОСТИ ─────────────────────────────────────────────────────────────────────── ФОРМАТЫ СО ВСТРОЕННОЙ ПОДДЕРЖКОЙ Формат Игры Сборка ───────────────────────────────────────────────────────────────── Quake PAK Quake, Half-Life, Hexen II побайтово ZIP / pk3 / pk4 id Tech 3 и 4, Android, LÖVE побайтово Doom WAD Doom, Heretic, Hexen побайтово Build GRP Duke Nukem 3D, Blood побайтово Electronic Arts BIG Command & Conquer, FIFA — Valve VPK Half-Life 2, Portal, Dota 2 — CRI AFS игры Sega и японские консольные — Ren'Py RPA визуальные новеллы — Ubisoft Forge игры на движке Anvil — Форматы с побайтовой сборкой проверены: архив без изменений собирается в точности как исходный. ПЕРЕВОД ТЕКСТА — Таблица «оригинал — перевод — состояние — лимит» с подсветкой. — Контроль длины строк: столбец показывает 98 / 64 — превышение на 34 байта, в игре текст обрежется. — Разметка вида %s, {player}, <b> выводится отдельно: её нельзя терять, иначе игра может отказать. — Проверка качества: потерянная разметка, превышение длины, непереведённые строки. — Память переводов: повторы подставляются автоматически. — Обмен с Poedit, OmegaT, SmartCAT: PO, XLIFF, CSV, TMX. — Отмена и повтор правок, двести шагов. — Кодировки: UTF-8, UTF-16 (оба порядка, с меткой и без), Windows-1251/1250/1252/1254, CP866, KOI8-R, ISO 8859, Shift-JIS. Определяются сами, при сборке возвращаются в исходную. ПЕРЕОЗВУЧКА — Поиск всех звуковых дорожек с разбором параметров. — Сверка замены с оригиналом: иная частота или число каналов означают ускоренный либо немой звук в игре. Программа предупреждает при выборе файла, а не после сборки патча. — Актёрский лист для студии звукозаписи. — Сопоставление записей с дорожками по именам файлов, целым каталогом за раз. ШРИФТЫ И ГРАФИКА — Покрытие языка каждым шрифтом архива, перечень недостающих знаков. — Образец с подсветкой отсутствующих символов. — Таблица текстур с размерами и форматами. ПЕРЕНОС ПЕРЕВОДА МЕЖДУ ИЗДАНИЯМИ Перевод, сделанный для одной платформы, обычно подходит и для другой. Программа сопоставляет ресурсы двух архивов по путям, содержимому, размеру и положению, показывает оба дерева рядом и связи между ними. Сомнительные пары помечены и отбираются отдельно; каждую можно подтвердить, отклонить или связать вручную. План выгружается в CSV для проверки коллегой. ПРОЕКТЫ Дашборд по нескольким проектам сразу: доли готовности по тексту, озвучке и графике, открытые замечания, состав архивов. Файл проекта текстовый и пригоден для совместной работы через Git. СБОРКА ПАТЧА Патч содержит только различия: архив на 240 КБ даёт патч в 326 байт. Контрольные суммы не дадут установить его на другую версию игры. При установке создаются резервные копии. КОМАНДНАЯ СТРОКА И АВТОМАТИЗАЦИЯ Всё, что делает окно, доступно из командной строки. Сборка патча описывается файлом JSON и выполняется одной командой: grx pipeline build.json Значения подставляются в пути шагов, поэтому один сценарий годится для разных игр. Отказ обязательного шага прерывает выполнение — продолжать после неудачи означало бы собрать негодный патч. ═══════════════════════════════════════════════════════════════════════ СВОИ ПЛАГИНЫ: ДОБАВЬТЕ ПОДДЕРЖКУ СВОЕЙ ИГРЫ САМИ ═══════════════════════════════════════════════════════════════════════ Программа задумана расширяемой. Если для вашей игры формата нет — его можно добавить, и чаще всего без программирования. ПУТЬ ПЕРВЫЙ: ОПИСАНИЕ ФОРМАТА В JSON Подходит для большинства игровых контейнеров: заголовок, таблица записей одинаковой длины, сплошной блок данных. Программировать не нужно вовсе. Создайте файл в каталоге formats рядом с программой: { "id": "my_format", "title": "Формат моей игры", "endian": "little", "magic": "MYPK", "header": [ { "name": "table_offset", "type": "u32" }, { "name": "file_count", "type": "u32" } ], "table": { "offset_from": "table_offset", "count_from": "file_count", "entry_size": 64, "fields": [ { "name": "path", "type": "string", "size": 56 }, { "name": "offset", "type": "u32" }, { "name": "size", "type": "u32" } ] } } Всё. Перезапустите программу — формат будет открываться. Доступные типы полей: u8/u16/u32/u64 и знаковые i8…i64, string (строка заданной длины), cstring (до нулевого байта), skip (пропуск служебных байтов). КАК ПОНЯТЬ УСТРОЙСТВО НЕЗНАКОМОГО ФОРМАТА Не обязательно разбираться вручную — для этого есть Лаборатория форматов: grx analyze archive.dat —blocks Программа покажет карту содержимого, найдёт кандидатов в таблицы записей с указанием шага и полей, выловит ресурсы по сигнатурам. Затем составит черновик описания: grx suggest archive.dat > formats/draft.json Черновик — гипотеза, программа честно это помечает. Проверьте, верно ли прочитались записи, поправьте поля — и формат готов. Если есть два похожих файла (до и после изменения в игре), их сравнение покажет назначение полей: grx diff before.dat after.dat ПУТЬ ВТОРОЙ: ПЛАГИН НА C++ Нужен, когда требуется нестандартное сжатие, вычисляемые контрольные суммы, зависимости между записями или сложные правила выравнивания при обратной сборке. Плагин наследует интерфейс IFormatPlugin и реализует четыре метода: info (сведения о себе), detect (опознание формата), open (разбор структуры), extract (извлечение записи). Пятый метод repack нужен, если формат собирается обратно. Полный разбор с примерами — в руководстве разработчика, оно входит в поставку (docs/Руководство_разработчика.docx). ЧЕМ ПОДЕЛИТЬСЯ Разбор формата — труд, который не стоит повторять каждому. Если у вас получилось: — описание в JSON достаточно выложить файлом, оно работает у всех; — плагин на C++ снабдите небольшим архивом для проверки; — укажите, какие игры используют формат и на каких версиях проверено; — назовите лицензию: без неё другие не смогут законно воспользоваться вашей работой. Честное «обратная сборка не проверена» полезнее умолчания: следующий разработчик будет знать, чего ожидать. ─────────────────────────────────────────────────────────────────────── ЧЕСТНО ОБ ОГРАНИЧЕНИЯХ ─────────────────────────────────────────────────────────────────────── ▸ Проприетарные библиотеки сжатия (Oodle) в поставку не входят: лицензия запрещает распространение. Но они уже есть у вас — файл oo2core_*.dll лежит в каталоге установленной игры, и программа находит его сама. ▸ Обратная сборка поддерживается не для всех форматов. Программа честно сообщает, какие открываются только на чтение. ▸ Средств обхода технической защиты нет и не будет. ▸ Часть форматов открывается через скрипты сообщества, а не встроенными плагинами. Программа подбирает их сама, но результат зависит от наличия подходящего скрипта. ─────────────────────────────────────────────────────────────────────── ПРАВОВАЯ СТОРОНА ─────────────────────────────────────────────────────────────────────── Программа предназначена для работы с законно приобретёнными копиями игр. Распространять следует только результат своего труда: перевод, озвучку, перерисованную графику. Игровые данные в патч не входят — права на них принадлежат правообладателю. Файл THIRD-PARTY-NOTICES.txt перечисляет всех авторов, чьи скрипты и утилиты входят в поставку. ─────────────────────────────────────────────────────────────────────── ТЕХНИЧЕСКИЕ СВЕДЕНИЯ ─────────────────────────────────────────────────────────────────────── Язык C++20 Внешние библиотеки нет (кроме Qt для окна) Требования Windows 10 или новее, 64 разряда Программа не использует сторонних библиотек C++: сжатие, разбор JSON, работа с двоичными данными реализованы в самом ядре. Это делает сборку простой и предсказуемой. ─────────────────────────────────────────────────────────────────────── С ЧЕГО НАЧАТЬ ─────────────────────────────────────────────────────────────────────── 1.запустите установщик. 2. Меню «Мастера» → «Открыть игру впервые»: мастер проведёт по проверенному пути и объяснит смысл каждого шага. 3. Проверьте шрифты до начала перевода. Это пять минут, которые уберегают от месяца напрасной работы. Подробности — в руководстве пользователя, оно входит в поставку. ═══════════════════════════════════════════════════════════════════════ ЭТО АЛЬФА-ВЕРСИЯ. ПРОЧТИТЕ, ПОЖАЛУЙСТА ═══════════════════════════════════════════════════════════════════════ Версия альфа. Возможны ошибки, недоработки и неожиданное поведение — это нормально для такой стадии. Работайте с копиями файлов, а не с единственным экземпляром своей работы. Просьба не ругаться в теме. Программа развивается, и спокойное сообщение о неполадке помогает делу куда больше раздражённого. ЕСЛИ АРХИВ НЕ РАСПАКОВЫВАЕТСЯ ИЛИ РАСПАКОВЫВАЕТСЯ С ОШИБКАМИ Пришлите, пожалуйста, две вещи: 1. ЖУРНАЛ РАБОТЫ. Программа ведёт подробную запись каждого запуска. Откройте её клавишами Ctrl+J либо возьмите файл из каталога logs рядом с программой. В журнале записано, какой формат опознан, какие плагины пробовали файл, какие скрипты подбирались и почему отказали — по нему причина обычно видна сразу. 2. ДВА-ТРИ ФАЙЛА-ПРИМЕРА архивов из этой игры. Желательно разных: например, один с текстом, один со звуком, один с графикой. Если файлы велики, довольно первых 50—100 мегабайт каждого — структура формата видна по началу файла. Без примеров разобрать формат невозможно: угадывать устройство архива по описанию — занятие безнадёжное. С файлами же поддержка формата обычно добавляется быстро. Укажите также название игры, её версию и издание — форматы нередко различаются между переизданиями. ═══════════════════════════════════════════════════════════════════════ GameResX 1.0.0-alpha · © 2026 ChrisNwo ═══════════════════════════════════════════════════════════════════════ GameResX_v1.0.0-alpha https://www.virustotal.com/gui/file/20e226eb6577f22bdda12962925bdb81ece72d2868f3078f5f3c094ae6b54ecc?nocache=1 надеюсь на обратную связь Baldman))
  2. Отдел кадров ZoG Forum Team

    друзья я сейчас заканчиваю разработку программы которая выполняет внутри себя всю работу вашего отдела, получу ли после проверки разрешения и помощь в доработке от Администрации сайта? довести продукт до идела можно только командой.для меня важно знать нужна ли такая программа стоит ли в неё вкладывать силы и время краткое описание GameResX — от игрового архива до готового перевода в одном инструменте Существующие инструменты решают лишь часть задачи. Экстракторы архивов (Game Extractor, Dragon UnPACKer) умеют распаковать файлы, но ничего не знают о переводе. Профессиональные платформы локализации (Alchemy CATALYST) умеют управлять переводом, но не открывают игровые архивы и стоят как корпоративная лицензия. Инструменты рантайм-перехвата (XUnity.AutoTranslator) показывают перевод на лету, но не собирают постоянный патч. GameResX объединяет всё три класса возможностей — впервые в одном бесплатном и полностью портативном инструменте. Распаковка и запаковка. Плагинная архитектура с поддержкой множества форматов. Обратная сборка с точным пересчётом смещений: перевод может быть длиннее оригинала, остальные ресурсы остаются побайтово нетронутыми. Встроенная проверка обратимости формата — одна команда, и вы знаете, что патч не сломает игру. Перевод как рабочий процесс. Экспорт строк в PO, CSV и TMX для Poedit, OmegaT и Trados. Память переводов с нечётким поиском — не переводите одну фразу дважды. Глоссарий терминов. Автоматический контроль качества ловит потерянные плейсхолдеры и превышение лимитов длины до того, как игра упадёт у пользователя. Псевдоперевод показывает проблемы вёрстки ещё до найма переводчика. Лаборатория форматов. Игры, для которой нет плагина, больше не тупик. Карта энтропии показывает, где сжатые данные, а где структура. Автопоиск таблиц смещений находит индекс архива за секунды вместо часов в hex-редакторе. Структурный дифф вычисляет назначение полей. А затем программа сама генерирует черновик описания формата — и новая игра поддерживается без единой строки кода на C++. Новый формат добавляется JSON-файлом. Не программист? Опишите структуру архива декларативно и положите файл рядом с программой. Портативная, бесплатная, открытая. Без установки, без прав администратора, без урезанной платной версии. Все данные — рядом с исполняемым файлом. Работает с USB-накопителя. GameResX предоставляет инструментарий для работы с легально приобретёнными копиями игр. Обход технических средств защиты не реализуется. Дизайн пока такой предложения принимаються

×