Dura2D
August 2023

Bridge Constraint system demonstration with Joints debug enabled
About Project
Dura2D is a C++20 game physics engine designed with simplicity, performance, and flexibility in mind. It features a warm startup system for fast boot times, a dynamic AABB tree for efficient broad-phase collision detection, and a robust constraint system to handle complex interactions between entities. While the engine itself is renderer-agnostic, all examples are visualized using raylib to ensure easy-to-understand demos and streamlined development.
Project Info
Role
Lead Developer
Project Management
Notion
Version Control
Git/GitHub
My Contributions
- Engine architecture and design.
- Dynamic AABB tree implementation.
- Constraint system for joints and positional limits.
- Integration with raylib for demo rendering.
- Warm startup optimizations.
What I Learned
Drawing on Pikuma’s Game Physics Engine Programming course and in‑depth research into Ming‑Lun “Allen” Chou’s Game Physics Series, Erin Catto’s Box2D, and Jason Gregory’s Game Engine Architecture, Dura2D provided a deep dive into the low‑level architecture of physics engines. I researched and implemented a dynamic AABB tree from scratch to manage broad‑phase collision detection, which significantly improved performance for larger scenes.
The constraint system was a challenging and rewarding part of development—designing and iterating on a system that could handle fixed joints, ropes, and positional correction expanded my understanding of real‑time physics.
By using raylib for rendering the examples, I focused on keeping the engine decoupled from the graphics layer, ensuring it can be reused in other rendering contexts.
Optimizing for warm startup times allowed me to understand initialization bottlenecks and apply modern C++ techniques to streamline the process.
Dura2D also refined my CMake workflow, especially when integrating libraries and structuring reusable codebases for long‑term growth.