TapiEngine is a basic 3D engine written in C++ with minimal external dependencies. It leverages WinAPI and Direct3D 11 to provide a lightweight yet functional environment for 3D graphics development on Windows.
- Minimal external dependencies for ease of setup and portability
- Core rendering capabilities using Direct3D 11
- Windows-native application loop and input handling via WinAPI
- Object-Component system for flexible scene management
- Designed for learning, prototyping, and extending
A scene-based archtecture similar to Unity's GameObject-Component system is implemented in TapiEngine. Each scene contains multiple objects, and each object can have multiple components that define its behavior and properties. This modular approach allows for easy extension and customization of the engine's functionality.
The scene collects all renderable objects and sorts them instead of immediate rendering. This centralizes the rendering process, allowing for better control over rendering order and optimizations. It also helps not mess up the pipeline state.
- Windows OS
- Visual Studio 2022 (recommended) or any C++ compiler with Direct3D 11 SDK support
- Clone the repository:
git clone https://github.com/smartflame17/TapiEngine.git
- Open the project in Visual Studio.
- Build the solution.
After building, run the executable from your build output directory. You should see a window initialized by WinAPI and rendered via Direct3D 11.
- Microsoft for WinAPI, DirectXTK and Direct3D 11
- The imgui library for providing a simple and effective GUI solution
- The assimp library for model loading capabilities
- The box3d library for collision detection and physics simulation
- The open-source community for inspiration and guidance
TapiEngine is licensed under the MIT License. See LICENSE.md for more details.
Made with ❤️ by smartflame17


