Personal Project
Featured
C++20
Physics
Raylib
Dura2D logo

Dura2D

August 2023

Dura2D image
View Fullscreen
1 / 4

Bridge Constraint system demonstration with Joints debug enabled

Thumbnail 1
Thumbnail 2
Thumbnail 3
Video thumbnail 4

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.

Sources

Platforms

MacOS
Linux
Windows
WebAssemblyWebAssembly
Android
Nintendo Switch
PSP