Skip to main content

Blog Archive

ROBLOX Introduces New Physics!

October 27, 2015

by Tim Loduha


Archive

We are excited to introduce the new physics engine, also known as the PGS solver!

The physics engine is responsible for determining how parts move in a ROBLOX  game.  It takes into account how parts are connected with joints and how they collide with each other so that everything moves in a physically realistic way (as seen in this physics demonstration). 

The original solver in ROBLOX computes how joints and collisions work using extremely stiff spring equations.  These equations are solved one by one at a high frequency to determine the motion of parts.  On the other hand, the PGS solver uses a system of equations representing all the parts, joints and collisions and solves the entire set of equations together.

Computing motion with the PGS solver gives us huge improvements in both joint and collision fidelity.  This means that hinges and motors no longer look like they are flexible, with noticeable bending and wobbling.  Collisions will show more precision and stability as well.  You have to see it to believe how awesome physics motion looks using the new PGS solver. 

In addition to providing massive improvements in motion quality, the new solver will allow us to introduce additional joint types not previously possible with the old solver.  Even more physics engine functionality will be coming soon to ROBLOX with mechanical constraints such as universal and prismatic sliding joints.

Here are two great examples of developers using the new PGS solver to power their creations. Peathis’ car that has a working suspension, without any scripting at all, and VolcanoINCs’ working piston engine with a clutch, gearbox and differential.  To use the new physics for your place, go into the workspace properties and enable ‘PGSPhysicsSolverEnabled’:

How to enable the new Physics update on ROBLOX

Try it out and see what you can make!

– Tim Loduha

Have you created something amazing using the new physics tool? Tweet it to us with #ROBLOXdev