$ show rrika/cdcEngineDXHR
This repository is a reimplementation of the Deus Ex: Human Revolution Director's Cut (DXHRDC) game engine, created through manual decompilation and cleanup of the original binary, supplemented with debug information from a leaked Tomb Raider (2013) build (same engine family). It is not a matching decompilation and lacks automated resynchronization with the original binary. The engine requires original game assets (BIGFILE.* files) to run and provides core systems for rendering (DirectX 11 abstraction), audio (FMOD-based), animation (animation graph), game logic (object management, AI, player systems), input, UI (Scaleform via ImGui), resource management, and world streaming. The architecture is modular but monolithic, with a central game loop in cdcGameShell/MainG2.cpp. While the code shows evidence of structured design (interfaces, resource management, job system), it contains numerous TODOs, HACKs, and incomplete implementations, indicating ongoing work. Dependencies include DirectX 11 (or dxvk-native for Linux), FMOD, Dear ImGui, and miniz. The project is actively maintained with recent commits.
The LLM identified 5 files worth highlighting for reuse:
A generic resource loading system that handles typed resources (e.g., animations, scripts, models) and dependency resolution. Uses template-based handles and a resolver to load assets from archives and manage cross-references, enabling extensible asset pipelines.
A node-based animation system for blending and mixing animations. Includes pose evaluation, blending, state machines, and various node types (e.g., blend, additive, procedural) for skeletal animation, independent of game-specific logic and usable in other 3D applications.
A standalone math library providing vector, matrix, and quaternion operations with inline implementations. Includes common geometric functions, transformations, and interpolation methods suitable for graphics, physics, and simulation.
A simple thread pool implementation for executing jobs in parallel. Features a job queue, worker threads, and synchronization primitives for managing asynchronous tasks such as resource loading or background processing.
A flexible camera system with multiple camera types (orbit, first-person, third-person, cinematic) and a manager for stacking, blending, and transitioning between cameras. Includes smooth interpolation, input handling, and frustum culling support.