What 3D physics engine should I use? (Both integrated and plugins included)

Godot Version

4.4

Question

I’m on a roll with physics lately…

Anyways, I’m developing a multiplayer PvP arena shooter, and I’m currently programming the “final” versions of it’s movement systems.

The game really isn’t physics heavy. The only 3 practical interactions are:

  1. Player collisions
  2. Projectile collisions
  3. Map collisions

All three interacting via a client communicating input to a dedicated server, who then sends back it’s truthful state to all other clients.

I just wanna just looking through my options to cover all my bases.
(I SWEAR I’M NOT OPTIMIZING TOO EARLY)

Source: xkcd

So, the main reason I was looking through this is deterministic physics.

Physics determinism isn’t a massive issue. It’s just one part that could go into client/server desync. (And even if physics were deterministic, the input likely won’t because of packet loss)

I’m considering 3 options, and I want your input:

  • Option 1: Default Godot 3D Physics
  • Option 2: Jolt (Either built-in or plugin)
  • Option 3: Godot Rapier (A plugin that offers cross-platform physics determinism)

I want opinions on what physics engine I should go with (or telling me that I’m overthinking).

Jolt is significantly better than GodotPhysics. If you’re using 4.4, it’s integrated by default.

1 Like

So it’s a decision between Jolt and Rapier then.

1 Like

I didn’t know about Rapier until I read your post. It looks interesting.

1 Like

I did some tests and I’m going with Rapier 3D physics for now. Solely because of deterministic physics.

Once I have a way to make client input reliably reach the server, determinism will really come in handy.

If I, for whatever reason, need a more robust physics engine, I’ll switch to Jolt.