<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'><BR>> Let me try to come up with a few definitions of terms, which doesn't require <BR>> a lot of refactoring:<BR><BR>
Add them to the wiki for further elaboration and discussion<BR>
 <BR>> Sim/Simulator: a program which runs a simulation of objects interacting, <BR>> possibly with the involvement of simulated physics.<BR>> <BR>> Region: a 256x256 wide area, having a terrain and a number of objects, <BR>> interacting<BR><BR>
A region has an (x/y) position in a grid, and a regionhandle.<BR>
A region can also be defined as an IP Endpoint that the Viewer can establish a client connection to.<BR>
I wouldn't emphasis the 256x256 too much, as this is something some of us are looking into tweaking.<BR>
<BR>> A Sim can house multiple regions, and each region can house multiple objects<BR><BR>
Actually, it is the Scene that hosts objects, the Region is a communications layer koncept.<BR>
 <BR>
At the time, we've been keeping things simple by having one region <-> one scene but that is sure to change.<BR>
 <BR>> An object can either be a collection of prims or an avatar<BR><BR>
I guess the term we're using is 'Entity' which is subclassed into ScenePresences and SceneObjectGroups (that has SceneObjectParts)<BR>
 <BR>
A ScenePresence can have an Avatar (if it's the root)<BR>
<BR>> User: This represents a person in the real world, somthing which has an <BR>> email, a username etc.<BR>> <BR>> Viewer: an application which is used to view the state of the simulation. <BR>> Currently I know of three, the LL viewer, the OpenSL test client and <BR>> AjaxLife<BR>> <BR>> Agent: in a way, this can be thought of as a cursor, indicating what <BR>> position inside the simulator, the viewer is observing from., typically a <BR>> viewer will have multiple agents, a primary, often backed by an avatar, and <BR>> multiple child agents, in the neighboring regions.<BR><BR>
An agent has a x/y position within the region; a 'root agent' is in the current region, and the viewer has 'child agents' that listens for changes in neighbouring sims.<BR>
<BR>> Session: Each connection between a viewer and an agent, regardless if the <BR>> agent is the primary or one of the child agents. Personally I would prefer <BR>> that we named child agents as sub-agents, and the sessions between the <BR>> viewer and sub-agents as sub-sessions.<BR><BR>
Wouldn't that be each (authenticated?) connection between an client and a region?<BR>
 <BR>
An unauthenticated connection is called a 'Circuit'.<BR>
 <BR>
What is a 'sub' that a 'child' is not?<BR>
 <BR>> Unless somebody strongly objects to this convetion, I will start using that <BR>> naming convention in my codewriting.<BR>> <BR>> > One thing that we have repeatedly said is that we need to rewrite all the <BR>> > backend servers (ie user server etc) as the current ones are the result of <BR>> > very early work, from before we really knew how a lot of things worked or <BR>> > would work. One of the goals of 0.5 is meant to be that rewrite of the <BR>> > servers and the protocol between them and the regions.<BR>> <BR>> won't that hurt the goal of "frequent releases" ?<BR><BR>
Baby steps, not rewrites.<BR>
 <BR>
/Stefan<BR>
 <BR></body>
</html>