Force Software

The site is under construction. Please treat with understanding.

Сайт находится в разработке. Прошу отнестись с пониманием.

Dark Engine Viewer (rus)

Программа-просмотрщик ресурсов движка Dark Engine.

Не требует установки и предварительной настройки. Может размещаться в любом удобном месте системы. Поддерживает OpenGL 3.2 (есть режим совместимости с OpenGL 2.1), а значит, может работать даже на старых компьютерах, на системах Windows и Linux.

Где скачать

Ссылки на скачивание всегда будут доступны:

— на этом сайте

— на форуме Dark Fate (rus)

— на форуме TTLG (eng)

Актуальная сборка:

Thief 2: The Metal Age 20th Anniversary build 2020‒03−28 13:00 MSK (UTC+3:00)

Неактуальные сборки:

Thief: The Dark Project 21th Anniversary build 2019‒11−30 23:55 MSK (UTC+3:00)

Thief: The Dark Project 20th Anniversary build 2018‒11−30 12:58 MSK (UTC+3:00)

Последние изменения

2020‒03−28 13:00 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Edition

+ улучшен механизм определения каталогов с ресурсами игры. Теперь миссия, расположенная внутри любой директории игры, легко находит путь к ресурсам.

+ улучшен механизм поиска текстур для моделей. Добавлена поддержка вложенных каталогов по названию языка (правда, пока ищется только "english").

+ добавлена поддержка замещаемых текстур, описываемых параметром TxtRepl r*, где * - номер текстуры [0, 3].

+ увеличен максимальный лимит экспозиции (для повышения яркости клавишами + и -).

+ теперь в миссиях Thief 1 отображаются высокополигональные модели (при наличии).

+ добавлена поддержка открытия программы в нужном каталоге через передачу параметра в командной строке или перетаскиванием каталога на окно программы.

2020‒03−23 01:50 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Edition

+ добавлено отображение моделей персонажей (выражается благодарность Juliusz Kaczmarek aka PinkDot и Randy Sybel aka Shadowspawn).

+ клавишами "+" и "-" теперь можно менять яркость изображения в режиме свободной камеры.

+ затухание в шейдере переключено на квадратичное.

+ исправлено наследование свойств объектной иерархии.

2020-03-06 14:00 MSK

+ уменьшен радиус SSAO и соответственно, bent normals. Последние теперь включены в финальную картинку, отчего она выглядит немного зашумленной. Отключить вклад SSAO и bent normals можно клавишей k.

+ увеличено значение FOV c 50 до ~74 градусов по вертикали, что соответствует FOV New Dark Engine.

+ переработано взаимодействие с объектной иерархией. Считываются свойства Render Type и Self Illumination, это позволило не рисовать лишние объекты миссии и исправило отображение теней от светильников.

+ исправлено смещение полигонов для обратного буфера глубины. Это предотвращает мельтешение теней (артефакты) при повороте или перемещении камеры.

2020-02-26 20:00 MSK

+ добавлена поддержка миссий формата New Dark Engine! Ура! Особая благодарность выражается Juliusz Kaczmarek aka PinkDot!

+ незначительно ускорена загрузка миссий

+ при открытии миссии, камера позиционируется в стартовой позиции

+ класс цвета переделан на хранение данных в векторе с плавающей точкой, это обеспечивает лучшую точность

+ отключено "залипание клавиш", для предотвращения накопления смещений камеры при управлении интерфейсом

+ увеличена яркость режима просмотра миссий

2020-02-17 23:00 MSK

+ добавлена поддержка цветных полигонов в моделях

+ исправлено отсечение пути к текстурам, находящимся в одном подкаталоге с открытой моделью (информация о текстурах, отображаемая на экране)

+ различные внутренние оптимизации

2020-02-05 23:30 MSK

+ исправлено отображение некоторых проблемных моделей, состоящих из нескольких костей

2020-01-14 15:00 MSK

+ исправлено отображение уровней на видеокартах AMD

+ отрефакторен рекурсивный обход BSP-дерева при открытии моделей, убрана рекурсия

+ исправлено падение программы при открытии некоторых старых или поврежденных моделей

+ откорректирована простановка доступных для выборки mipmap-уровней текстур

+ добавлена отладочная схема отрисовки

2020-01-04 00:55 MSK

+ исправлена ошибка вращения объекта сразу после его открытия, без предварительного движения мышью

+ исправлена ориентация некоторых объектов в миссиях, связанная с особенностью указания ориентации кватернионов в библиотеке GLM

+ исправлено построение AABB и OBB для объектов и их костей

+ шейдеры теперь умеют принимать на вход массивы данных

+ добавлена заготовка схемы отрисовки для дебажного вывода bounding boxes

2019-12-18 23:30 MSK

+ пути к ресурсам игры удаляются из программы, если мы выходим из каталога игры (чтобы ресурсы разных игр не перемешивались при загрузке)

+ исправлено падение программы при клике или скролле на странице ошибки при первом запуске.

+ окно программы при запуске располагается по центру экрана.

+ исправлено поведение клавиши PgUp, перематывающей список в самый конец, при нажатии в верхней части списка

2019-12-11 16:00 MSK

+ исправлена ошибка компиляции шейдера depth_tree на картах AMD

+ расширено логирование при ошибках поиска текстур для упрощения анализа логов

2019-12-10 15:00 MSK

+ исправлена распаковка нормалей моделей, теперь все объекты корректно освещаются источниками света

2019-12-06 15:00 MSK

+ закрытие дескриптора архива после выхода из него средствами интерфейса

Как запускать

Простой способ: запустить из папки, в которую была распакована программа, и при помощи интерфейса открыть каталог с нужным файлом модели или миссии на диске.

Продвинутый способ: программа принимает на вход путь открываемого ресурса, будь то объект или миссия. Таким образом открыть нужный файл можно четырьмя способами:

— из командной строки, указав путь к открываемому файлу, например так:

dark_engine_viewer_x64.exe "D:\Games\Thief 2 — The Metal Age\MISS13.MIS"

— перетаскиванием файла на значок программы;

— перетаскиванием файла на открытое окно программы;

— созданием ассоциации расширений файлов моделей и миссий (BIN и MIS) с просмотрщиком и открыванием их двойным кликом прямо из Проводника.

Запуск на Linux и устаревшем оборудовании

Для старых видеокарт, не поддерживающих OpenGL 3, сделана специальная версия — LEGACY HARDWARE. Её функционал сильно ограничен, но пользоваться основными функциями просмотрщика она позволяет. Для её запуска используйте исполняемый файл dark_engine_viewer_legacy.exe.

Кроме того, есть и linux-сборка просмотрщика: dark_engine_viewer_x64. В настоящее время она работает в режиме LEGACY HARDWARE и так же весьма ограничена в плане графических возможностей, но в отличие от legacy-версии, со временем станет полнофункциональной.

Как пользоваться

Всё должно быть интуитивно понятно: интерфейс просмотра файлов прокручивается колесиком мыши, модели открываются по клику, перелистывание моделей «предыдущая/следующая» осуществляется стрелками клавиатуры, PgUp, PgDn, Home и End. Открытую модель можно приближать или отдалять от камеры колесиком мыши, вращать левой кнопкой мыши, перетаскивать — правой.

При открытии миссии, в правом верхнем углу программы появляется кнопка «Free camera mode», нажав на которую программа переходит в режим «свободного полета», управление в этом режиме осуществляется следующими клавишами:

WASD и стрелки — перемещение камеры, мышь — вращение по осям x и y

C — перемещение камеры вниз

SPACE — перемещение камеры вверх

SHIFT + клавиша перемещения — ускоренное перемещение

ESC — отображение интерфейса

ALT + ENTER — полноэкранный режим (HD Ready — 720p)

+/- — увеличение/уменьшение яркости

I — вкл/выкл освещение

K — вкл/выкл SSAO

O — вкл/выкл тени

P — вкл/выкл parallax occlusion mapping (выкл по умолчанию, требуется доработка)

U — вкл/выкл мягкие тени (выкл по умолчанию, требуется доработка)

Y — вкл/выкл контактные тени (выкл по умолчанию, требуется доработка)

Назначения цифровых клавиш (будут меняться в последующих сборках):

1 — вывод финального кадра со всеми эффектами (по умолчанию)

2 — вывод нормалей кадра

3 — вывод освещенности кадра

4 — вывод SSAO кадра

5 — вывод глубины кадра

6 — вывод искривленных нормалей кадра (bent normals)

7 — вывод глубины с добавлением карты высот

Эффекты, которые выключены по умолчанию — работают некорректно. Включение parallax occlusion mapping не покажет ничего, потому что у вас, скорее всего, отсутствуют карты высот для текстур. Но если вы захотите посмотреть как оно будет выглядеть, подложив необходимые текстуры, включите эффект клавишей P. При добавлении карты высот, добавьте к её имени постфикс «_h», кстати, для нормалей — это «_n», таким образом, если текстура называется bricks.pcx, то карта высот должна называться bricks_h.dds (формат текстуры может отличаться и быть любым, поддерживаемым игрой, не обязательно DDS, но DDS предпочтительнее), а карта нормалей — bricks_n.dds.

Поддерживаемые форматы текстур: DDS (только сжатые), PNG, TGA, PCX, GIF, JPG, BMP.

Эксперименты приветствуются! Публикуйте свои скриншоты!

Ограничения

В настоящее время программа поддерживает три формата моделей: BIN, MIS и OBJ.

Поскольку программа ещё в разработке, поддержка некоторых форматов реализована лишь частично.

BIN — поддерживаются как статические, так и динамические модели, расположенные в файлах obj.crf и mesh.crf соответственно.

MIS — поддерживаются миссии, сделанные как на оригинальном DromEd, так и на новом, расширенном для New Dark Engine.

OBJ — формат поддерживается на базовом уровне, без текстур

Планы развития

В глобальной перспективе просмотрщик должен превратиться в полноценный 3D-движок — Force Engine. Никто не собирается тягаться с Unreal Engine и Unity, моя личная задача состоит в том, чтобы создать на основе этого движка собственную игру.

Более близкие планы — это поддержка всех необходимых ресурсов Dark Engine, для оттачивания на них общих игровых механик, таких как физика, рендеринг, распространение звука, перемещение по уровню, взаимодействие с персонажами и предметами, искусственный интеллект. Всё это планируется реализовать с ресурсами Dark Engine, поэтому логично ожидать от этого проекта появления какого-то игрового прототипа, внешне похожего на Thief. Степень готовности этого прототипа будет обсуждаться с теми, кто проявляет интерес к проекту.

Планируется регулярная публикация обновлений. Поэтому я буду ждать ваших предложений по необходимому функционалу и коррекции приоритетов задач из списка TODO, который можно найти на форуме Dark Fate.

Пожелания

Прошу сообщать о всех найденных ошибках, багах, пожеланиях и предложениях либо мне на почту: toforce@ya.ru, либо в тему просмотрщика на форум Dark Fate (rus) или TTLG (eng). Так же, если возникают любые другие вопросы — обращайтесь!

Приветствуется распространение информации о данном проекте всеми возможными способами! Я буду очень благодарен за любое упоминание Dark Engine Viewer и моего сайта forcesw.com в соцсетях.

Благодарности

Я очень благодарен:

— участникам сообщества Dark Fate, без которых этот просмотрщик вряд ли был бы создан, их ники в алфавитном порядке: Boris3000, Chuzhoi, HellRaiser, Maxim, nemyax, Zontik и другим…

— разработчикам и программистам, занимавшимся реверс-инжинирингом оригинального Dark Engine, и запустившим проект Open Dark Engine, без которого идея с ресурсами Thief для Force Engine никогда не состоялась бы, их ники в алфавитном порядке: Telliamed, Volca и всех, кто был причастен к этому.

— Juliusz Kaczmarek aka PinkDot, который помог добавить в программу поддержку формата миссий New Dark Engine, а так же помог в расшифровке формата динамических MESH-объектов.

— Randy Sybel aka Shadowspawn за то, что помог разобраться как использовать расшифрованные данные, полученные из динамических MESH-объектов.

— всем, кто каким-либо образом консультировал, поддерживал и мотивировал меня, включая Vorob’а и мою супругу Татьяну!

Спасибо вам всем!

Авторское право

Используя эту программу, вы соглашаетесь с тем, что её автор не несёт никакой ответственности за возможный вред, причиненный оборудованию или программному обеспечению, напрямую или косвенно связанный с использованием данной программы. Целью автора не является заражение вашего компьютера или распространение вирусов, поэтому критически отнеситесь к возможным предупреждениям антивирусного ПО.