TTLG|Thief|Bioshock|System Shock|Deus Ex|Mobile
Results 1 to 25 of 25

Thread: Dark Engine Viewer

  1. #1
    New Member
    Registered: Feb 2003
    Location: Forest town

    Dark Engine Viewer

    Dark Engine Resource Viewer.
    Does not require installation and pre-configuration. It can be placed in any convenient place of the system. It supports OpenGL 3.2 (there is a compatibility mode with OpenGL 2.1), which means that it can work even on older computers, on Windows and Linux systems.



    Where can I download
    Download links will always be available:
    — on my website: http://forcesw.com (more info here)
    — here, in this post on the TTLG forum
    — on the Dark Fate forum (rus)

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

    Outdated builds:
    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)


    Last changes
    2020‒04−06 14:30 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Edition
    + fixed display of file names and directories in the navigation list, they are no longer wrapped to a new line.
    + LEGACY HARDWARE mode now requires OpenGL version 1.0 instead of 2.1. But work in this mode has not been tested. I would be grateful for the response.
    + added glow of objects that have the Self Illumination property.
    + added support for the Anim Light property. In some modes, it affects Self Illumination property of objects. Full animation of this property has not yet been implemented, only the initial state is applied.
    + added support for languages specified in the dark config file. Resources will be searched in the appropriate subdirectories at the priority specified in darkinst.cfg or install.cfg.

    2020‒03−28 13:00 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Edition
    + improved mechanism for determining directories with game resources. Now the mission, located inside any directory of the game, easily finds the path to resources.
    + improved texture search engine for models. Added support for nested directories with language name (though now only "english" is being searched for so far).
    + added support for replaceable textures described by the TxtRepl r* parameter, where * is the texture number [0, 3].
    + increased maximum exposure limit (to increase brightness with the "+" and "-" keys).
    + now Thief 1 missions display high-poly models (if available).
    + added support for opening a program in the desired directory by passing a parameter on the command line or by dragging and dropping the directory onto the program window.

    2020‒03−23 01:50 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Edition
    + added display of character models (thanks to Juliusz Kaczmarek aka PinkDot and Randy Sybel aka Shadowspawn).
    + using the "+" and "-" keys you can now change the brightness of the image in "Free camera mode".
    + attenuation in the shader switched to quadratic.
    + fixed inheritance of object hierarchy properties.

    2020-03-06 14:00 MSK
    + reduced radius of SSAO and, accordingly, bent normals. The latter are now included in the final picture result, which makes it look a bit noisy. You can disable the SSAO and bent normals contributions by pressing k.
    + verticall FOV value increased from 50 to ~74 degrees, which corresponds to the FOV of New Dark Engine.
    + refactored interaction with the object hierarchy. The Render Type and Self Illumination properties are read, this allowed not to draw extra mission objects and fixed the rendering of shadows from the lanterns.
    + fixed polygon offset for inversed depth buffer. This prevents shadows from flickering when rotating or moving the camera.

    2020-02-26 20:00 MSK
    + added support for New Dark Engine mission format! Hooray! Special thanks to Juliusz Kaczmarek aka PinkDot!
    + slightly faster mission loading
    + when opening a mission, the camera is positioned in the starting point
    + color class refactored for storing data in a floating-point vector, this provides better accuracy
    + "sticky keys" is disabled to prevent the accumulation of camera offsets when managing the interface
    + increased brightness of the mission view mode

    2020-02-17 23:00 MSK
    + added support for colored polygons in models
    + fixed path clipping for textures placed in the same subdirectory with the open model (on screen texture information)
    + various internal optimizations

    2020-02-05 23:30 MSK
    + fixed rendering of some problematic models consisting of several bones

    2020-01-14 15:00 MSK
    + fixed level rendering on AMD video cards
    + recursive traversal of the BSP tree in model opening refactored, recursion is removed
    + fixed program crash when opening some old or damaged models
    + adjusted the layout of mipmap texture levels available for sampling
    + added debug render scheme

    2020-01-04 00:55 MSK
    + fixed rotation of an object immediately after opening it, without prior mouse movement
    + fixed the orientation of some objects in missions
    + fixed building AABB and OBB for objects and their bones
    + shaders are now able to accept data arrays as input
    + added draft render scheme for bounding boxes debug rendering

    2019-12-18 23:30 MSK
    + the paths to the game resources are deleted from the program if we exit the game directory (so that the resources of different games do not get mixed up at boot time)
    + fixed crash when clicking or scrolling on the error page on first launch
    + the program window at startup is located in the center of the screen
    + fixed behavior of the PgUp key, rewinding the list to the very end, when pressed at the top of the list

    2019-12-11 16:00 MSK
    + fixed compiler error for depth_tree shader on AMD cards
    + extended logging for texture search errors to simplify log analysis

    2019-12-10 15:00 MSK
    + fixed unpacking of model normals, now all objects are correctly illuminated by light sources

    2019-12-06 15:00 MSK
    + closing the archive descriptor when we exit archive contents using the interface

    How to run
    A simple way: run the program from any place of your system, and use the interface to open the directory with the desired model or mission file on the disk.

    Advanced method: the program takes the input path of the resource being opened, whether it be an object or a mission. Thus, you can open the desired file in four ways:
    — from the command line, specifying the path to the file to be opened, for example like this:
    Code:
    dark_engine_viewer_x64.exe "D:\Games\Thief 2 - The Metal Age\MISS13.MIS"
    — dragging the file onto the program icon;
    — dragging and dropping a file onto an open program window;
    — creating an association of model and mission file extensions (BIN and MIS) with the viewer and double-clicking on them directly from Explorer.


    Launching on Linux and legacy hardware
    For older video cards that do not support OpenGL 3, a special version was made — LEGACY HARDWARE. Its functionality is very limited, but it allows you to use the basic functions of the viewer. To run it, use the dark_engine_viewer_legacy.exe executable file.

    In addition, there is a linux-build of the viewer: dark_engine_viewer_x64. Currently, it works in LEGACY HARDWARE mode and also very limited in terms of graphics capabilities, but unlike the legacy version, it will become fully functional over time.


    How to use
    Everything should be intuitive: the file browsing interface is scrolled by the mouse wheel, the models are opened by clicking, the previous/next models are scrolled by the arrow keys of the keyboard, PgUp, PgDn, Home and End. Opened model can be brought closer or farther away from the camera with the mouse wheel, rotated with the left mouse button, and dragged with the right mouse button.

    When a mission is opened, the "Free camera mode" button appears in the upper right corner of the program, clicking on it switches the program to the "free flight" mode. In this mode the camera is controlled by the following keys:
    WASD and arrows — camera movement, mouse — rotation along the x and y axes
    C — move the camera down
    SPACE — move the camera up
    SHIFT + navigation key — accelerated movement
    ESC — display interface
    ALT + ENTER — full screen mode (HD Ready — 720p)
    +/- — increase/decrease exposure (brightness)
    I — on/off lighting
    K — on/off SSAO
    O — on/off shadows
    P — on/off parallax occlusion mapping (off by default, revision required)
    U — on/off soft shadows (off by default, revision required)
    Y — on/off contact shadows (off by default, revision required)

    The assignment of the number keys (will change in subsequent builds):
    1 — output of the final frame with all effects (default)
    2 — output normals
    3 — output illumination
    4 — output SSAO
    5 — frame depth output
    6 — output of bent normals
    7 — depth output with the addition of a height map

    The effects that are turned off by default do not work correctly. Enabling parallax occlusion mapping will not show any changes, because you most likely have no height maps for textures. But if you want to see how it will look, place the necessary texture maps, turn on the effect with the P key. When adding a height map, add the postfix "_h" to its name, by the way, for normals it is "_n", so if the texture is called bricks .pcx, then the height map should be called bricks_h.dds (the texture format may differ and be any supported by the game, not necessarily DDS, but DDS is preferable), and the normal map should be bricks_n.dds.

    Supported texture formats: DDS (compressed only), PNG, TGA, PCX, GIF, JPG, BMP.

    Experiments are welcome! Post your screenshots!


    Limitations
    Currently, the program supports three formats of models: BIN, MIS and OBJ.
    Since the program is still in development, support for some formats is only partially implemented.

    BIN — both static and dynamic models are supported, located in obj.crf and mesh.crf files, respectively.
    MIS — supported missions made on both the original and the new extended DromEd for New Dark Engine.
    OBJ — the format is supported at a basic level, without textures.


    Development plans
    In a global perspective, the viewer should turn into a full-fledged 3D engine — Force Engine. I'm not going to compete with Unreal Engine and Unity, my personal task is to create my own game based on this engine.

    Closer plans are support for all the necessary Dark Engine resources, to hone common game mechanics on them, such as physics, rendering, sound propagation, movement system, interaction with characters and objects, artificial intelligence. All this is planned to be implemented with Dark Engine resources, so it is logical to expect from this project the appearance of some kind of game prototype that looks similar to Thief. The degree of readiness of this prototype will be discussed with those who are interested in the project.

    It's planned to regularly publish updates. Therefore, I will wait for your suggestions on the necessary functionality and correction of the priorities of the tasks from the TODO list, which can be found on the Dark Fate forum (rus).


    Wishes
    Please inform me of all errors, bugs, wishes and suggestions found to my email: toforce@ya.ru, or to the Dark Fate forum (rus) or right here, in this post. Also, if you have any other questions — please contact!

    Dissemination of information about this project in all possible ways is welcome! I will be very grateful for any mention of Dark Engine Viewer and my website — http://forcesw.com — in social networks.


    Thanks
    I am very grateful:
    — to Dark Fate community members, without whom this viewer would never been created, their nicknames in alphabetical order: Boris3000, Chuzhoi, HellRaiser, Maxim, nemyax, Zontik and others...
    — to developers and programmers who reverse engineering the original Dark Engine and launched the Open Dark Engine project, without which the idea with Thief resources for Force Engine would never have come true, their nicknames in alphabetical order: Telliamed, Volca, and everyone involved.
    — Juliusz Kaczmarek aka PinkDot, who helped add New Dark Engine mission format support to the program and also helped in decoding the format of dynamic MESH objects.
    — Randy Sybel aka Shadowspawn for helping to figure out how to use decoded data obtained from dynamic MESH objects.
    — to everyone who in any way advised, supported and motivated me, including Vorob and my wife Tatyana!
    Thank you all!

    Copyright
    Using this program, you agree that its author is not liable for any harm caused to equipment or software directly or indirectly associated with the use of this program. The author’s goal is not to infect your computer or spread viruses, so be critical of possible antivirus warnings.
    Last edited by Force; 6th Apr 2020 at 07:52.

  2. #2
    New Member
    Registered: Feb 2003
    Location: Forest town
    Congratulatory part of the previous message moved to this post:

    Hey taffers!

    Today, on the day of the twentieth anniversary of the second part of our favorite game, I am pleased to bring to your attention my development, which some time ago I already posted on the Russian-language Thief community forums: Dark Engine Viewer! This ambitious program was born thanks to the dream of my own game. And, of course, thanks to the active community members who selflessly explored the resources of the original game and helped me integrate their support into this, so far, little program. I hope you find it useful and interesting, and tell your friends about it .
    Last edited by Force; 28th Mar 2020 at 06:21.

  3. #3
    Whoa impressive work!

  4. #4
    Member
    Registered: Aug 2012
    That's definitely gonna be useful. Thanks!

  5. #5
    Member
    Registered: Sep 1999
    Location: Texas, hhhwweeee hawww
    Was using for along while now, very helpful in remembering all the junk objects I would make trying things out in DEV. Lovely to see it has been getting updates and more abilities!

  6. #6
    Member
    Registered: Mar 2018
    GREAT!
    Thank you!

  7. #7
    Member
    Registered: Sep 2012
    That's amazing, impressive work! This will become very useful for making screenshots too! I know NewDark is already amazing, but I hope one day the game will have things like SSAO as well by running on DX11 or DX12 for example.

    One thing I did though is to force VSync for the program in my Nvidia control panel, because my graphics card was literally screaming probably because there's no frame limit.

  8. #8
    Heyy, that looks pretty awesome! Thanks for making

    Happy Anniversary to our beloved game

  9. #9
    New Member
    Registered: Feb 2003
    Location: Forest town
    Thank you all for your kind words and reviews! I hope that together we will make this program even better and more convenient!

    Quote Originally Posted by Niborius View Post
    That's amazing, impressive work! This will become very useful for making screenshots too! I know NewDark is already amazing, but I hope one day the game will have things like SSAO as well by running on DX11 or DX12 for example.
    Yes! I have already posted a challenge puzzle on Dark Fate, from which mission this screenshot:



    Though it already guessed... :P, but you can try to guess too

    In general, if there were SSAO in New Dark, dynamic shadows and more real physics, at least as in Thief 3 or Half-Lief 2, this project would not have happened. I really wanted to see and play the original Thief with all these and other effects. Yes, there is a Dark Mod, but it's still a different game and it feels differently...


    Quote Originally Posted by Niborius View Post
    One thing I did though is to force VSync for the program in my Nvidia control panel, because my graphics card was literally screaming probably because there's no frame limit.
    It is and is even on, but yes, it is such that the video card starts to fly away, especially on massive missions. There is still a lot of work to improve the rendering system.

  10. #10
    New Member
    Registered: Mar 2018
    This looks very promising so far!

    Any plans on making this open source?

  11. #11
    Member
    Registered: Aug 2009
    Location: Cracow, Poland
    Wonderful. How do you load PCX textures onto walls? Do you convert them on-the-fly to something else?

  12. #12
    New Member
    Registered: Feb 2003
    Location: Forest town
    therealfarfetchd
    Yes, I planned to publish the source code (or show it on request) when the work on the viewer is finished. Although for those who can help in the development, I am ready to provide it right now. Currently, help is needed in describing Dark Engine data structures and how to use them, in particular, model animation data.

  13. #13
    New Member
    Registered: Feb 2003
    Location: Forest town
    Marzec
    I just unpack it as usual image data (like GIF or BMP) and send it to OpenGL. Yes, stb_image, that I use, can't handle pcx file, I had to search the network for a way to open these files.

  14. #14
    ZylonBane
    Registered: Sep 2000
    Location: ZylonBane
    This thread should be in the Editor's Guild.

  15. #15
    New Member
    Registered: Feb 2003
    Location: Forest town
    ZylonBane
    It’s hard to determine, actually. Now - yes, rather the Editors' Guild, but in the future it will become more like the OPDE, which is located in this section.

  16. #16
    New Member
    Registered: Feb 2003
    Location: Forest town
    Actual build:
    Thief 2: The Metal Age 20th Anniversary build 2020‒03−28 13:00 MSK (UTC+3:00)


    Last changes
    2020‒03−28 13:00 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Edition
    + improved mechanism for determining directories with game resources. Now the mission, located inside any directory of the game, easily finds the path to resources.
    + improved texture search engine for models. Added support for nested directories with language name (though now only "english" is being searched for so far).
    + added support for replaceable textures described by the TxtRepl r* parameter, where * is the texture number [0, 3].
    + increased maximum exposure limit (to increase brightness with the "+" and "-" keys).
    + now Thief 1 missions display high-poly models (if available).
    + added support for opening a program in the desired directory by passing a parameter on the command line or by dragging and dropping the directory onto the program window.

    Updated fist post and Added version history there.

  17. #17
    ZylonBane
    Registered: Sep 2000
    Location: ZylonBane
    Quote Originally Posted by Force View Post
    ...in the future it will become more like the OPDE...
    Abandoned?

  18. #18
    New Member
    Registered: Feb 2003
    Location: Forest town
    ZylonBane
    OPDE still helps and inspires programmers to apply their skills in such complex projects.

  19. #19
    Member
    Registered: Sep 2008
    Location: Deutschland/Germany

    This could be a nice addition to ThiefEdit which (dis)plays text(ure)s and sounds.

    But ... DL'ed it and tried both dark_engine_viewer_legacy.exe and dark_engine_viewer.exe, the result was ...
    Code:
    [2020-04-01 18:34:39] creating Stash
    [2020-04-01 18:34:39] creating Window
    [2020-04-01 18:34:39] ERROR! Fatal exception catched: Window error callback: WGL: The driver does not appear to support OpenGL
    [2020-04-01 18:34:39] Program finished!
    [2020-04-01 18:34:39] destroying Stash
    [2020-04-01 18:34:39] destroying Log
    My FM campaigns Garrett's Young Years XTra, Reunion With Basso
    Want your upcoming FM translated in foreign languages?

  20. #20
    New Member
    Registered: Feb 2003
    Location: Forest town
    zappenduster
    Yes, I was offered to make a texture view mode.
    If you really need it, I can add. There is nothing complicated about it. Let's just say this will be another mode of viewing models. I can suggest overlaying the texture on the plane, cube and ball with switching modes.

    We will someday get to the sounds too .

    WGL: The driver does not appear to support OpenGL
    Wow! What system are you using? What is your computer configuration? Graphics card?

  21. #21
    Member
    Registered: Sep 2008
    Location: Deutschland/Germany
    Quote Originally Posted by Force View Post
    Yes, I was offered to make a texture view mode. If you really need it, I can add. There is nothing complicated about it. Let's just say this will be another mode of viewing models. I can suggest overlaying the texture on the plane, cube and ball with switching modes.
    We will someday get to the sounds too .
    As I wrote, these functions have been already covered by ThiefEdit. But all that in one program would be more comfortable, the programm view is very primitive and ThiefEdit hasn't been developped futher for ages ...

    Quote Originally Posted by Force View Post
    Wow! What system are you using? What is your computer configuration? Graphics card?
    I'll PM you the configuration later when I'm back in that system.
    Last edited by zappenduster; 2nd Apr 2020 at 05:39.
    My FM campaigns Garrett's Young Years XTra, Reunion With Basso
    Want your upcoming FM translated in foreign languages?

  22. #22
    New Member
    Registered: Feb 2003
    Location: Forest town
    Actual build:
    Thief 2: The Metal Age 20th Anniversary build 2020‒04−06 14:30 MSK (UTC+3:00)

    Last changes
    2020‒04−06 14:30 MSK (UTC+3:00) Thief 2: The Metal Age 20th Anniversary Edition
    + fixed display of file names and directories in the navigation list, they are no longer wrapped to a new line.
    + LEGACY HARDWARE mode now requires OpenGL version 1.0 instead of 2.1. But work in this mode has not been tested. I would be grateful for the response.
    + added glow of objects that have the Self Illumination property.
    + added support for the Anim Light property. In some modes, it affects Self Illumination property of objects. Full animation of this property has not yet been implemented, only the initial state is applied.
    + added support for languages specified in the dark config file. Resources will be searched in the appropriate subdirectories at the priority specified in darkinst.cfg or install.cfg.
    This is last Anniversary build. All following builds will be in a different file. Feast assembly is fixed on this build.

    zappenduster
    Especially for you, I lowered the required version of OpenGL in Legacy version to 1.0.
    But I have nowhere to test the ability to run in this mode (dx8 hardware needed). Therefore, I will be glad if someone leaves a response.

    Thanks!
    Last edited by Force; 6th Apr 2020 at 08:15.

  23. #23
    Member
    Registered: Sep 2008
    Location: Deutschland/Germany
    DL'ed the renewed version and tried both dark_engine_viewer_legacy.exe and dark_engine_viewer.exe, the result was ...

    Code:
    [2020-04-06 16:42:58] creating Stash
    [2020-04-06 16:42:58] creating Window
    [2020-04-06 16:42:58] ERROR! Fatal exception catched: Window error callback: WGL: The driver does not appear to support OpenGL
    [2020-04-06 16:42:58] Program finished!
    [2020-04-06 16:42:58] destroying Stash
    [2020-04-06 16:42:58] destroying Log
    ... the same. Must be something else, maybe my graphics card is too exotic? But Thief/NewDark runs fine.
    My FM campaigns Garrett's Young Years XTra, Reunion With Basso
    Want your upcoming FM translated in foreign languages?

  24. #24
    New Member
    Registered: Feb 2003
    Location: Forest town
    zappenduster
    What graphics card do you have? If its integrated, maybe you should update drivers?
    For integrated graphics, go to your motherboard manufacturer's site and download the driver for your motherboard and OS.
    Well, without advanced information about your system I can't say anything more useful.

  25. #25
    Member
    Registered: Sep 2008
    Location: Deutschland/Germany
    I PM'ed you my configuration.
    My FM campaigns Garrett's Young Years XTra, Reunion With Basso
    Want your upcoming FM translated in foreign languages?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •