A file format uncracked for 20 years 🔥 Горячее
Автор, энтузиаст исследования игровых файлов, взялся за анализ Splinter Cell (2002) в поисках вырезанного контента, столкнувшись с загадочным форматом .lin, остававшимся нерасшифрованным 20 лет. Игра, разработанная Ubisoft на Unreal Engine 2, имеет файловую структуру с разделенными картами, где каждый уровень состоит из нескольких .lin-файлов. Автор предположил, что common.lin содержит общие данные для оптимизации размера, подобно shared.map в Halo.
Анализ hex-редактором показал, что файлы содержат zlib-сжатые блоки с форматом {размер_распакованных_данных, размер_сжатых_данных, zlib_блок}. Инструмент для распаковки успешно извлек 64КБ данные, включающие четыре 32-битных целых числа, вероятно, связанные с размерами кэша текстур и буферов вершин. Основная секция содержит ссылки на игровые ресурсы, такие как \menu\menu.unr и \1_1_0Tbilisi.unr, что указывает на структуру, аналогичную Unreal Engine.
Комментарии (54)
- Обсуждение охватывает широкий спектр тем: от форматов файлов и их обратной разработки до влияния на разработку игр и оптимизации.
- Участники обсуждают, как разработчики игр используют формат .lin для оптимизации загрузки уровней, и как это влияет на разработку игр.
- Также обсуждается, какие инструменты и подходы используются для обратной разработки форматов файлов.
- Участники делятся опытом и советами о том, как начать изучать неизвестные бинарные форматы.
- Обсуждаются также влияние этих практик на разработку игр и на то, как разработчики игр должны балансировать между оптимизацией и читаемостью кода.
My Deus Ex lipsyncing fix mod
Разработчик обнаружил, что в оригинальной Deus Ex синхронизация губ и моргание персонажей сломаны с момента релиза — анимация резко переключалась между формами рта без плавных переходов. В интервью с одним из программистов игры выяснилось, что изначально система была сложной, но её упростили из-за проблем с производительностью.
Путём анализа Unrealscript кода нашлась ошибка в проверке частоты кадров: условие для включения плавной анимации было инвертировано, а время смены виземов (0.1 секунды) оказалось слишком коротким. Исправление этих двух параметров (увеличение времени blend до 0.35 секунд и фикс условия FPS) полностью восстановило плавную липсинку, хотя система всё ещё работает в реальном времени без предрасчёта фонем, как в Half-Life 2.
Комментарии (143)
- Обсуждается анонсированный ремастер Deus Ex от Aspyr, который фанаты критикуют как низкокачественный и уступающий существующим модам (например, Revision или GMDX).
- Участники высоко оценивают оригинальную игру за сюжет, нелинейный геймплей, множество способов прохождения и саундтрек, называя её одной из величайших.
- Моды сообщества, такие как редаббинг для смены пола протагониста или исправление багов, признаются проделавшими огромную работу по улучшению и сохранению игры.
- Отмечаются технические недостатки оригинала, такие как неработающая система коллизий для хедшотов, странная анимация губ и своеобразная актёрская озвучка, ставшие частью её charm.
- Вспоминаются культовые моменты и фанатские творчества, включая пародийные видео про анимацию и известные фразы вроде "I didn't ask for this!".
Speeding up Unreal Editor launch by not spawning unused tooltips
Как ускорить запуск Unreal Editor: не создавать 38 000 тултипов
Unreal Editor запускается долго. Epic борется с этим кэшами, live-coding и прочими оптимизациями, но одна простая проблема оставалась незамеченной: на старте движок генерирует 38 000 виджетов-тултипов, хотя за сессию пользователь видит лишь десяток.
Профилирование показало, что SetToolTipText тратит ~0,2 мс на каждый тултип, но главное — он не просто сохраняет текст, а сразу создаёт полноценный виджет. В итоге:
- 2–5 с потеряно в дебаг-сборке
- до 1 с в development
- ~40 МБ ОЗУ занято невидимыми виджетами
Решение
- Заменить немедленное создание виджета на ленивое: сохранять только
FText. - Создавать виджет в момент первого обращения (
GetToolTip).
Патч — пара строк: убрать Spawn из сеттера, перенести его в геттер.
Результат: стартовое время падает на ~1 с, ОЗУ экономит десятки мегабайт, а в рантайме задержки не заметны — тултипы всё равно редко вызываются пачками.
Комментарии (79)
- UE создаёт 38 000 тултипов при старте редактора, что занимает до 2–5 с в дебаг-сборке и почти 1 с в дев-сборке.
- Каждый «тултип» — полноценный UI-виджет с саб-объектами, а не просто строка текста.
- Проблема решается ленивым или единичным созданием экземпляров, как в IMGUI/Unity/React-порталах.
- Участники жалуются на медленную итерацию UE: 10 мин компиляция пустого проекта, бесполезный блюпринт-бол, жадность до железа.
- Альтернативы: Godot (GDScript, быстрая итерация), Unigine, форк Hazelight с AngelScript.
ARM adds neural accelerators to GPUs
- Arm Neural Technology — первое в мире решение, встраивающее нейро-акселераторы в мобильные GPU Arm. С 2026 г. оно сокращает нагрузку на GPU до 50 % и открывает путь к ПК-качеству графики на смартфонах.
- Neural Super Sampling (NSS) — стартовая функция: апскейл 540p → 1080p за 4 мс на кадр.
- Открытый набор разработчика уже доступен: плагин Unreal Engine, эмулятор Vulkan, профайлеры, модели на GitHub и Hugging Face. Поддержка от Epic, Tencent, NetEase и др.
- Расширения Vulkan добавляют «Graph Pipeline» для вывода нейросетей прямо в рендер-процесс.
Комментарии (38)
- Участники обсуждают, как ИИ-апскейлинг (типа DLSS/FSR) позволит инди-студиям делать игры «АА-качества» из минимальной графики, высвобождая ресурсы для гейм-дизайна.
- ARM анонсировала «первую в отрасли» встроенную нейро-ускоряющую часть в GPU, но многие указывают, что NPU в SoC уже есть с 2017 г. (Kirin 970) и новизна, вероятно, в интеграции именно в GPU, а не рядом.
- Поддержка Vulkan-расширений вместо проприетарных API считается плюсом, но вызывает опасения «extension spaghetti».
- Скепсис вызывают сроки (IP анонсирована за два года до чипов) и маркетинговые формулировки «Arm как компания» vs «ARM как архитектура».
- Участники перечисляют три пути ускорения ИИ: GPU compute, tensor-cores, NPU; последние пока используются мало, кроме как для lock-in Microsoft ONNX.