-
-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Recognize "Godot Jolt" (Jolt Physics) as an officially endorsed add-on for 3D physics #7308
Comments
Seeing as how there have been murmurs about this for a few weeks now, I guess this is as good of a place as any to express how flattered I am for this to be considered. It's been a staggering amount of (mostly full-time) work to get to this point, as part of a longer hiatus of mine, and while Godot Jolt isn't at feature-parity with Godot Physics just yet, it makes me very happy to see all that work being recognized in some capacity. As mentioned elsewhere, I want to underline how instrumental @jrouwe has been in getting Godot Jolt to this point as well. While I may have started this project with a somewhat naive view of how this could be achieved, it's clear in hindsight that this project would have been largely dead in the water (or at least severely hampered) if not for his generous support over the past few months. With that said, I think it's relevant to bring up that I'm by no means a physics programmer, nor someone who typically deals with physics engines. I'm also not particularly capable with physics or math in general. I hope this helps prove the point that creating and maintaining bindings to an existing physics engine results in a significantly lower barrier-to-entry for contributors compared to further developing something like Godot Physics, regardless of how primitive it may be in comparison to other physics engines. As such, I'd be happy to help steer Godot towards the proposed direction/outcome in whatever way I can. I'd also like to bring up some of the discrepancies/compromises that Godot Jolt brings with it, which I think are important to highlight when considering this proposal and its potential future outcome, but I have to cut this short for now and will try to expand on this at a later point instead. |
I have no feelings one way or the other. I don't know about physics, just about usage and user experience, so i would like to ask what you people who actually know thing about this topics.
Edit: I'm not sure my like to mihe is enough to assert my deep appreciation for his work so this line is juts to verbalize that in order to compensate what is in my eyes a message that could be misinterpreted as a devaluation of it. |
If the add-on is successful enough and if there's a conversion of the add-on into a native Godot module, yes, it would mean a decreased activity on the development of the 3D Godot physics engine, especially if there's no maintainer that is able to maintain/upgrade our current engine.
The development of the physics engine is already impacted. See the tweet of Juan in the proposal.
Yes, it makes a lot of sense. But as the Jolt Physics engine is not yet at feature parity with the 3D Godot Physics engine, we (the production team) think that there's no rush to replace the Godot Physics engine yet. Especially as the add-on works very well as a GDExtension. Once Jolt Physics, Godot Jolt and GDExtension will be battle tested, we'll think about merging the projects together. Until then, no.
We think that we'll know more about this if more and more users start to use Godot Jolt as their main physics engine. And as Jolt was made from the ground up to be a video game physics engine, we think that it will be more stable than Bullet, as it wasn't made with video games in mind. |
Thank you so much for taking the time to explaining this topic. I honestly feel like any possible concern is covered and seems like a good roadmap. As usually, awesome work from the team. Thank you all! |
Godot Physics is a disgrace of a bugfest. The only chance to get it halve-decently working is to limit your collision shapes to simple box and sphere primitives (not always a feasible option). In stark contrast to the much more performant Godot Jolt. Even with non-feature parity Godot Jolt is a much more viable physics engine. I really hope the combined efforts are focused on Godot Jolt going forward. Previous discussion on this topic: #5161 |
well, I'm going to break a spear in favor of the Godot Physics engine. Yeah, it has serious troubles. But i just can't believe that a whole replacement for bullet was created in order to address the core functions for Godot 4.0 SO quickly. Not only Godot physics itself, but the work put into interface, a better API, more control of the bodies from the inspector, the whole new CharacterBody, which i think that while still could be improved (Like all things can) is an exponentially better solution for characters that what we had before. A huge effort went into testing and creating controllers in lots of ways to achieve something general enough for Godot while providing high level functionalities like snapping, constant velocity on slopes etc. The physics engine is a thing, the implementation of it is another one and i think the team made huge steps on the right direction there. And just to be fair, the users who actually spend time creating reproduction projects for issues that were really hard to identify by the team was not so big. Not so long ago just checking if a character was on the floor reported serious troubles and we are now far away from that. I don't think is fair to call the work a disgrace. |
Hello, I'm flattered that Jolt Physics is being considered for integration in godot. It has a been a lot of fun to develop it together with @mihe and I think it is amazing to see how quickly he implemented all of this!
@yosoyfreeman I've heard multiple people say bad things about collision margins so far, but I have never experienced any issues with them. What is so bad about them? B.t.w. I think the margins probably work differently in Jolt than in other physics engines. If you specify a margin, it gets subtracted from the shape and then re-added again, creating a shape with rounded corners of the same size as the original shape. The margins are only used to during the initial overlap test as a performance optimization, but not when calculating contact points/normals, these use the original shape. For ray casts they're not used at all. The only downside is that you may miss a hit if the overlap between two shapes falls between the original edge and the rounded off edge. I've not seen any artifacts due to this, but if this is important to you you can easily set the margin to 0 and pay some extra CPU cycles during the collision detection phase. For meshes / heightfields the margin is always zero, so I think this really only matters for boxes, convex hulls and cyclinders. |
I apologize, i totally forgot about thanking you! I officially extend my congrats to you and anyone who worked in this, just to be covered! haha
i don't know from the programming side, but user side they seem a bit confusing to work with, but i see that they way they are handled is not equivalent to how bullet did it, so I'm not worried about them anymore. I started to try jolt and i was expecting something way more complicated bullet style. I'm honestly surprised in the best sense possible. You really did a great job here. |
I've been curious about the differences between Bullet and Jolt with regards to margins, since this gets brought up in every discussion about the viability of Jolt and other GJK/EPA-based physics engines, so here are a few quick observations...
From what I can tell, the margins as used with Bullet in Godot 3 behave similar to Jolt when dealing with boxes and cylinders, where you'll get rounded edges but no extra margin/padding/skin around it. With convex hulls you do however (unlike Jolt) get this extra margin/padding/skin around it, which when skimming through Godot's list of issues here on GitHub seems to have been the source of some confusion/frustration (godotengine/godot#27427, godotengine/godot#55503).
This is actually confusing me a little bit, as this does not reflect what I've seen in Godot Jolt, but in the interest of not derailing this discussion too much I'll create a separate issue for this, since I might have misunderstood or screwed something up in my implementation. In either case, from what I can tell with just some quick tests, Bullet in Godot 3 seems to again be inconsistent about this depending on the shape type, where contact normals for boxes don't seem affected by shape margins but convex hulls do.
Without trying this in Godot 3 myself, this seems to be another discrepancy with Bullet, where margins do seem to affect ray-casts and seem to again have been the source of some confusion/frustration (godotengine/godot#28032).
This was not the case with Bullet in Godot 3, which I think is where a lot of the apprehension comes from. The margin had to be a non-zero value, so you could never really opt out of this performance-for-accuracy trade-off. In Godot Jolt I've also added a project setting to globally ignore the shape margins, if you don't feel like setting it to 0 for every single box/cylinder/hull.
This was the case with Bullet in Godot 3 as well, but for whatever reason the margin parameter is present on all shape types, but ignored for anything but boxes, cylinders and convex hulls. |
Here are the discrepancies/compromises that I meant to bring up in my original reply. Apologies in advance for the wall of text. These things are (hopefully) not blockers per se, for the purpose of recognizing Godot Jolt as an official add-on, but seeing as how this proposal is largely intended to be an intermediate step towards making Jolt a first-class physics implementation in Godot I do think it's important to keep these in mind. Note that this likely isn't an exhaustive list, and I've probably left out something important, but it'll have to do for now. TL;DR
Bindings (C#, C++, Rust, etc.)I think this is an important point to keep in mind as I go through the rest of this list, which is that you currently cannot interact with custom nodes that are exposed through GDExtension from languages that require compiled bindings, such as C#, C++, Rust and others. This means that when there's a mismatch between the interface that Godot expects you to implement (through My current (perhaps naive) plan for the custom joints (described below) is to work around this for C# by distributing a separate NuGet package containing some sort of handwritten bindings that utilizes things like GDScript and (presumably) other dynamic scripting languages are unaffected by this limitation. JointsGodot Jolt supports the basic functionality of all the default joint nodes, meaning they're all constrainted on the expected axes and they all support whatever hard limits and motors that the joints offer. The only exception is perhaps What's also not supported in all these default joint nodes (and likely never will be) are the parameters that tune how the joints behave as the bodies move around or when they run up against the joint's limits. This includes things like bias, damping, relaxation, softness, restitution and ERP. Attempts were made to try and translate these into the interface that Jolt expects, but due to the lack of a consistent/functioning reference implementation this was eventually abandoned. The current plan is to instead expose Jolt-specific joint nodes, appropriately named SoftBody3DAs already pointed out earlier in this thread, this isn't currently a thing in Jolt, but seems to be in the pipeline. It remains to be seen how the two interfaces will line up. WorldBoundaryShape3DThis shape represents a static infinite plane in Godot Physics, and judging by the name is meant to be used for expressing world boundaries. This type of shape is explicitly not supported in Jolt due to the implications its infinite nature has on performance and floating-point accuracy. I made a naive attempt at implementing this (before seeing the linked issue) by triangulating the plane, similar to Bullet's Seeing as how this shape doesn't really offer much that can't be achieved with other shapes or mechanisms, I don't personally have any issue with this being unsupported, but it's none the less a discrepancy to consider. HeightMapShape3DWhile this shape is supported and mostly functional in Godot Jolt, it does come with the restriction that you can only use square height maps with dimensions that are a power-of-two. So you're only allowed to use height maps like 1024x1024 and not 1024x512 or 1000x1000. Double-precisionThis is something I haven't had the chance to explore yet, and while Jolt does support double-precision, it does so in a more conservative manner than Godot's approach of making most things a PerformanceWhile Godot Jolt does seem to perform better than Godot Physics in most cases, there are certain cases where it does not. One such case is when you manipulate the shapes of a body (i.e. change their properties/transform) after it has entered a scene tree. This is due to the fact that I lazily build the (fairly expensive) underlying Jolt shapes only when necessary, so as long as the body is not inside a tree you can manipulate the shapes whichever way you want at virtually no cost, but once the body is inside a tree then I rebuild the shapes immediately on every single change. This is prominently noticeable in the Voxel Game demo project, where the chunk streaming results in pretty severe stuttering as you move around due to the chunks being initialized with dummy shapes that later gets replaced with proper ones, leading to multiple expensive rebuilds of the body's These pitfalls are not inherent to Jolt, and more of a conscious trade-off that I made to prioritize the performance of bodies that do not change their shapes very often. You could of course do all sorts of dirty-flagging to only rebuild once per tick, or use some sort of heuristic or project setting for deciding whether a Another performance pitfall relates to how There might very well be more performance pitfalls/discrepancies that I'm not aware of, as well as low-hanging fruit in terms of performance gains, but I haven't had much time to focus on profiling/benchmarking yet. MiscellaneousThere are some other discrepancies that I'll just quickly list off here:
|
I think this is might be solvable, at least with GDExtension (I'm not sure about C#). When you have the Jolt GDExtension enabled, you could run Unfortunately, thinking through this I suspect a recent-ish change that I made for Godot 4.1 may actually prevent this from working at the moment :-) but I haven't tested it. Anyway, if it does, that's just a bug that can be fixed! |
That could be interesting. I guess one could then technically maintain a fork of godot-cpp (or whatever) that includes that modified
I've seen mentions about something similar having been used for C# in the past, where you'd have the desired extensions loaded while generating the C# glue or something along those lines. I'm not sure how that would have worked exactly, but either way that is now also likely broken (by me) since godotengine/godot#75955, which causes the C# scripting to explicitly skip over GDExtension classes when instantiating its bindings. |
My thinking here is that, eventually, we can break some compatibility on the Godot side to make this happen, given most of these features are probably not heavily used, but some things will have to be properly supported. Here are my feelings about this: This is the list of things that can be adapted in Godot to work like Jolt, even at the cost of breaking compatibility:
This is the list of things that Godot can't adapt as well and we should figure out a better solution:
I think none of the above is serious, although probably the one that may need a more involved solution is WorldBoundaryShape3D. I think if Jolt can figure out a way to expose the right hooks to do it, even if its more work from our side, it should be fine. |
This sounds a lot like what I've already done with the custom joints I've added so far. The default and custom joints both share the same physics server implementation, and the custom ones just use a couple of extra enum values, which seems to be working well enough.
I'm sure @jrouwe can be more specific here, but yes, Jolt's Just to be clear, Godot Jolt supports adding/removing shapes whenever just fine, but in part to simplify the implementation I went with discarding and rebuilding the entire compound shape whenever this happens. I know I explored the (arguably more intuitive) option of just using a
@jrouwe also suggested this in godot-jolt/godot-jolt#502 yesterday, along with a few other things. This should be fairly straight-forward to resolve one way or another, if only just as a way to get to parity with Godot Physics.
This was (to my surprise) some of the first issue reports that I got, multiple even, which made it seem to me like it was a pretty popular use-case, although I can't speak to how exactly it was being used. I suppose if a user attaches an I realize
I assume this wouldn't do much to alleviate the issue of the shape causing trouble for the broad phase, considering that the bounds of compound shapes encapsulates the bounds of all its sub-shapes, but I'm out of my depth here. I'm curious about your other suggestions though.
If by scheduler you're referring to
From what I understand this is a thing through
This is already a thing in Jolt, but due to Jolt also needing aligned allocations I wasn't able to use
Yes. :) |
Really? Seems like I was getting non-flat normals using a cylinder character collider against a triangle mesh (all flat 90 degree angles for testing stair stepping), sometimes causing my character to bounce in the air. Disabling the margins fixed it. |
@mihe Oh, great to know that most of this is taken care then! Just some extra notes from what you answered then:
Keep in mind also users often change the properties of the shapes (like making capsule shorter when character crouches)or animate them via AnimationPlayer. So I think my recommendation would be something like adding to PhysicsServer a flag to the body that specifies that you won't be doing changes often. As example, GridMap uses thousands of those and they are not changed, so it could optimize to have these static. Otherwise you may run into performance issues if users do too much of this.
I am really surprised about this. It definitely should detect kinematic bodies (which are technically static) but I don't see the use of static collision either. I guess it makes sense to leave disabled by default.
You really just need to skip the broadphase for it and just collide every non resting dynamic body forcibly against it. The collision is super simple, get the transformed shape support in the direction of -plane normal and check if under the plane. If so, it collides and you have to get the support features in that direction and use them against the plane and solve that. If a boundary shape is moved, wake up all bodies. Because this does not involve any broadphase and can be almost considered a constraint (except you have to query some supports at setup time), it should be relatively easy to implement "externally" or as a constraint if Jolt has the right hooks. I also forgot to ask if you could handle the separator ray shapes. Users often use those to do stair stepping in characters (both dynamic and kinematic). But this is really awesome anyway, it looks like you got pretty much all figured out ! |
Yes, these are implemented, and seem to work the same as in Godot Physics, at least when attached to kinematic bodies, including its I was under the impression that these were mostly intended for kinematic bodies, and while they technically work for dynamic bodies as well, I can't really give them a sensible mass/inertia, given their infinitely thin nature, so I currently just give it some arbitrary ones, which might differ from how they behave in Godot Physics. Although, I guess this shouldn't matter much for some |
@mihe They are used for dynamic character controllers too (mostly for stepping too), but its as you say it should be fine. |
Not sure why this has been downvoted so much, it's very true that you have to use Box colliders exclusively if you don't want the physics to level-reset break (which is the first rule of physics to avoid, never get stuck in a place you can't get out). I'll reiterate that using a Safe Margin of 0.001 instead of the default 0.0001 fixes getting stuck entirely in my experience, however I am still using only box colliders and simple 45 and 90 degree angled colliders so it may not work for more complicated shapes. I absolutely agree that Jolt should be developed as the built-in default physics though. |
@elvisish Godot Physics can be fixed with a good amount of effort (There was a roadmap more or less in place, and all issues are well understood) but the truth is that this still needs a dedicated maintainer and se far this has not happened. As Jolt has improved so much and became more friendly to how Godot works, plus it is very actively maintained and developed, at this point it makes more sense to move to it. This is why I think the change of plans makes more sense. |
I agree. Just thinking now, I wonder if this means that stair-stepping could be implemented in Jolt physics for performance purposes? I've been using https://github.com/mrezai/GodotStairs for extremely robust and fully working stair-stepping (it does multi-directional shapecasts using directspace) but the performance is terrible (here's a stress test of 250): Nvidia's PhysX has built-in stair-stepping as it's designed for games, I would expect Jolt to have similar built-in functionality and I think vastly improved performance would be an even better reason to have it built-in than convenience and the popularity of its use. Here's my 2+ year old proposal: #2751 |
@elvisish Just use a SeparationRayShape for stair stepping, this is what most users do. Also, we can move this discussion to your proposal, since you are going fully offtopic here. |
What's the next step here? This is currently a Top 10 ranked proposal, yet there has been no official update on this subject. Everyone here seems to be in agreement that it's time to officially endorse the plugin. I can't see any argument against it anymore. Godot-Jolt has become the recommended 3D physics engine in the community - over Godot Physics. I think what should be done is:
I believe that would count as "officially endorsing" the plugin and we can finally close this proposal and move on to the next stage in the process, which is the one most of us are actually concerned about: making it a core feature. |
So, I'd like to add a third item here, I did mention it in my comment above yours but I don't want it to get lost- godot-jolt/godot-jolt#356 (comment) If you check this thread in godot-jolt, the author is hoping for godot-jolt to get merged in as an official module. As in, not just endorsed by Godot's developers, but something that comes with Godot 4 by default, that you can switch to in the settings without having to install anything, or perhaps even becomes default for new projects, overshadowing Godot's built-in physics. This is very different from a simple documentation change/announcement, and I would guess it's why we haven't seen any comments from the major contributors. It's a pretty big piece of work, and a decently large shift in Godot's attitudes towards use of external libraries (that is- There seems to be a general avoidance of large external libraries for big pieces of engine functionality. Small libraries have been used, but generally the Godot team seems to prefer to do things in-house, with some obvious exceptions like Vulkan/OpenGL where rolling your own isn't a practical option). This would provide benefits that @mihe explains a lot better than I can, but the tl;dr is that it would enable thread safety, providing both performance improvements as well as pulling godot-jolt off of the main thread. I imagine there would be other benefits to turning this into a module as opposed to a gdextension that I am not aware of. Edit: Just saw that you intended these as a stepping stone to godot-jolt being a core feature, my bad. Regardless- I feel like we're at the point where the main benefits would be in just merging it in as a module. But I think that would be a conversation godot's devs have to have directly with jolt's. |
Last time I checked, Godot is a monolithic executable, and you can't just shove functionalities not everyone need into the Godot binary and make it bloated. Why would Godot need a native physics engine and a jolt engine inside it when many of the game developers only need it for 2D games? If Godot should take O3DE approach and allow its own modules be compiled as DLLs that can be included/excluded during packaging. That way maybe more optional modules can be trickled into Godot's code base. |
I would suggest reading every post in this very issue and the hundreds of other complaints about the current state of GodotPhysics to find an answer to that. |
For this exact reasoning we should get rid of Bullet as well and roll entirely with GodotPhysics? |
This is what I was trying to avoid, actually. This proposal is about officially endorsing. I mean that this proposal is still open should be prove enough that even baby steps seem to be too big right now. |
I think what we should discuss is where in the documentation to add the link to Godot-Jolts repo or AssetLib entry. I would like it on this page, for example It needs to be a diplomatic way of pointing out that 3d physics in Godot 4 is in a borderline unacceptable state with no improvement in sight and the plugin fixes that. |
I was replying to the idea of putting both godotphysics and jolt inside Godot as built-in modules. And I think if Godot wants to switch to an external physics engine, it should go with physX which is superior. |
You would be limited to an older version of PhysX, which is barely supported, while the newer version remains closed source. Jolt also has better performance with a multithreaded CPU. |
Given this thread is drowning in speculation, I want to give my take on what will probably be the next steps regarding to this:
When and how this will happen is uncertain (remember Godot is FOSS and it depends on contributor willingness and availability), but at least that is the plan. But this will take time. |
This sounds like recognition and official endorsement to me. I vote to close this Proposal as completed, there's really nothing more to add in my opinion. Maybe it's time for a follow up tweet tho ;) A lot has been done since, Softbodies have been implemented and there are only a few very minor features missing. I'd say the plugin was at something like 75% feature parity back then and is at >95% currently.
Just curious, is there anything left us normal folk can do about this? Like opening a new Proposal requesting to allocate funds towards this or leave an upvote somewhere? |
@Griiimon there will be a public roadmap published soon after Godot 4.3 is out which will include a lot of this info regarding where the project expects to go. This also should hopefully get a better idea of where funding is intended to be used. |
@reduz Is there anything in particular you're thinking about? If I look at What Is Not Supported then I think the biggest thing is thread safety, but as far as I understand that comes practically for free when it gets merged into godot. Other than that I'm happy to help. |
@jrouwe Maybe we can open another discussion about this, if you're open to it, even if it's just about allowing certain bodies to bypass the broad phase entirely and be brute-force checked against every other body, or something along those lines. @reduz floated the idea of it maybe (under the hood) being a constraint of some type instead, but having (only briefly) looked at it I'm not sure that would work in Jolt, seeing as how you'd presumably have every body in the simulation (or at least the applicable layers) partake in that particular constraint island, but maybe you see some way of doing it. I could have misunderstood the idea as well. |
Man I love this guy, somebody give him legend status. I am glad you're helping get everything in a good shape. |
Good to know there is a plan. |
Yes, let's continue here: godot-jolt/godot-jolt#104 |
The WorldBoundaryShape3D is implemented now and raycasts support returning @reduz @mihe Are there any more things that need to be fixed? I see 'SoftBody3D does not support any interactions with Area3D' on the list but I don't know how important that is. I can work on that next if needed (have looked at it before but it is difficult to get a performant implementation for it). |
@jrouwe I can't speak for the Godot production team, nor have I been involved in all the discussions about this, so I'll leave it to them to give any sort of thumbs up, but I guess I can take the opportunity to bring up this discrepancy with Godot Physics:
In short, Godot Physics only considers This seems to be a fairly common1 (albeit easily resolved) stumbling block when people migrate to Godot Jolt, as this This can also manifest itself with the The fix for both of these cases is of course to just set I have somewhat deliberately looked the other way with this particular discrepancy, waiting to hear if someone would scream loud enough for me to address it in some way (likely by making a request to you about it) because I felt that Jolt's behavior made more sense. I figured if/when Jolt becomes an official module then other breaking changes probably need to happen anyway (its behavior will never truly be 1:1 with Godot Physics after all) so changing the default value of This was brought up in one of the discussions surrounding all this, and I got the impression that making this breaking change wasn't that big of a deal in the greater context, so maybe it really isn't, and we should just leave it as-is, but if we're aiming to max out the 1:1 mapping with Godot Physics, and instead leave the breaking change for a later date, then this would be some low-hanging fruit I guess. It could perhaps be that it's entirely fixable from my side using filters or something. Footnotes
|
Spinning off another discussion here: godot-jolt/godot-jolt#957 |
Describe the project you are working on
Godot Engine
Describe the problem or limitation you are having in your project
Maintaining a 3D physics engine is hard. Especially when you implement it from scratch.
Implementing a new engine was needed. In Godot 3.x, Godot used to handle it's physics with the Bullet physics engine, but too many issues riddled the general purpose engine, enough to be game breaking. To address that issue, a developer was hired to overhaul the Godot Physics engines, both 2D and 3D. Unfortunately, this developer is not available anymore.
Since then, Godot Physics is currently in a precarious situation. The few current maintainers sure are competent and diligent, but fixing physics engine issues requires deep physics and mathematics knowledge. Both fields that aren't easy nor simple.
As @reduz said on Twitter recently:
So the problem or limitation the project is having is not having enough resources (including maintainers wise) to maintain a fully fledged 3D physics engine.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Jolt Physics is a physics engine created by Jorrit Rouwe (@jrouwe). It was first launched on January 23rd, 2022, but the engine was already known for being behind Horizon Forbidden West, a game by Guerrilla Games.
In constrast of Bullet Physics, it is a physics engine built up entirely from scratch with video games in mind. So it is built to handle interactivity and large worlds.
Unfortunately, the engine is not yet at feature parity with Godot Physics. But again, Godot Physics as game breaking issues that need to be fixed, if they are going to be fixed at all.
@jrouwe is actively working to add new features to the engine, such as soft bodies. Features are even being added with Godot in mind.
Enter Godot Jolt.
Since several months, Mikael Hermansson (@mihe) is working (successfully) to port Jolt to Godot with his GDExtension. The results are very interesting. Since last May, users can download and use Jolt in their games. Since then, numerous updates has been made and the proof has been made that Jolt could be potentially considered for Godot's physics engine needs.
Integrating Jolt Physics to the Godot Engine, by extension Godot Jolt, would serve two purposes:
By recognizing Godot Jolt as an officially endorsed add-on, we could battle test Jolt Physics, Godot Jolt and GDExtension.
Then, if everything goes well, we could eventually make Jolt Physics the default engine. But there's a lot of work to do to attain that level.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Ideally, it would be integrated to the engine as an official add-on following this proposal.
But this proposal is essentially about the recognition of the add-on/engine.
If this enhancement will not be used often, can it be worked around with a few lines of script?
One does not simply maintain a physics engine with a few lines of script.
Is there a reason why this should be core and not an add-on in the asset library?
Jolt Physics and Godot Jolt are destined to be more than only be a simple add-on in the asset library.
The text was updated successfully, but these errors were encountered: