My Message close
GAME JOBS
Latest Blogs
spacer View All     Post     RSS spacer
 
May 21, 2013
 
Using Small Studios As Stepping Stones In Your Career [1]
 
How Can You Find Jobs At Blizzard if You're an Artist?
 
Let’s produce HTML5 games with a serious approach.
 
An Object Of Lust [1]
 
Gamasutra Blog Guidelines - Updated and open for discussion [13]
spacer
Latest Jobs
spacer View All     Post a Job     RSS spacer
 
May 21, 2013
 
Trendy Entertainment
Community Manager
 
Six Foot
Community Manager
 
MegaMada
Lead Game Designer
 
Amazon Game Studios
Software Development Engineer, Game Technology
 
Amazon Game Studios
SDE Lead, Game Engine Evangelist
 
Sojo Studios
Generalist Game Engineer
spacer
Latest Press Releases
spacer View All     RSS spacer
 
May 21, 2013
 
GAME confirms pre-orders
for Xbox One
 
EA ANNOUNCES BATTLEFIELD
4 FOR XBOX ONE AND...
 
Microsoft unveils Xbox
One: the ultimate
all-in...
 
NEW EA SPORTS IGNITE
ENGINE TO POWER EA
SPORTS...
 
Crytek’s
CryENGINE® 3 Already
Primed for...
spacer
About
spacer Editor-In-Chief:
Kris Graft
Blog Director:
Christian Nutt
Senior Contributing Editor:
Brandon Sheffield
News Editors:
Mike Rose, Kris Ligman
Editors-At-Large:
Leigh Alexander, Chris Morris
Advertising:
Jennifer Sulik
Recruitment:
Gina Gross
Education:
Gillian Crowley
 
Contact Gamasutra
 
Report a Problem
 
Submit News
 
Comment Guidelines
Sponsor

 
Distributed physics: the key to online game simulation
Distributed physics: the key to online game simulation Exclusive
 

July 12, 2012   |   By Staff

Comments 3 comments

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.
 
 
Top Stories

image
Xbox One is Microsoft's biggest move for living room domination
image
Opinion: Xbox One is a desperate prayer to stop time
image
Xbox One isn't always-on but it will require a regular connection
image
Xbox One's preowned games strategy involves a single-use code


   
 
Comments

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.

A S
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.


none
 
Comment:
 




 
UBM Tech