briansemrau / godot_box2d

A C++ module that integrates the Box2D library with the Godot game engine by providing nodes for standard Box2D objects.
MIT License
45 stars 4 forks source link

There should be a Godot recreation of Box2D testbed scenes #4

Open briansemrau opened 3 years ago

briansemrau commented 3 years ago

To demonstrate the utility of Box2D (and to test if things are working properly), there should be a folder or repository of scenes copied from the Box2D testbeds.

jordo commented 3 years ago

I'd love to coordinate on this effort if possible. I've been using b2d for just about the past decade, so I familiar with the ins and outs of the engine. We also have been using a heavily modified version for network-sync as well, and I've played around with liquid fun from time to time.

As I dive more and more into godot I seem to be surprised daily by the current state of the physics engines. ( CCD has been non functional for the past 3 years ). Would love to potentially sync on this effort to 'just use b2d', at least for 2d simulations.

briansemrau commented 3 years ago

I'd love to coordinate on this effort if possible.

To be clear, do you mean for this specific issue or for the module as a whole? Either way, I'd be happy to have support. My main concerns about this project are 1. does it perform okay, and 2. am I taking the right approach? There are a lot of design decisions to make when merging the feature sets of both Box2D and Godot together, and I can't be sure I'm always headed in the right direction. I'm welcome to any critique and suggestions, be it features, implementation, whatever.

For the topic of this issue, I just want to note two main goals for the testbeds:

  1. Verify this module functions as expected (i.e. the same as Box2D) by comparing to the original tests and
  2. Measure performance of this module compared to both pure Box2D and Godot physics.
jordo commented 3 years ago

For a module as a whole really. I just updated so I can build it on 4.0 here: https://github.com/winterpixelgames/godot_box2d/tree/4.0

But ya, the feature sets are somewhat different, but for the most part they jive. I mainly just pinged you in this issue to reach out. I was originally going to start to investigate this myself and just came across this repo.

My initial thought was to literally support 'swapping the 2d physics engine', the same way bullet3d and godot3d are swapped. (Configurable in project settings). No custom nodes, but under the hood hook up the existing godot nodes to a different underlying physics engine the way it's done with 3D.

I hadn't looked at what specific properties are low hanging fruit and what properties are troublesome yet, but I feel you have have a little more insight there as you most likely have investigated. At any rate, I'm happy to help out either way.

jordo commented 3 years ago

To be honest though, I'm a big fan of having the "physics world" be a node in the scene tree... Almost similar to a world environment, and a camera works. The bodies in the sub-tree are the bodies in the world.

I actually kinda want that in godot main, instead of the physics space being a property of the viewport

briansemrau commented 3 years ago

For now I'm converting my private stickynote of "to-dos" into public issues, so hopefully that gives a better idea of what's missing. Feel free to email me if you like (email in my profile) or post issues with questions.

I'm still in the initial sprint for feature completeness, so my organization is more characteristic of a beheaded chicken than a sensible software dev, haha.