[opensource-dev] client-side physics and general relativity
dzonatas at gmail.com
Thu Apr 15 21:57:22 PDT 2010
I want to share a use-case/concept for physic simulation where the
client and sever wouldn't have to send object updates, or at least there
wouldn't be as many updates needed to send from the sim to the client.
Given we can use general relativity more as a mutual agreement rather
than assume it is the only way reality changes; we could further expend
such mutual agreement between a server and client as they simulate
physics. Now don't expect FTL changes for this, yet we can use the same
analogy and define a limit. Let's use one that LL has already defined as
max velocity an object moves through a sim.
Now, let's say we have two objects. Object (A) is within 10m to an
avatar. Another object (B) is 50m away for that avatar. Now, since
object (A) is within a distance an object can move within a second of
max velocity, the client can be given rights to simulate object (A), and
the simulator wouldn't send any updates to the client if the client does
such. Since object (B) is outside the distance of an object can move
within a second at max velocity, the simulator would continue to send
updates to the client about object (b) only if in view (as it does now).
If object (A) and object (B) are static, as in they never move, then the
client would fully control its position within that relative second of
space and all physics. If the avatar bounces off the static object, the
client doesn't need to send updates to the sim unless the object needs
to know if it was touched.
If the objects aren't static or if there are more avatars, then there
are several negotiation and scenarios that could happen, yet let's not
digress immediately away from the basic use-case/concept stated above.
Bottomline, this should be negotiable. The sim may not allow it at all
if if the sim needs full physics control. The avatar may want to only be
in sims that don't take full control of physics. If the client simulates
some objects then the sim is expect to simulate the same objects. The
two simulations should be basically in sync, yet accuracy of being in
sync should be negotiable also.
Relative second of space can be quickly calculated, for example, ( max
diameter of avatar + 1 second distance of max velocity ) * 3.333...
(basically like pi r squared)
More information about the opensource-dev