DX11 ECS Starter
A learning-focused engine with animation, lighting, materials, and an entity-component-system architecture.

Making engine architecture easier to understand
I built DX11 ECS Starter as a learning-focused engine, connected to my graphics and engine teaching at RIT. The goal was to make the rendering pipeline and entity-component architecture understandable through working code.
What I worked on
Using EnTT, I separated entity data from systems and implemented camera controls, materials, lighting, and animation support. I documented how to extend the engine and examined performance as entity and mesh counts increased.
Skills demonstrated
C++, DirectX 11, EnTT, Assimp, skeletal animation, resource organization, performance analysis, and technical teaching. Historical benchmark results below include their original hardware context.
Architecture & features
The engine provides a working introduction to DirectX 11 rendering and EnTT’s entity-component-system architecture.
- Camera: WASD movement, Space/X vertical movement, mouse rotation, Shift to move faster, and R to reset.
- Rendering: Diffuse and specular maps, point and directional lights, and meshes imported through Assimp.
- Animation: Skeletal mesh support, including a documented 52-bone model with approximately 20,000 vertices.
- Extension: Define data in
Components.h, create entities inInitEngine.cpp, and pass the EnTT registry to the appropriate systems.
Development notes
Read the DirectX 11 and ECS development blog ↗ for implementation notes on components, animation data, buffers, and the draw loop.
Historical performance study
The original tests explored 1,000, 10,000, and 20,000 entities, plus animated meshes. The documented 20,000-mesh test used 4,560 vertices per mesh—91.2 million vertices in total—and reported approximately 40 FPS on an Intel i5, GTX 1060, and 16 GB of RAM. These figures describe that historical configuration.



