I don't think we'd force everyone to use the same exact simulation
engine implementation. But certainly any given sector or world or group of
objects should be operating on the same model of physics.  In designing
it we ought to keep in mind some wiggle room for differences in
implementations, but if people want to have bizarro physics experiments,
it's up to them to keep that from confusing the rest of their world
that's trying to operate normally.

Reed

On Wed, Feb 28, 2007 at 12:54:40PM +0100, Karsten Otto wrote:
> In all this discussion I am not quite clear about the nature of the  
> physics simulation. Do you expect that all sites adhere to the same  
> simulation system (the "VOS physics")? Or are sites allowed to handle  
> physics in their own individual ways ("site physics"), or even not at  
> all?
> 
> If you assume the first, VOS becomes yet another closed system...  
> duh. However, you have at least a common grounds on which to work,  
> regardless whether the sector does the simulation, or each object by  
> its own as you discussed.
> 
> If you assume the second, you get a great deal of flexibility, but  
> wind up with a semantics problem that makes physics-per-object nigh  
> impossible and even physics-per-sector quite difficult:  A physics  
> simulator must *understand* the physics parameters of each object, or  
> at least a viable subset of parameters. Consider the case where one  
> object has elasticity but no mass, since it its original environment  
> it could never be pushed around. Another object has mass but no  
> elasticity, since its home environment physics system does not handle  
> it. Now both happen to collide in a third environment... what happens  
> now, assuming the environment understands a) only mass, b) only  
> elasticity, c) both?
> 
> Regards,
> Karsten Otto
> 
> 
> Am 28.02.2007 um 08:32 schrieb Ken Taylor:
> 
> > Peter Amstutz wrote:
> >> On Tue, Feb 27, 2007 at 10:14:51PM +0100, Benjamin Mesing wrote:
> >>> On Tue, 2007-02-27 at 11:03 -0500, Peter Amstutz wrote:
> >>>> On Tue, Feb 27, 2007 at 09:03:44AM -0500, Reed Hedges wrote:
> >>>>
> >>>>> Each object should be internally responsible for deciding how it
> >>>>> responds to physical forces (messages requesting movement), I  
> >>>>> think.
> >>>>> This would be ideal, at least.  It allows you to distribute  
> >>>>> physics
> >>>>> computation load by just distributing objects on different sites
> >>>>> (servers).    Will this work?   Will it work when an object a  
> >>>>> on Site A
> >>>>> is moved, detects its collision with object b on site B, sends  
> >>>>> it a
> >>>>> force message, etc.?
> >>>>
> >>>> There's two problems with that: [..] the second is basic
> >>>> Newtonian physics, that for each action there is an opposite  
> >>>> reaction,
> >>>> so if I push on a box, the box also "pushes back"
> >>>
> >>> I do not see the problem here. Reed was saying, that the object  
> >>> should
> >>> decide how it *responds* to force. If e.g. a humanoid object  
> >>> wants to
> >>> push a box, it sends a force message to itself and the object.
> >>
> >> The problem is network lag between when I start to push on the box  
> >> and
> >> it actually responds.  Is a "force" message an instantaneous  
> >> impulse, or
> >> a force vector applied over time?  If it's an instantaneous  
> >> impulse then
> >> I'm going to bump objects along rather than pushing them smoothly,  
> >> but
> >> if it's applied over time, then you might find that lag has caused  
> >> you
> >> to push that box right over a cliff.
> >
> > I think the problem can be worse than that... let's say there's two  
> > balls,
> > each one owned by a different node, and they're on a collision  
> > course. Each
> > node sees a lagged version of the other ball, and so they will each
> > calculate a different point of collision, each thinking their own  
> > ball is
> > further along than the other side.
> >
> > In other words, at the pont of collision, Node A might see this:
> > -->-->-->AB<--<--
> >
> > While node B sees:
> > -->-->AB<--<--<--
> >
> > Now, what happens? Let's forget about the "force" thing for now,  
> > and just
> > have each node send out the state of each of its objects (position,
> > momentum).
> >
> > A sends out "I'm at position 5"
> > B sends out "I'm at position 3"
> >
> > ... oops, they just went right through each other.  If your  
> > timestep is
> > smaller, they might instead get stuck in each other, or your collision
> > response algorithm on each side might send them flying apart at a  
> > humongous
> > velocity. None of those three are very good outcomes, but I can see  
> > them
> > being all too common in a distributed simulation like this.
> >
> > Though.... it still might be worth hacking together a test case to  
> > see what
> > happens :)  But only after server-synchronized physics is working  
> > properly
> > in the first place.
> 
> 
> _______________________________________________
> vos-d mailing list
> vos-d@interreality.org
> http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d

_______________________________________________
vos-d mailing list
vos-d@interreality.org
http://www.interreality.org/cgi-bin/mailman/listinfo/vos-d

Reply via email to