AWG Use Cases
This page will hold all sorts of use cases and should be some brainstorming place. Please add use cases in the form "<Role> <Action>" like "User logs in". If it's a requirement such as "The system needs to support OpenID" write it like that. For now we should aim at one-line descriptions for an overview. For more detailed explanations make the use case a link and explain it there.
Use Cases of the existing system should be marked with an (*) for now. Areas of potential discussion are marked with (??)
Use Case Capturing
We use the defined Components and Roles. "User" refers to an so far undefined entity. This might be some web service client querying for data.
Strategic Scope
- Allow private grids with varying levels of autonomy
- Allow very small scale operation of regions, such as home users
- Preserve the current level of DRM that is provided (??)
- Provide for availability of continuous and portable identity across all domains
- Preserve the micropayment economy (??)
- Create a system that will scale to the numbers expressed in Project_Motivation
System Scope
The use cases below are system scope
- User creates a new identity (*)
- User updated identity (*)
- User deletes identity (*)
- User retrieves identity information (*)
- User adds a verification method to an identity (age, real name, financial, part of a company, ...)
- User finds an existing identity (multiple criteria) (*)
Administrative Use Cases
- Administrative User finds an existing agent (multiple criteria) (*)
- Administrative User creates a new agent (*)
- Administrative User deletes an agent (*)
- Administrative User edits an agent profile (*)
- Administrative User "governs" an agent (*)
- Ban
- Kick
- CSR Actions
Information Use Cases
- User retrieves profile information about an agent (*)
- User retrieves identity information about an agent (age, RL info, what about permissions here?)
- User retrieves presence (online) information about an agent (*)
Basic Use Cases
- Agent logs in (*)
- Agent logs out (*)
- Agent sends an instant message to a user (*)
- Agent says something on public chat (*)
Inventory Use Cases
- return inventory for an agent
- store inventory for an agent
- Manipulate Inventory
- Move/Copy items/folders (*)
- Delete items/folders (*)
- Rename items/folders (*)
- Share items/folders
- Agent rez's something in a Region (*)
- User subdivides land within a region (*)
- Administrative User retrieves debugging information from a region
- Script Activity (*)
- Physics Activity (*)
- Agent Activity
- Statistics (*)
- Administrative User manipulates Access Control List (*)
- Use of unattended security scripts to stop griefer attacks (??)
- Secure vehicle and AV sim crossings (*)
Interactive TV
- This use case is the SL-specific version of Use_Cases#Guild Wars "Observer Mode" like setup -- Interactive TV below:
- A user logs in and runs the normal 3D graphic viewer.
- Some regions provide a new permission, ObserverMode_Permitted. The user chooses a landmark for one that does.
- A new operation Teleport_As_Observer(Landmark) atomically activates Observer Mode and teleports agent to Landmark.
- When in Observer Mode, the agent's avatar is not instantiated at the point of presence.
- When in Observer Mode, the agent is listed on an Observers_List for that region.
- When in Observer Mode, the agent is not detectable by any other means (eg. sensing). (very important for scalability)
- When in Observer Mode, all camera controls and navigation work exactly as in normal mode.
- Since the agent is not instantiated in Observer Mode, there is no possibility of interaction with any object or attachment.
- In all other regards, all objects, agents, and everything else in the region are treated normally.
- When in Observer Mode, nothing beyond the boundaries of the current region is detectable, to prevent covert spying.
- A region permitting Observer Mode explicitly places everything on display to the world, by design and on purpose.
- Exitting the region by any means cancels Observer Mode for the user, unless it is to another such region.
- The sum total of these features and properties is that client-side obstacles to arbitrary scalability for events disappear.
- Expected examples of this use case include mass live music events, spectator sports, reality TV, and online education.
- Personal navigation/camera controls distinguishes this method of viewing events from passive video and television.
Non-Interactive TV
- Disabling navigation/camera controls in Interactive TV turns that use case into passive viewing for non-interactive experiences.
Content Development Use Cases
- Development, debugging, instrumenting (??)
- Publishing and authentication(??)
- Logging usage, behavior and errors(??)
- Customer support and product maintenance(??)
- Sales, licensing, royalty mechanisms(??)
Some possible futuristic scenarios
(add here what scenarios are completely different but maybe should still be possible with this new architecture. This is mainly to get our thinking broader. These can also be described by some bullet points and from these we should later on construct use cases).
EVE Online like setup
- regions are solar systems
- avatars do not (yet) exist and agents are represented by space ships (some sort of avatar)
- objects are planets, space stations, asteroids, etc.
- regions are connected by portals
- regions do not have a predefined size
- objects on regions are mostly fixed
- most of the transactions will be from agents to agents (might be bots)
Earth & Beyond like setup
- both space and land regions
- avatars exist on land regions (in E&B it was only stations)
- space and land regions connected by a station portal
- space regions connected by warp portals
- space features simliar to EVE Online setup
- underwater, underground building support
- different physical constants, e.g. gravity, wind pressure, speed of light(??)
Guild Wars "Observer Mode" like setup -- Interactive TV
The Observer Mode (OM) in Guild Wars (currently the second largest MMOG by recent reports on Slashdot) provides an exact Use Case for interactive event observation without avatar visibility. This bypasses entirely nearly all of the client-side issues arising from scalability for events. The following features are relevant:
- User must already be logged in before OM is selected in the UI.
- A (huge) menu of candidate PvP battles and tournaments of various kinds is offered for selection.
- Upon choosing a venue, the user is teleported to it and the viewer mode switches to OM.
- When in OM mode, the camera can be made to follow any participant present in the venue.
- All personal camera controls are still active, so the event can be examined from any perspective.
- No observer in OM can see any other observer in OM --- they are all just invisible observers.
- Vicinity chat is read-only: all event chat can be seen if desired, but observers cannot interfere.
- Recorded events can be replayed for observation, yet each observer's camera experience is different.
- Forcing a delay w.r.to realtime is used to avoid tournament cheating through external assistance/direction.
- Every detail of the event is visible to observers as if they were physically present, including for example every aspect of skills activation for attack and defence, so OM offers supreme battle training. This viewing mode will probably be collosal in education and entertainment.
- This is a form of interactive TV. Easy prediction: Reality TV in which the viewer manipulates the camera will be popular.
- A variant of this: view without being able to move the camera (static observer mode?). This is similar to watching a video on YouTube but with real time created content. Advantage: heavy proxying/caching possible as all observers get the same data. Examples: speeches, live performances where the camera is focussed onto a stage or a single person/event.
- This Guild Wars-based use case has been developed into a proper SL use case now, Interactive TV.
Corporate subgrid setup
In this scenario e.g. corporate entities might want to have their own protected subgrid for only their controlled agents but these agents might still be allowed into a more public grid. This might also need to support:
- a means of defining on which region a particular object from a particular agent is allowed to be rezzed (agent needs to not be allowed by agent provider to rez certain agents on public regions. A region might also want to define objects from which agents are allowed to be rezzed).
- a means of defining who is allowed on which region from the region point of view (e.g. the corporate grid does not allow public agents)
- a means of defining who is allowed on which region from the agent point of view (e.g. the public grid does not allow corporate agents or agents it does not know about)
Google Earth like setup
- There are layers of objects/information on one defined region (=earth)
- A viewer can decide which layers to load/show
- one could think of these layers as layered regions maybe
- Agents do not necessarily be represented in a region (login-less portal into regions)
Login-Less view of Regions
- via some browser plugin, interactive 3d views of regions could be visible from any web browser, embedded in pages like youtube videos
- Residents could use SL as a platform to create 3d content for viewing in other applications independent of the client
- Residents could build mini applications for other popular sites such as facebook or existing CMS systems
- enhancing existing e-learning content by adding interactive 3d views of environments/objects created and hosted inside SL without requiring presence.
Off-line but Synch-able grids
- User would be able to install a local simulator which would be a snapshot of a particular sim. Most likely a privately owned one.
- User would be able to use local simulator off line. For instance on a sales call where no network is available.
- User would then be able to re-connect later and have simulator re-synch with "online" version.
Misc Use Cases
Persistent Session Data via llHTTPRequest()
- a viewer can store session information received by llHTTPRequest()
- residents could then build applications in world that would rely on persistent session data (cookies) such as open ID.
- posting a Jira from in world
- sending inventory items to an external wiki
- logging in and updating any existing CMS without forcing a rewrite of the CMS authentication logic specifically for LSL.