Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
April 24, 2014
arrowPress Releases
April 24, 2014
PR Newswire
View All

If you enjoy reading this site, you might also want to check out these UBM TechWeb sites:

Distributed physics: the key to online game simulation
Distributed physics: the key to online game simulation Exclusive
July 12, 2012 | By Staff

July 12, 2012 | By Staff
More: Social/Online, Programming, Exclusive

In a new feature, Roblox's physics and networking lead, Kevin He, writes how the online game's tech "allows us to scale to an almost infinite number of physically simulated bodies without degrading physics performance."

In 2010, the online game -- which has some similarities to Lego and allows players to build large physics objects from blocks and even write Lua scripts to interact with them -- shifted to a distributed physics model.

"While a centralized model works on a small scale -- meaning few players, few physics calculations or few simulated parts -- Roblox's implementation wasn't made to stack up against our growth and increasingly complex physics," writes He.

In the new version of the tech, the server offloads computation of physics objects to nearby players while retaining control over the simulation of objects they aren't near.

"Such distributed architecture allows us to scale to an almost infinite number of physically simulated bodies without degrading physics performance," He writes.

How does it work? "We implemented load-balancing algorithms to shrink or grow the region size of each player, based on their computation power and network bandwidth. Players with slow machines or internet connections will generally simulate fewer physical objects; the opposite is true for players with fast connections and hefty rigs," writes He.

The full feature contains the details of how this system was implemented, along with other solutions for online physics, and is live now on Gamasutra.

Related Jobs

Infinity Ward / Activision
Infinity Ward / Activision — Woodland Hills, California, United States

Principal / Lead Rendering Engineer
Gearbox Software
Gearbox Software — Plano, Texas, United States

Graphics Programmer
Turtle Beach
Turtle Beach — San Diego, California, United States

SOAR Inc. — Mountain View, California, United States

Unity 3D MiniGame Programmer (and Designer)


Dave Kay
profile image
Coming from a gamer background... I'm wondering how you would incorporate integrity checking into such a system.

What prevents someone from hacking their client, and abusing the simulation? I'm not familiar with the actual product, so it's entirely possible that there's no real benefit to doing so, thus it's unlikely anyone would bother... but if, for example, you wanted to use such techniques in a game where 'cheating' could provide benefits...

Kevin He
profile image
Great question. Security is always a challenge to distributed simulation. In general we want to do client side simulation for rendering the animation details and server side validation for key metrics such as player move speed and position. For validation you do not need do it at high frequency and only a subset of physics properties need to be validated.

profile image
Hi Dave,

It's a very good question, however if the architecture supports arbitrary task allocation to other players then it's not too hard to put sanity checking and verification into the algorithm. Particularly with physics calculations that are going on every frame, you don't need to check all of them, just a randomly determined subset. This can flag up unexpected results pretty fast.