Regions: Difference between revisions

From Open Metaverse Wiki
(Basic structure)
(Basics of login)
Line 5: Line 5:


==Standard sized regions==
==Standard sized regions==
TBD
The standard region size is a 256 meter square. This is the only size supported by Second Life.


==Varregions==
==Varregions==
TBD
Open Simulator supports variable sized regions. These are usually (always?) multiples of 256 meters on a side.


=Initial connection to a region=
=Initial connection to a region=
Line 14: Line 14:


==Login to the first region==
==Login to the first region==
TBD
The login process starts with an XMLRPC request to the login server. On a successful login, an XML set of key-value pairs is returned, which includes, at least:
 
* seed_capability -- the URL for the initial region used to query for more capability URLs.
* secure_session_id -- a unique UUID for the current session. Unclear what this is for.
* circuit_code: Self::get_key_i64(&login_reply, "circuit_code")?.try_into()?,
* sim_ip -- the IP address of the initial region server. This is currently IPv4 only.
* sim_port -- UDP port, to be used with sim_ip, for receiving and sending UDP messages.
* session_id -- UUID of the current session.
* agent_id -- UUID of the avatar logging in. This is the avatar's permanent identity.
* message -- Message to display to the user at login. Usually a message of the day or some such.
* first_name -- First name of user/avatar.
* last_name -- Last name of user/avatar.
* start_region [x, y] -- world coordinates of the southwest (0,0) corner of the initial region.
* look_at [x,y,z] -- unit vector indicating the initial direction of view.
 
Note that this information does not contain the initial location of the avatar. That reaches the viewer via an object update to an object with the same UUID as the agent_id. An implication of this is that the viewer doesn't know where the avatar is at startup, yet it will have to send an agent update before it knows that. This causes a race condition in interest list updates.


==Teleports==
==Teleports==

Revision as of 03:07, 24 August 2023

Introduction

Subjects related to regions.

Types of regions

Standard sized regions

The standard region size is a 256 meter square. This is the only size supported by Second Life.

Varregions

Open Simulator supports variable sized regions. These are usually (always?) multiples of 256 meters on a side.

Initial connection to a region

TBD

Login to the first region

The login process starts with an XMLRPC request to the login server. On a successful login, an XML set of key-value pairs is returned, which includes, at least:

  • seed_capability -- the URL for the initial region used to query for more capability URLs.
  • secure_session_id -- a unique UUID for the current session. Unclear what this is for.
  • circuit_code: Self::get_key_i64(&login_reply, "circuit_code")?.try_into()?,
  • sim_ip -- the IP address of the initial region server. This is currently IPv4 only.
  • sim_port -- UDP port, to be used with sim_ip, for receiving and sending UDP messages.
  • session_id -- UUID of the current session.
  • agent_id -- UUID of the avatar logging in. This is the avatar's permanent identity.
  • message -- Message to display to the user at login. Usually a message of the day or some such.
  • first_name -- First name of user/avatar.
  • last_name -- Last name of user/avatar.
  • start_region [x, y] -- world coordinates of the southwest (0,0) corner of the initial region.
  • look_at [x,y,z] -- unit vector indicating the initial direction of view.

Note that this information does not contain the initial location of the avatar. That reaches the viewer via an object update to an object with the same UUID as the agent_id. An implication of this is that the viewer doesn't know where the avatar is at startup, yet it will have to send an agent update before it knows that. This causes a race condition in interest list updates.

Teleports

TBD

Adjacent regions

TBD

How viewers find out about adjacent regions

TBD


Region crossings

TBD