Features:
Renderer using Direct3D 12 and Direct3D 11 APIs with ray tracing capabilities
Multi-threaded job system
Thread-safe event system and dev console
TCP/IP based network system
Model loading system to load .obj, .gltf, .glb models
Utility functions and data structures for 2D and 3D math
Audio system
Input system supporting PC and Xbox controller inputs
Engine: Custom C++ Engine
Features:
Implemented Path tracing using Direct3D 12 and DirectX Raytraycing (DXR)
Implemented spatiotemporal reservoir importance resampling (ReSTIR) for sampling lights during the direct lighting phase in multiple light scenarios to gain a performance boost while retaining the visual quality compared to other importance sampling techniques.
Added temporal reprojection Anti-aliasing (TAA) and Bilateral Filter for denoising, providing a low-noise/noise free final image.
Engine: Custom C++ Engine
Features:
A chunk state machine drives generation, save, and load through worker threads off the main thread.
Terrain generation combines five noise maps to pick biomes.
Two-channel indoor/outdoor light propagates through a dirty-block queue, packed as 4-bit fields per block.
Lighting is baked into vertex colors at mesh-build time for smooth per-vertex lighting and ambient occlusion.
A custom run-length-encoded save format compresses mostly-uniform chunks to a handful of bytes.
Player movement is physically simulated with gravity and drag, and digging/placing use raycasts, not grid-snapping.
Inventory is a real stack-based item system with a Minecraft-style hotbar and a drag/split storage grid.
Engine: Custom C++ Engine
Features:
Actors are defined entirely in XML via multiple attributes like collision, physics, AI, camera, weapons, animation.
Data-driven weapons with three different weapon types.
Maps built from image files use real extruded 3D geometry.
A day/night cycle moves the sun and sky colors and gates when capture objectives can progress.
An objective mode adds five capturable zones that fill or drain by player presence, resetting nightly.
Actors are referenced through generational handles instead of raw pointers, so stale references fail safely.
AI and player controllers share one input abstraction, and a dev cheat can hot-swap possession mid-game.