[Opensim-dev] clients, agents, avatars, ODE

dan miller danbmil99 at yahoo.com
Wed Sep 19 22:17:38 UTC 2007


from my narrow POV as physics guy, what should happen is this:

when a client *really* enters a region, thru logon or across a border,
AddAvatar() should be called, so the avatar can interact with the
environment (walk on terrain, bump into prims/other avs...)

when the client leaves the region, RemoveAvatar() is called to remove it
from the physics for that region.

How the code got into the state it's in, I have no idea.  Some of this was
inherited from pre-sugilite days, when things were mighty different.

I'm willing to get into the logistics of the rest of the codebase to some
degree, but frankly I think my energies are better spent staying focused on
physics issues.  While not ideal, the physics engine plugin API is a
reasonable first pass, and is a good point of interaction between physics
and the rest of the project.

What I think might be helpful would be for me to add debug messages along
the lines of:

[PHYSICS] AddAvatar called; avatar count for this scene is now X
[PHYSICS] RemoveAvatar called; avatar count for this scene is now X

or something along those lines.  Then you geniuses can mull over the code
and mangle it into something that makes sense from the physics angle.

Does this sound reasonable?

-dan


--- Stefan Andersson <stefan at tribalmedia.se> wrote:

> I guess you noticed by now, but I have done extensive restructuring in
> these areas yesterday and today; still, I suspect there is something odd
> (from looking at the code) with the chain of events. Also, we're
> re-creating physActors everytime we move into a region, but we just detach
> it from the physScene, we don't explicitly destroy (close) the old one
> when we leave; which I would suspect a native-wrapper would very much like
> us to.
>  
> /Stefan
> 
> 
> 
> > Date: Tue, 18 Sep 2007 23:00:53 -0700> From: danbmil99 at yahoo.com> To:
> opensim-dev at lists.berlios.de> Subject: Re: [Opensim-dev] clients, agents,
> avatars, ODE> > followup to chat with lbsa71:> > in ClientView.cs, we
> have:> > this.m_scene.AddNewClient(this, false);> > so it's always passing
> child=false. But InitNewClient is called by> AuthUser, which is spawned as
> a thread by ClientView, and... climbing up the> stack of calls, we get
> OnReceivedData creating a new client thread when it> gets a
> UseCircuitCode. This seems to happen once for each region, and I> have no
> idea how to tell what is a child and what is the 'real' client, to>
> hopefully pass it down the call stack or something of that nature.> >
> -dan> > > _______________________________________________> Opensim-dev
> mailing list> Opensim-dev at lists.berlios.de>
https://lists.berlios.de/mailman/listinfo/opensim-dev




More information about the Opensim-dev mailing list