-
Notifications
You must be signed in to change notification settings - Fork 63
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
Remove DOTS in favor of Jobs+Burst. #459
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Kicker mesh data and flipper correction state now use unmanaged data through pointers.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
So, DOTS v1.0 came out earlier this year. There are two major things that changed:
Dynamically creating a sub scene when importing a table seems impossible. Dynamically adding entities to the sub scene without the hybrid renderer (now "Entities Graphics") also seemed impossible. Baking wouldn't be available when loading a table during runtime.
There are probably workarounds for all of this, but DOTS didn't seem a right fit since quite a while, for the following reasons:
Enter the post-DOTS era. The physics loop is now one single bursted job. Data is still packed into structs and available through a
PhysicsState
that is passed to the systems that need access to it. Everything is passed by reference, so data is not copied between functions. This turned out to be very fast:13k colliders at 0.2ms per frame.
vpe-collisions.mp4
60k colliders at 1ms per frame.
This was also the opportunity to replace VPX's octree with a faster and easier to use implementation by bartofzo. Tree creation is also insanely fast, allowing us now to introduce dynamic colliders. This will first be dynamic toggles, with the goal of making them fully dynamic, including velocities.
TODO before merge