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.

Update:

After finishing my networked movement systems, I’ve decided that Jolt is much better than Rapier. (At least the deterministic 3D version)

My system(s) no longer require exact determinism to operate. So Jolt’s more reliable and jitter-free collision will do nicely.