Releases: ZealanL/RocketSim
Releases · ZealanL/RocketSim
RocketSim v2.1.1
This update fixes several bugs from v2.1.0, improves general performance, and adds a few nice quality-of-life features:
Bug fixes:
- Fix single-dynamic collisions not updating AABB of dynamic objects
- Fix rare crash where custom broadphase fails to reject null collision objects
- Fix custom broadphase not bleeding static meshes to surrounding cells
Performance:
- Optimize btConvexPlaneCollisionAlgorithm for sphere and axis-plane collisions
- Reorder TestTriangleAgainstAabb2 dimension checks to very slightly improve performance
- Disable bullet profiling to improve performance
- Optimize custom broadphase to not include triangle meshes in cells where there are no triangles
- Add slight improvements to performance of sphere-triangle collision (thanks VirxEC)
Quality of life:
RocketSim v2.1.0
This is a major update for optimization, with many other small improvements.
RocketSim is now around 2x faster in general.
Changelog:
- Faster Custom Broadphase Implemented:
- A new custom broadphase collision system using a fixed-size spatial division grid, written for RocketSim specifically, which massively out-performs the previous stock dynamic bounding volume tree broadphase in BulletPhysics. This deprecates the suspension collision grid, which has been disabled at compile time.
- AABB Caching For All Objects:
- Added AABB caching for all BulletPhysics objects, massively accelerating frequent AABB checks.
- Fixed Suspension Tracing Against Own Hitbox:
- Fixed a silly issue where rays from suspension were often being checked against the hitbox of the car from which they were casting.
- Sphere Orientation Updates Disabled (By Default):
- By default, the ball will not update its orientation (if it is a sphere), because updating the rotation matrix from angular velocity is expensive.
- Added ArenaConfig:
- A new structure for configuring arenas at creation only, seperate from
MutatorConfig
- A new structure for configuring arenas at creation only, seperate from
- Various Other Performance Improvements:
- Various aspects of the simulation, particularly within BulletPhysics, have been heavily optimized and improved.
- Added Useful CarState Fields and Functions:
- A few useful helper functions and state variables have been added to
CarState
;wheelsWithContact
(array),airTime
,HasFlipReset()
,HasFlipOrJump()
, andGotFlipReset()
.
- A few useful helper functions and state variables have been added to
- Added PhysState Base Type:
CarState
andBallState
now both extend from a commonPhysState
struct, with some additional utility functions such asPhysState.GetInvertedY()
.
- All RocketSim types are now within the RocketSim namespace (can be disabled at compile time)
- Fixed GameEventTracker calling null callbacks
- Fixed boost pad update issues in hoops
- Fixed demoed cars updating the suspension collision grid
- Fixed demoed cars adding extra hit force to the ball
- Physics rounding removed (did not help with accuracy and only worsened performance)
RocketSim v2.0.0
Changelog:
- Added Extra Modes: Hoops, Heatseeker, and Snowday are all fully-functional
- Added
BallPredTracker
: Efficient optional external tracker that manages ball prediction - Added
GameEventTracker
: External tracker for shots, saves, passes, and goals, very customizable - Added Arena Memory Weight Modes: Arena
memWeightMode
allows you to reduce memory usage of the arena instance at a slight performance cost - Suspension accuracy slightly improved
- Wavedash accuracy significantly improved
- Flip accuracy significantly improved
- Many other small improvements/fixes not listed here
RocketSim v1.2.0
Changelog:
- Mutators: Each arena now has a
MutatorConfig
which has >20 different adjustable parameters for various aspects of the simulation (gravity, boost consumption rate, bump force scale, etc.) - Many Accuracy Improvements: More fixes and additions to various aspects of car and ball physics have significantly improved the average accuracy of a simulation compared to actual Rocket League
- Bump Callback: There is now a callback you can hook for when bumps/demos occur
- Bullet De-Virtualization: More BulletPhysics classes have been de-virtualized for a slight performance benefit
- Safe Normalization: Unsafe vector normalization is no longer in use for things like car-ball hits, which lead to NaN physics values in very rare cases
- Various Math Utilities Added: Several new math functions are available for use like
RotMat::LookAt()
andAngle.GetDeltaTo()
, as well as some operator overloads - CPU Cache Improvements: Many former object references have been changed to no longer be dynamically allocated, this has some minor performance improvements as the memory is closer together and therefore is more likely to be within a lower CPU cache level
RocketSim v1.1.0
Changelog:
- New Documentation: Available at https://zealanl.github.io/RocketSimDocs/
- Major Performance Improvements: Implement new boostpad overlap grid and suspension collision grid to make simulation much more efficient
- Bullet Purge: Significantly reduce source size by removing 150+ unused BulletPhysics files, removed almost all BulletPhysics serialization and debug drawing as well
- New Gamemode: Add THE_VOID gamemode (empty space without arena/boost pads)
- Improve 60tps simulation fidelity
- Improve CMakeLists.txt
- Various bug fixes
RocketSim v1.0.0
The first official release of stable RocketSim.
All simulation is working as intended at a decent level of accuracy, serialization is supported.
Optimization is mostly nonexistent and will be added in future releases.