Releasing Box2D 3.0 :: Box2D

submited by
Style Pass
2024-08-12 07:00:03

Over 18 months ago I announced that I was working on Box2D version 3.0 (v3 for short). And it has finally arrived! It has been a long journey and I've learned a lot. There is more work to do, but the library is ready to be used for game development.

I'd like to thank the Box2D users who tested v3 during the alpha and beta. Their feedback and bug reports have been super helpful! I made many changes and decisions based in input from the Box2D community on Discord and GitHub.

The v3 continuous collision design seems to prevent almost all dynamic versus static tunneling. With bullets there is tunneling prevention for dynamic versus kinematic and dynamic, but it is not as robust.

The v3 API is completely new. The entire API consists of enums, structs, and functions. There are no C++ classes, operator overloads, or inheritance. I've made minimal use of macros. All internal data is hidden in the src directory, making the public include headers smaller and easier to read.

For multithreading I explored many options. Along the way I decided Box2D should support multithreading large piles of bodies, especially after seeing Petri Purho discuss the technology behind Noita. This lead me to explore graph coloring. I was inspired by the threading design of bepu.

Leave a Comment
Related Posts