Force Software

The site is under construction. Please treat with understanding.

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

Dark Engine Viewer (rus)

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

Открывает модели объектов и персонажей в формате BIN.

Проигрывает скелетные анимации в формате MI/MC для этих моделей.

Имеет режим свободной камеры для просмотра уровней в формате MIS.

Открывает текстуры форматов DDS (DXT*), PNG, TGA, PCX, GIF, JPG, BMP.

Позволяет прослушивать звуки WAV, поддерживаемые оригинальным движком Dark Engine.

Не требует установки и предварительной настройки. Может размещаться в любом удобном месте системы.

Работает на OpenGL 3.2 (есть режим совместимости с OpenGL 2.1), совместима даже со старыми компьютерами, на системах Windows и Linux.

Сборки

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

Dark Fate 20th Anniversary edition 2021‒09−29 15:00 MSK (UTC+3:00)

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

Thief 2: The Metal Age 21st Anniversary edition 2021‒04−23 20:00 MSK (UTC+3:00)

Thief 2: The Metal Age 20th Anniversary build 2020‒04−06 14:30 MSK (UTC+3:00)

Thief: The Dark Project 21st 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)

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

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

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

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

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

2021‒09−29 15:00 MSK (UTC+3:00) Dark Fate 20th Anniversary Edition

+ исправлены ошибки поиска текстур в существующих каталогах

+ добавлено логирование процесса поиска текстур

+ отрефакторен плеер анимации, теперь он загружается быстрее и не мигает при загрузке новой модели

+ добавлена запись и чтение параметров программы из файла конфигурации config.cfg

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

2021‒08−24 14:00 MSK (UTC+3:00) Dark Fate 20th Anniversary Edition

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

+ добавлен проигрыватель анимаций с элементами управления

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

2021‒04−23 20:00 MSK (UTC+3:00) Thief 2: The Metal Age 21st Anniversary Edition

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

+ добавлена генерация mip-уровней для режима Legacy Hardware

+ добавлена поддержка теней для прожекторов

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

+ исправлена загрузка меню. Оно теперь загружается параллельно с объектом

2021‒03−27 16:00 MSK (UTC+3:00) Thief 2: The Metal Age 21st Anniversary Edition

+ переделана загрузка BIN-моделей. Теперь можно просматривать модели с нарушенной структурой дерева.

+ незначительно переоформлены экраны помощи.

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

+ в лог теперь выводится тип сообщения.

2021‒03−23 15:00 MSK (UTC+3:00) Thief 2: The Metal Age 21st Anniversary Edition

С момента последнего публичного релиза прошел почти целый год. За это время было внесено огромное количество изменений. Вот основные из них:

+ реализован простой плеер для воспроизведения звука на основе OpenAL

+ добавлен режим просмотра изображений (всех поддерживаемых форматов текстур)

+ добавлено освещение в режим просмотра объекта

+ переделана работа интерфейса, он теперь загружается частями и работает значительно быстрее

+ реализован фильтр для поиска файлов в меню с простым вводом текста

+ сделан экран помощи, открывающийся клавишей F1

+ добавлена обводка шрифта для текста во вьюпорте для улучшения читаемости

+ добавлена поддержка системных указателей мыши над элементами интерфейса

+ в режиме просмотра объектов реализована прозрачность и альфа-тест

+ для миссий, имеющих поддержку Low Sky, отображается skybox

+ добавлен экран загрузки для меню и для миссий

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

+ реализовано построение octree, которое сейчас используется пока только для оптимизации отсечения геометрии за пределами кадра

+ переработана система управления параллельными потоками

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

+ переработана система логирования

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

2020‒04−06 14:30 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Edition

+ исправлено отображение имен файлов и каталогов в списке навигации, они больше не переносятся на новую строку.

+ для режима LEGACY HARDWARE теперь требуется версия OpenGL 1.0 вместо 2.1. Но работа в этом режиме не тестировалась. Буду благодарен за отклик.

+ добавлено отображение свечения объектов, имеющих свойство Self Illumination.

+ добавлена поддержка свойства Anim Light. В некоторых режимах оно влияет на Self Illumination объектов. Полноценная анимация этого свойства пока не реализована, применяется только начальное состояние.

+ добавлена поддержка языков, прописанных в dark config файле. Ресурсы будут искаться в соответствующих подкаталогах по приоритету, указанному в darkinst.cfg или install.cfg.

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, OBJ и пр...) с просмотрщиком и открыванием их двойным кликом прямо из Проводника.

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

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

Кроме того, есть и linux-сборка просмотрщика, но, к сожалению, в данный релиз она не включена.

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

Всё должно быть интуитивно понятно: интерфейс просмотра файлов прокручивается колесиком мыши, модели открываются по клику, перелистывание моделей «предыдущая/следующая» осуществляется стрелками клавиатуры, PgUp, PgDn, Home и End. Если модель имеет скелет, то для неё возможно воспроизведение скелетной анимации: в правом верхнем углу появляется кнопка "Animation player", нажатие на неё откроет плеер анимаций, где можно указать каталог с анимациями и запускать их кликом на элемент списка или клавишей Play в нижней части списка. По умолчанию, список анимаций открывает каталог уровнем выше открытой модели. Навигация по списку анимаций осуществляется аналогично просмотру файлов.

Открытую модель можно приближать или отдалять от камеры колесиком мыши, вращать левой кнопкой мыши, перетаскивать — правой.

B — переключить серый/чёрный фоновый цвет

I — показать/спрятать информацию об объекте

O — открыть каталог текущего просматриваемого файла

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

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

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

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

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

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

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

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

K — вкл/выкл SSAO

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

Во всех режимах работают следующие клавиши:

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

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

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

F1 — контекстная справка

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

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.

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

Ограничения

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

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

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

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

WAV — поддерживаются только два внутренних формата: PCM и IMA ADPCM.

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

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

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

Пожелания и Поддержка

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

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

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

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

— участнику сообщества Dark Fate под ником Chuzhoi за его неоценимый вклад в разработку дизайна и визуального стиля программы, её тестирование, дельные UI/UX-советы. Именно благодаря ему Dark Engine Viewer сделан таким, какой он есть.

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

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

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

— разработчику с ником HardKern, который указал на проблемы, с которыми он столкнулся во время разработки своего проекта System Shock 2 VR (который, к сожалению, уже закрыт :( ) и помог разобраться с форматом анимаций Dark Engine.

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

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

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

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

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