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

Рекомендованные сообщения

UnityText — работа с текстом бинарных файлов 

wL3OS70.png

Версия: 2.1.6841.19286

Скачать

T7QLOnr.png     zx29Naf.png

О программе

 

Утилита предназначена для редактирования текста в бинарных файлах. В первую очередь это так называемые «MonoBehaviour» файлы игр, разработанных на Unity.

Изначально утилита создавалась для внутреннего использования для помощи в переводе Unity-игр, в виду чего в ней не закладывался большой потенциал, что привело к ряду ограничений и упрощений. Но за 3 года существования она вышла за изначальные рамки, и несмотря на то, что в ней много чего изменилось за это время, мне продолжают регулярно поступать вопросы. Поэтому было принято решение выпустить «мажорное» обновление и создать тему на форуме, в которой описать, что и как работает.

О версии 2

 
  • Полностью переписанный код
  • Добавлены/расширены настройки
  • Редактирования диапазонов символов, реализовано через интерфейс
  • Новый фильтр с новыми опциями
  • Предустановки для настроек и фильтров
  • Экспорт в CSV в новом формате, с расширенными настройками
  • Возможность работы с любыми файлами (не только из Unity, имеющими выравнивание данных в 4 байта и текст в кодировке UTF-8)

О работе

 

Некоторые пользователи UnityText не до конца, а может и совсем, не понимают принцип ее работы. Утилита не работает с каким-то определенным форматом данных, она просто сканирует файл в поисках текста по определенным условиям. Именно это позволяет UnityText работать с любым файлом. Важно понимать, успех результата будет зависеть от корректности настроек утилиты, но даже это не всегда может гарантировать 100% верный результат. Еще более важно, несмотря на то, что утилита изменит весь текст, который она найдет в файле, это может вызвать проблемы в работе игры/программы. Проблема кроется в структуре бинарного файла, а именно в том содержит ли она в себе размеры (общий или отдельных блоков), ссылки на данные (смещения). Однако все выше написанное относится к тем, кто соберется использовать UnityText для не Unity-игр.

О диапазонах символов

 

Именно диапазоны символов отвечают, в первую очередь, за то, будет ли принята найденная строка утилитой. Раньше они задавались исключительно через cfg файл, что для кого-то было затруднительно.

Важно, при первом запуске не забудьте отредактировать настройки диапазона по умолчанию.

Предваряя вопрос «Почему не использовать все символы?», отвечу, что это сделано чтобы избежать лишних «срабатываний». Даже если отсеять все непечатные символы (из групп control, format, surrogate), то останется тысячи, которые могут помешать корректному определению «правильной» строки. К тому же, таким образом вы всегда можете отсеять ненужные языки (например, использующие иероглифы).

Для задания диапазонов символов нужно нажать кнопку «C» на панели кнопок. Все доступные (описанные в файле ucd.xml) символы Unicode собраны в «Наборах символов/Character Set», они разбиты на блоки. Для удобства символы разных категорий (типов) окрашены в разные цвета. По умолчанию это зеленый для букв, оранжевый для цифр, фиолетовый для знаков пунктуации, синий для специальных знаков (математических, технических, денежных и т.п.), красный для разделителей и серый для остальных. Цвета можно изменить, см. раздел «О другом». Добавлять/удалять символы из диапазона можно с помощью мышки (по одному, диапазоном, строками или целыми блоками) или из панели «Выбрать диапазон/Select Range». На панели необходимо задать начальный символ диапазона или его код Unicode (десятичный или шестнадцатеричный) и конечный символ, затем нажать кнопку «+» или «-». Помимо этого, можно выбрать сразу все буквы алфавитов (прописанных в cfg). Для этого нужно нажать кнопку «С», выбрать алфавит из списка, а затем нажать кнопку «+» или «-».

Панель «Обновление данных/Update Data» позволяет обновить информацию о символах с сайта unicode.org и алфавитах с сайта unicode-table.com. Вы можете выбрать какая информация будет обновлена: о блоках Unicode (флажок «Данные блоков/Block Data»), о символах (флажок «Данные символов/Char Data»), о категориях/группах символов (флажок «Категории/Categories»), о алфавитах (флажок «Алфавиты/Alphabets»). Флажок «Блок управляющих символов/С0 Control Block» добавляет отдельный блок управляющих символов (U+00 — U+1F), который в Unicode включен в блок «Basic Latin».

Также вы можете изменить шрифт отображения символов, это полезно если шрифт по умолчанию не содержит необходимых вам символов. Вы можете выбрать один из установленных в системе шрифтов из списка Fonts или загрузить свой нажав кнопку «…».

Диапазоны символов можно сохранить в предустановках (Presets) вместе с настройками.

В версии 2.1 появилась несколько новых возможностей. Во-первых, возможность скрывать блоки в которых ничего не выбрано (кнопка «☑»). Во-вторых,  возможность выделять в блоке только буквы (кнопка «Б/L») или только печатные символы (кнопка «П/P»). Данные фильтры применяются только при выделении целого блока, т.е. при клике по флажкам. В-третьих, добавлен пошаговый поиск в по названиям блоков, просто начните набирать с клавиатуры названия блока, при этом фокус должен быть на «Наборах символов/Character Set». Ну и последняя добавленная функция — это «Пошаговое сканирование/Step-by-step Scan» (кнопка «С/S»). При данном сканировании учитываются все печатные символы (с 10%-ным допуском непечатных) и, если символы не выбраны в «Наборах символов/Character Set», будет предложено их добавить в диапазон.

Также в версии 2.1 появилась настройка «Печатные символы вместо диапазонов/Printable Instead of Ranges», которая позволяет отказаться от настройки «Диапазонов символов/Character Ranges». Это не панацея, так как может привести к ошибочным результатам, но иногда может пригодиться.

О настройках

Скрытый текст

Для отображения дерева настроек нужно нажать кнопку «O» на панели кнопок. Все настройки для удобства разбиты на группы. Помимо их значений, можно указать будет ли сохраняться настройка в предустановках. Через контекстное меню можно установить значения всех настроек по умолчанию, а также пометить их все для сохранения.

  • Настройки поиска (Search Options)
    Лучше не завышать эти настройки, чтобы потом не выяснять почему утилита «зависла», выставляйте их с умом и в меру потребностей.
    • Глубина поиска (Search Depth)
      Указывает количество обрабатываемых подкаталогов при поиске файлов для сканирования, т.е. на сколько уровней «вглубь» опустится поиск
    • Максимальный размер файла (Max File Size)
      Файлы, размер (в байтах) которых превышает данное значение не будут обрабатываться утилитой, однако они появятся в списке результатов с пометкой «#FileSizeLimit#». Опция добавлена, чтобы большие файлы не тормозили общий процесс, вы всегда (если это требуется) можете просканировать их отдельно.
  • Настройки сканирования (Scan Options)
    • Big Endian
      Устанавливает порядок байтов от младшего к старшему, стоит обратить внимание при сканировании консольных ресурсов.
    • Длина подстроки (Substring Length)
      В UnityText предполагаемая строка текста проходит проверку не полностью (символ за символом), а по определенному алгоритму. Строка разбивается на подстроки указанной длины, и каждая подстрока проверяется все менее тщательно. Т.е. у первой подстроки проверяется каждый символ, у второй — каждый второй, у третьей — каждый третий и т.д. до достижения значения «Частоты», заданное опцией, описанной ниже.
    • Частота (Frequency)
      Значение частоты проверки подстрок алгоритма, описанного выше, после которого частота перестает изменяться. Т.е. при значении равном 4 для третей подстроки будет проверяться каждый третий символ, для четвертой — каждый четвертый, для пятой — также каждый четвертый, как и для всех последующих подстрок.
    • Минимальная размер строки (Min String Size)
      Строки, размер (в байтах, не путать с длинной в символах) которых меньше данного, не будет учитываться утилитой. Важно отметить, что строка не просто будет пропущена, а утилита будет дальше обрабатывать ее данные как бинарные. Также стоит быть аккуратным, указывая значение равное 1, т.к. это может привести к ошибочным результатам сканирования.
    • Максимальный размер строки (Max String Size)
      Значение размера (в байтах, не путать с длинной в символах), указывающее максимально допустимый размер строки, все превышающие, как и в случае с «Минимальной длиной», не будут учитываться. За все время мне попался только один файл, который содержал в себе «выдающуюся» строку, содержавший какой-то JSON-текст, ее размер был равен почти 450 000 байт. Но это скорее исключение, поэтому рекомендуется выставлять небольшие значения, это может значительно ускорить сканирование.
    • Печатные символы вместо диапазонов (Printable Instead of Ranges)
      Данная настройка упраздняет «Диапазоны символов». При ее включении строка может содержать в себе любые печатные символы. Стоит отметить, что это может привести к некорректным результатам.
    • Пропускать без букв (Skip Without Letter)
      Строка с длиной не превышающей длину подстроки (Substring Length), и которая не содержит букв, не будет учитываться при сканировании.
    • Упрощенная проверка (Simple Check)
      Будет проверено только начало строки (первая подстрока)
    • Динамический фильтр (Runtime Filter)
      Фильтр будет применен во время сканирования, таким образом, отфильтрованные строки не попадут в итоговые результаты.
  • Настройки экспорта в Csv (Csv Export Options)
    • Внешние бинарные данные (External Bin Data)
      Новый формат хранения данных, бинарная часть из csv файла помещается в отдельный файл, что делает csv «чище» и значительно уменьшает его размер
    • Esс-последовательности (Esc-Sequences)
      Происходит замена некоторых символов на escape-последовательностями (сочетание косой черты и символа) при экспорте, обратная замена при импорте csv
      \n  — новая строка
      \r  — возврат каретки
      \t  — горизонтальная табуляция
      \\  — обратная косая черта
    • Столбец с индексом (Index Column)
      Добавляет в файл csv столбец с порядковым номером строки, может быть полезен для возвращения исходной сортировки, которая важно при импорте csv
    • В несколько столбцов (Multicolumn Mode)
      Строки между которыми нет данных, экспортируются в несколько столбцов. Это полезно для файлов, которые содержат в себе несколько локализаций. Однако при этом не учитываются пустые строки.
      • Предполагать наличие длины (Assume Array Length)
        Опция, расширяющая работу предыдущей. При ее включении утилита анализирует данные, предполагая, что перед строками указывается их количество, отдельно для каждого массива (группы) строк. Данная опция учитывает пустые строки.
    • Максимальная длина строки в ячейке (Max String Length in Cell)
      Текст, длина которого превышает указанное значение, разбивается на подстроки, которые размещаются в отдельных ячейках. Опция, в первую очередь, призвана избавить от ограничения на длину текста в ячейках электронных таблиц
      • Разбивать по разделителям (Split by whitespace)
        Опция, расширяющая работу предыдущей. Текст, по возможности, разбивается по переносам строки, табуляции, разделителям и знаком пунктуации.

О фильтрах

Скрытый текст

Для включения фильтра нужно нажать кнопку «Ф/F» на панели кнопок. Важно понимать, что фильтр применяется только когда кнопка нажата, т.е. когда панель «Фильтр» («Filter») видна. В новой версии UnityText фильтры не применяются во время сканирования, они применяются к уже найденному тексту, что позволяет менять их без повторного сканирования данных. Также добавилась возможность временно отключить тот или иной шаблон фильтра, сняв флажок возле него. Все отфильтрованные строки вычеркиваются из списка результатов (отображаются зачеркнутым шрифтом).

Все основные команды фильтра доступны через контекстное меню. Через него можно добавить, отредактировать или удалить паттерн, а также полностью очистить фильтр. Кроме того, там же доступен пункт для обновления фильтра. По умолчанию обновление происходит при смене фокуса с панели фильтра. Новый паттерн фильтра можно добавить также, как и в старой версии, отредактировав «New Pattern», однако для того чтобы ввести многострочный текст придется воспользоваться контекстным меню. При редактировании фильтра через контекстное меню отобразится многострочное поле для ввода текста. Подтвердить или отменить действие можно с помощью кнопок или клавиатуры, соответственно Ctrl+Enter и Esс.

Список доступных настроек для фильтра расширился. Теперь в него входят следующие настройки:

  • Учитывать регистр (Case Sensitive)
  • Строка целиком (Whole String Only)

  • Использовать регулярные выражения (UseRegularExpressions)
    Подробнее о том какие регулярные выражения используются можно узнать здесь

  • Соседние строки (NeigborString)
    Если указанный шаблон фильтра соответствует строке и значение этой настройки не равно 0, то фильтруется строка, положение которой отличается на значение указанное в опции

    • Включая строку шаблона (IncludePatternItem)
      Будет отфильтрована и сама строка, которая соответствует шаблону 
    • Включая промежуточные строки (IncludeIn-BetweenItems)
      Все строки между текущей (удовлетворяющей шаблону) и соседней ей (отстоящую на указанную позицию) будут отфильтрованы

  • Маска файла (File Mask)
    Фильтр будет применяться только к файлам, имена которых удовлетворяют фильтру. Фильтр применяется только к именам файлов, не к именам каталогов

Для фильтров предусмотрено сохранение в предустановках подобно диапазонам символов.

Помимо основного фильтра в новой версии появилась возможность ручной фильтрации, имеющей приоритет над основной. Указать значение ручного (применять или нет) фильтра или сбросить его можно через контекстное меню на нужной строке.

Об обновлениях

 

В программе предусмотрена автоматическая проверка обновлений, но для ее работы нужно наличие SSL библиотек (libeay32.dll и ssleay32.dll). Они уже могут быть установлены (зарегистрированы) в вашей системе, например, другими программами. Узнать об этом можно просто открыв окно «About» (кнопа «?»). Если в открывшемся окне, есть флажок «Check for Update» значит библиотеки найдены. В случае их отсутствия и желания использовать функции обновления, вы можете скачать библиотеки самостоятельно, например, отсюда или из другого источника. Нужна версия для Win32. Если вы скачивали библиотеки отдельными файлами, то дальше вы можете их зарегистрировать в системе (для последующего использования другими утилитами) или просто скопировать в папку с UnityText.

Помимо проверки обновления, в UnityText есть возможность обновления данных по символам Unicode (с официального сайта), а также информации об алфавитах (с ресурса unicode-table.com). В отличии от первого, второму также нужно наличие SSL библиотек.

О прочем

 
  • Как работать с другими (не «Unity») файлами?
    Как я писал возможность такая в новой версии предусмотрена, но так как она не тестировалась, я ее решил скрыть. Если кому-то в ней заинтересован, то напишите мне в ЛС.
    Начиная с версии 2.1 «Расширенные настройки/Expert mode» доступны всем. Экспериментируйте на здоровье =)
  • Где русский?
    Это, как мне кажется, самый странный вопрос, который мне приходится слышать… от переводчиков =) Доступен начиная с версии 2.1. Скачать можно здесь.
  • А вы знали, что?..
    • В поле ввода пути можно использовать Enter для подтверждения
    • Там же можно указывать расширенные маски файлов с использованием символов подстановки
    • Там же можно указывать через «;» несколько масок файлов
    • В результатах сканирования можно сворачивать узлы файлов (двойной клик или стрелка влево на имени файла)
    • В предустановках всегда есть возможность загрузить последнюю не сохраненную, очистив поле ввода и нажав Enter
    • Там же, при заполненном поле, нажатие Enter позволит сохранить/загрузить предустановку
    • С помощью файла cfg, вы можете менять внешний вид программы, например, можно изменить размер/цвет шрифта/компонента
    • Для изменения максимального количества хранимых предустановок для путей, необходимо в файле cfg отредактировать значение атрибута «Tag» для узла «Components\btnPresetPathAdd»
    • Для изменения цвета категории символа необходимо в файле cfg добавить или отредактировать атрибут «Color» для узла «UCD\Category» (работает и для дочерних узлов), значение цвета задается в шестнадцатеричном формате BGR
    • Для обновления данных алфавитов можно указать язык (поддерживаемый unicode-table.com), для этого в файле cfg нужно добавить атрибут «Locale» для узла «UCD\Alphabets» со значением кода ISO 639-1 (двухбуквенное обозначение)
    • Для увеличения размера списка последних путей, необходимо в файле cfg отредактировать значение атрибута «Tag» для узла «Components\cbbPath»
    • Можно обмениваться предустановками через буфер обмена с помощью комбинации клавиш Ctrl+Shift+C/Ctrl+Shift+V, находясь внутри поля предустановок. При экспорте в буфер помещается xml, который можно передать другому пользователю.
  • Что еще может быть полезным для локализации игр на Unity?

История версий

Скрытый текст

 

Изменено пользователем StiGMaT
новая версия, редактирование информации
  • Спасибо (+1) 1
  • +1 2

Поделиться сообщением


Ссылка на сообщение

Заранее извиняюсь если есть косяки в тексте или форматировании, редактор на новой версии форума “тихий ужас” =(

А также большая просьба к тем кто владеет грамотным английским, буду благодарен за перевод (можно без воды, как у меня) текста.

Поделиться сообщением


Ссылка на сообщение

@StiGMaT 

Оно работало! Теперь я могу перевести китайские только игры.
Большое спасибо! Ваш инструмент является блестящим!

 

It worked! Now I can translate Chinese only games.
Thank you very much! Your tool is brilliant!

Поделиться сообщением


Ссылка на сообщение

В общем результат поиска не пустой выглядит он вот так (приложу скриншот) ну как то не понятно видимо я ожидал увидеть нечто другое выходит что UnityText все подряд находит и нужное и не нужное. Опять же не понял не наблюдаю не квестов не интерфейсы, различные описания (скилы, параметры и тд.) возможно что то не так делаю!

В папке Rus лежат не распакованные ассеты и распакованные!

Screenshot_15.png

Изменено пользователем Ultraz46

Поделиться сообщением


Ссылка на сообщение

@Ultraz46, все верно, утилита вытаскивает весь текст, который соответствует заданным параметрам. “Скармливать” ей лучше только MonoBehaviour файлы, т.е. те что были получены из UnityEX с параметром -t 114. Что касается “не наблюдаю”… Ну во-первых, есть вероятность, что настройки утилиты не оптимальны и она не весь текст нашла. Во-вторых, как я и писал в созданной тобой теме, что-то из GUI может быть нарисовано на текстурах. Ну и третье, опять таки писал в твоей теме, часть текста может находится в Assembly-CSharp.dll

Такс… глянул тут твой скриншот с приближением =) Давай по порядку. Удали (или перемести) папку Unity_Assets_Files (если она у тебя сейчас есть). Распакуй заново файлы с помощью UnityEX, используя параметр -t 114. После этого в в UnityText измени Search Depth на 2 и укажи путь к папку Unity_Assets_Files с только что распакованными файлами.

А и еще увеличь Max File Size на всякий случай, скажем до 5120000 =)

Изменено пользователем StiGMaT
-t 114

Поделиться сообщением


Ссылка на сообщение
1 час назад, StiGMaT сказал:

Такс… глянул тут твой скриншот с приближением =) Давай по порядку. Удали (или перемести) папку Unity_Assets_Files (если она у тебя сейчас есть). Распакуй заново файлы с помощью UnityEX, используя параметр -t 144. После этого в в UnityText измени Search Depth на 2 и укажи путь к папку Unity_Assets_Files с только что распакованными файлами.

А и еще увеличь Max File Size на всякий случай, скажем до 5120000 =)

Сделаю все как ты описал если что отпишусь о результатах моих поисков ближе к вечеру)

Поделиться сообщением


Ссылка на сообщение

@Ultraz46, ОК. Результаты точно должны быть отличными от того что был ранее. Судя по скриншоту, ты сканировал корень папки Rus в которой лежали только “ассеты”, которые утилита вообще не должна обрабатывать.

Поделиться сообщением


Ссылка на сообщение

Распаковал ассеты заново с вышеописанными настройками с батника с параметром:

for %%F in ("level*." "*.assets" "*.unity3d") do "UnityEX.exe" export "%%F" -t 114

Получилась папка 605 кб. на этот раз результат получше, кое что нашлось но мало (Модельки двери, окна, стекла, автомобили и тд. ну они не нужны. Шрифты разные. NPC, названия локаций, названия зданий. И самое полезное что нашлось это немного предметов для перевода) много чего отсутствует! Очень тяжело понять что есть что в этой куче а еще много чего дублирующегося.

Еще нашел строки связанные с локализацией видимо планируется в будущем но Русского там нет.

Screenshot_17.png

Изменено пользователем Ultraz46

Поделиться сообщением


Ссылка на сообщение

@Ultraz46, в этом и заключается “прелесть” перевода игр на Unity, о которой я писал в твоей теме =) 605 Кб файлов, как то совсем не густо, если честно. Если хочешь, можешь скинуть мне архивом эти файлы, я посмотрю их у себя. Но похоже что нужно искать текст в других “местах”. В “ассетах” то точно нет ничего с текстом?

Поделиться сообщением


Ссылка на сообщение

@dawningteamvn, ты уверен, что данные символы (,?!) включены в набор (char range)?

Скрытый текст

tDvC42A.png

Надеюсь на днях выпущу большое обновление, в котором будет возможность поиска “недостающих” символов в наборах. А также альтернатива наборам в виде опции (печатные символы вместо наборов).

Скрытый текст

AzEzqHI.png

 

Поделиться сообщением


Ссылка на сообщение

@dawningteamvn, я надеюсь ты понимаешь, что ты и без новой версии можешь добавить недостающие символы в наборы… Да? =)

Изменено пользователем StiGMaT

Поделиться сообщением


Ссылка на сообщение

Обновление задержавшееся больше чем на полгода:

Скрытый текст

  + Добавлено приветствие
  + Добавлен список последних файлов
  + Добавлен прогресс в панели управления для Windows 7 и новее
  + Добавлен поиск в фильтре
  + Добавлен диалог при очистке фильтра
  + Добавлен переход на сработавший фильтр
  + Добавлена новая функция “Пошаговый поиск” для нахождения недостающих символов в диапазонах
  + Добавлен фильтр “Наборов символов” (для отображения и выбора)
  + Добавлен пошаговый поиск для “Наборов символов”
  + Добавлены новые 'Настройки сканирования': 'Пропускать без букв', 'Печатные символы вместо диапазонов', 'Динамический фильтр'
  + Добавлены новые 'Настройки экспорта Csv': 'Esc-последовательности'
  + Добавлены новые 'Настройки CSV'
  + Добавлены новые 'Расширенные настройки': 'Длина в символах'
  + Добавлено сохранение последних настроек
  + Добавлен импорт/экспорт предустановок через буфер обмена (Ctrl+C/Ctrl+V в выпадающих списках 'предустановок')
  * Исправлена постоянно включенная опция 'Предполагать наличие длины'
  * Исправлена опция 'Строка целиком' в фильтрах для регулярных выражений
  * Исправлена работа с символами с кодом выше 0xFFFF
  * Исправлена полная блокировка основного окна при работе
  * Исправлен экспорт в CSV с опцией 'В несколько столбцов'
  * Исправлен повторный экспорт из CSV
  * Исправлена работа с предустановками
  ! Изменена опция 'Мин. длина строки' на 'Мин. размер строки'
  ! Изменены значения по умолчанию: 'Глубина поиска' (1), 'Макс. размер файла' (5120000)
  * И много других изменений

Также добавлена возможность русификации утилиты.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: DragonZH
      Программа для работы с архивами Unity.
      Скачать UnityEX yandex
      Скачать UnityEX dropbox
      Сборник bat файлов для консольного режима
      UnityEX_Soft для дополнительной конвертации файлов и получения текстовых дампов xml, папка подключается из настроек UnityEX
      Несколько шаблонов xml для проектов на cpp2il
      Покупка ключа платных версий UnityEX:
       

      В комментариях, пожалуйста, укажите “За UnityEX” или на почту dragonzh@yandex.ru.
      Платная версии UnityEX
      Ultimate версия, поддержка юнити до 2020-2021 и возможно выше, обработка звуков, видео, спрайтов, обработка текстовых дампов.
      Оплата происходит на реквизиты в программе. Нужно связаться со мной @DragonZH, по оплате вышлю ключ.
      Передача ключа другим людям не допускается, иначе ключ будет заблокирован!
      Также возможна блокировка ключа при использовании VPN или прокси!
    • Автор: SerGEAnt

      Специалисты считают, что виной всему перенасыщение рынка, начавшееся в период пандемии. Увольнения продолжатся в течение всего 2024 года.
      Сайт Video Games Layoffs подсчитал, что за январь в компаниях, связанных с игровой индустрией, было уволено уже 5700 человек. Это больше половины от числа уволенных в 2023 году (10,5 тысяч).

      Лидеры по числу сокращений:
      Microsoft — 1900 человек Unity — 1800 человек Riot Games — 530 человек Twitch — 500 человек PlayTika — 350 человек Специалисты считают, что виной всему перенасыщение рынка, начавшееся в период пандемии. Увольнения продолжатся в течение всего 2024 года.


Zone of Games © 2003–2024 | Реклама на сайте.

×