Distributed physics: the key to online game simulation
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.