Engine architecture
The engine separates platform/rendering services, scene components, and FPS gameplay. Text-based level configuration assembles resources and objects through a component factory, making scene changes possible without hardcoding each object in the main loop.
- Cached textures/models and material instances share reusable resources.
- Shader reflection exposes named constant-buffer updates for transforms, lighting, and bones.
- Input, camera, collision, animation, weapon, and rendering components provide separate responsibilities.
Rendering and animation
The DirectX 12 backend manages descriptors, render targets, resource transitions, and per-frame command resources. Fences coordinate CPU resource reuse with GPU execution. Skeletal sampling, interpolation, and skinning drive characters and weapons; normal mapping, alpha testing, point lights, and instancing complete the scene.
Gameplay validation
The FPS scene exercises first-person movement, AABB collision, ray-based shooting, weapon-state transitions, and enemy hit/death feedback. It provides an integration test for the engine systems in a playable setting.
Explore the implementation
Built for Windows with C++20, HLSL, and the MSVC x64 toolchain. GamesEngineeringBase is supplied course infrastructure; scene models and textures are external assets.
