How Does Rocket League Keep Physics Consistent?

113.0K views
•
April 24, 2018
by
GDC Festival of Gaming
YouTube video player
How Does Rocket League Keep Physics Consistent?

TL;DR

Rocket League achieves more consistent, controllable physics by using a modifiable open-source engine, a fixed simulation rate, and a 120 Hz physics tick. Psyonix integrated Bullet alongside Unreal Engine 3 for gameplay physics, then tuned the system for fast, responsive vehicles and competitive internet play, accepting greater computational cost in exchange for smaller penetration differences and more predictable collisions.

Transcript

welcome to this presentation of it is rocket science the physics and networking at rocket league you all know the rules by now please silence your cellphone's partway through the talk you will get an evaluation in your email if it's not in your email then check your spam if it's not in your spam maybe GGC doesn't care about your opinion my name is ... Read More

Key Insights

  • Rocket League is designed around responsive control rather than realistic vehicle simulation. Its cars drive and steer quickly, jump, double jump, dodge, use rocket boosters, and combine boosting with aerial control to fly, while the physics must remain consistent enough for players to direct interactions intentionally.
  • Bullet is an open-source physics engine that Psyonix could debug and modify. Access to its source allowed engineers to correct edge-case collision problems and shape the vehicle system around the game's specific requirements, which Jared Cone identifies as a major factor in Rocket League's technical success.
  • Bullet was added alongside Unreal Engine 3's existing physics engine rather than replacing it. The additional engine handles gameplay physics, making the integration narrower and faster. The team had boxes moving after a couple of days and produced a vehicle prototype after roughly another week.
  • Discrete collision detection moves an actor before checking what it intersects. Psyonix chose this approach because it is more performant, but collision depth can vary between simulation steps, changing the calculated impact normal and causing otherwise similar car-to-ball contacts to produce noticeably different ball trajectories.
  • A fixed physics tick uses the same delta time regardless of rendering speed. Rocket League applies this approach to make its simulation deterministic, which supports consistent playback and networking by ensuring physics frames are not calculated with varying time intervals caused by changes in rendering performance.
  • Rocket League runs its physics simulation at 120 Hz, making each frame approximately eight milliseconds. Compared with a slower rate such as 60 Hz, the smaller steps reduce variation in collision penetration, so closely repeated car-to-ball impacts generate more similar impact normals, trajectories, and landing positions.
  • A higher physics rate improves collision consistency at a computational cost. Smaller movement steps limit penetration differences, but running more physics frames makes the simulation more expensive. In retrospect, the engineer wished the team had found another penetration solution, but changing the released game's behavior was no longer practical.
  • Vehicle tuning is a connected system involving torque, tire friction, wheel spin, wheel radius, suspension, gravity, mass, and transmission settings. Altering one element can require retuning others, while the desired result must still provide fast acceleration, sharp steering, vehicle stability, and rapid recovery after leaving the ground.

Explore YouTube Video Summarizer or Get YouTube Transcript Extractor

Questions & Answers

Q: Why did Psyonix use Bullet for Rocket League physics?

Psyonix chose Bullet because it is open source, allowing engineers to inspect, debug, and modify the physics engine when the game encountered unusual collision and vehicle problems. The engine was also suitable for a fast, single-threaded simulation capable of processing many frames together, an ability needed for the networking approach discussed in the presentation. Jared Cone considers engine modifiability one of the largest contributors to the game's technical success.

Q: How was Bullet integrated with Unreal Engine 3?

Psyonix did not completely remove or replace the physics engine supplied with Unreal Engine 3. Instead, the team added Bullet as another physics engine and assigned it responsibility for gameplay physics. This limited integration made the work less daunting than a complete engine replacement. The developers had boxes moving around a level within a couple of days, then built a vehicle prototype in roughly another week.

Q: Why does Rocket League use a fixed physics tick rate?

A fixed tick rate gives every physics frame the same delta time, regardless of how quickly the game renders visual frames. This makes the physics simulation deterministic and therefore more suitable for repeatable behavior and networking. Without a fixed interval, changing frame durations could influence simulation results. The presentation recommends fixed-rate physics for physics-driven games because determinism helps both replayability and online synchronization.

Q: Why does Rocket League simulate physics at 120 Hz?

Rocket League uses a 120 Hz physics rate to reduce inconsistencies produced by discrete collision detection. At slower rates, objects travel farther during each simulation step, so a car may penetrate the ball by substantially different amounts in nearly identical tests. Those penetration differences change the calculated impact normal and ball trajectory. Smaller 120 Hz steps produce more similar contacts, although the higher rate makes physics processing more expensive.

Q: How can nearly identical hits produce different ball trajectories?

With discrete collision detection, the car first moves and then the engine checks for intersections. Moving the car's starting position by only a small amount can determine whether contact occurs during one step or the next. When contact happens later, the car may penetrate more deeply into the ball. The vector associated with the impact then points in a different direction, producing a different trajectory even within an otherwise deterministic simulation.

Q: What is the difference between discrete and continuous collision detection?

Discrete collision detection moves an actor and then searches for objects it intersects. Continuous collision detection instead looks for potential collisions before completing the movement. Rocket League uses the discrete method because it is more performant. The tradeoff is that an actor can move into another object between checks, creating penetration whose depth varies according to positions and step size, which can affect the resulting collision direction.

Q: Why is tuning a physics-based vehicle complicated?

Vehicle behavior depends on several connected variables rather than a single speed value. Adding wheel torque relies on tire friction, while friction changes with wheel spin. Spin depends on wheel radius, suspension affects whether tires remain in contact with the ground, and gravity and mass influence nearly every driving behavior. Changing any of these elements can force designers to retune other values and accept compromises among competing goals.

Q: What goals guided Rocket League's vehicle tuning?

The vehicle system needed fast acceleration and braking to maintain a quick style of play, as well as sharp steering for immediate control. At the same time, cars had to remain stable and avoid leaving the ground accidentally. When a car did become airborne, it needed a fast recovery so the player could return to the action. These requirements favored controllability and responsiveness over realistic automotive simulation.

Summary & Key Takeaways

  • Psyonix wanted Rocket League to combine fast, responsive vehicles with consistent and controllable physics. The cars accelerate and steer quickly, jump, double jump, dodge, boost, and fly through the air. The technical objective was not realistic simulation, but a competitive game in which players could intentionally influence interactions with the ball and environment.

  • Psyonix selected Bullet because its open-source code could be debugged and modified for unusual collision and vehicle problems. Rather than replacing Unreal Engine 3's original physics system, the team added Bullet as a separate engine for gameplay physics. Boxes were moving within a couple of days, followed by a vehicle prototype about a week later.

  • The game runs physics at a fixed 120 Hz, with each step lasting approximately eight milliseconds. Smaller simulation steps reduce differences in collision penetration, producing more consistent impact normals and ball trajectories. This improves determinism and supports networking, but raises processing costs. Vehicle tuning also requires balancing friction, wheels, suspension, gravity, mass, and acceleration.


Read in Other Languages (beta)

Share This Summary 📚

Explore More Summaries from GDC Festival of Gaming 📚