|
- Personal tools
- Navigation
- SEARCH
- TOOLBOX
- LANGUAGES
- Toolbox
|
|
|
Open Source Platform
for interconnected virtual worlds
 |
 |
 |
 |
NG Design Document/Use Cases/World Building
From Rex community wiki
Introduction
This section is for creating content for a 3D virtual space. Dynamic world building is one of the most important use cases for virtual worlds. Compelling content drives usage of a platform, and if creating it is not intuitive , the user-base will remain tiny.
| Use Case Name
|
Create a Primitive Object
|
| Goal
| Create in-world objects without resorting to complicated external tools.
|
| Summary
|
|
| Actors
| User, Agent, Object Storage
|
| Preconditions
|
- User is logged in and is in a space with build permissions
|
| Triggers
| Desire to create simple objects.
|
| Basic path
|
- User enters an explicit build session mode
- User activates a build UI and selects a primitive type of object from a set of "pre-made" objects
- User adjusts attributes of the object, such as size, shape, orientation, and position
- User commits the editing session
- Agent uploads the new object to storage
|
| Alternative paths
|
- User enters an explicit build session mode
- User activates a build UI and selects a primitive type of object from a set of "pre-made" objects
- User aborts the editing session and changes are thrown out
|
| Exceptional paths
|
|
| Postconditions
|
|
| Use Case Name
|
Create an Imported Object
|
| Goal
| Create in-world objects with the help of special-purpose tools.
|
| Summary
| While creating all objects within the client viewer presents the simplest, quickest user interaction, the reality is that realXtend is a platform, and can never compete with professional, special purpose applications. It is better for realXtend to support standard file formats and import towards the end of the workflow.
|
| Actors
| Users, Agents, Object Storage
|
| Preconditions
|
- User is logged in and is in a space with build permissions
- User has created content in specialized application and saved to standard file format
|
| Triggers
| Desire to create complex objects.
|
| Basic path
|
- User enters an explicit build session mode
- User activates a build UI and selects to import from a standard file format
- User enters the file name
- Agent converts the file format into native format locally
- User adjusts attributes of the object, such as size, shape, orientation, and position
- User commits the editing session
- Agent uploads the new object to storage
|
| Alternative paths
|
- User enters an explicit build session mode
- User aborts the editing session and changes are thrown out
|
| Exceptional paths
|
|
| Postconditions
|
|
| Use Case Name
|
Link Objects into a Hierarchy
|
| Goal
| Create easy-to-manage groupings to simplify organization and increase productivity.
|
| Summary
| Hierarchies is a natural an powerful way to organize the world. For example, a car is a car, but it is also the sum of its engine, wheels, seats, etc. We would like to manage those objects on different hierarchical levels.
|
| Actors
| Users, Agents, Object Storage
|
| Preconditions
|
- User is logged in and is in a space with build permissions
- User has created a set of unlinked objects
|
| Triggers
| Desire to create complex hierarchical objects.
|
| Basic path
|
- User enters an explicit build session mode
- User selects a set of objects to link
- Agent visually decorates the set to indicate selection
- User causes them to be linked as siblings
- Agent visually decorates the set to indicate grouping
- Agent visually decorates the pointer to indicate that the grouping requires a parent
- User selects a parent
- Agent visually decorates the set to indicate a hierarchy
- User adjusts attributes of the linked object set, such as size, shape, orientation, and position
- User commits the editing session
- Agent uploads the new object to storage
|
| Alternative paths
|
- User enters an explicit build session mode
- User aborts the editing session and changes are thrown out
|
| Exceptional paths
|
|
| Postconditions
|
|
| Use Case Name
|
Attach an Asset to an Object
|
| Goal
| Create interesting objects by giving them visual, audio, or scripted properties.
|
| Summary
| "Object" is mostly something abstract that takes up space. To make it interesting it should have appearance and behavior.
|
| Actors
| User, Agent, Object Storage, Asset Storage
|
| Preconditions
|
- User is logged in and is in a space with build permissions
- User has existing object he wishes to attach assets to
|
| Triggers
| Desire to create interesting objects.
|
| Basic path
|
- User enters an explicit build session mode
- User selects the object which will receive the asset
- User opens a editing UI and selects the asset from a file, or palette
- User commits the editing session
- Agent uploads the new asset to asset storage, and updates the object in object storage
|
| Alternative paths
|
- User enters an explicit build session mode
- User aborts the editing session and changes are thrown out
|
| Exceptional paths
|
|
| Postconditions
|
|
| Use Case Name
|
Add an Asset of a Custom Type
|
| Goal
| Share a novel type of assets with others.
|
| Summary
| It is extremely difficult to enumerate up-front all possible asset types and all associated metadata for those types. We should adapt to new asset formats by allowing a means of registering a type and associated metadata schema.
|
| Actors
| User, Agent, Programmer, Module, Asset Service
|
| Preconditions
|
- User has privileges on an asset service
- User has knowledge of pertinent asset metadata
|
| Triggers
| Desire to add novel asset types
|
| Basic path
|
- User generates metadata schema which can describe the pertinent features of the asset format
- Programmer creates a module capable of discovering and consuming asset metadata in the Agent
- User selects an asset file from a UI
- Agent sends the asset file to asset service
- Module discovers metadata for that asset file and sends to asset service
|
| Alternative paths
|
|
| Exceptional paths
|
|
| Postconditions
| Agents are able to share and use novel assets.
|
| Use Case Name
|
Change an Object's Physical Properties
|
| Goal
| Create interesting objects by giving them physical properties.
|
| Summary
| Physics computations are expensive, and the more physical properties an object has, the more complicated the computation brecomes. Minimizing the ways in which the dynamics engine interacts with an object when unnecessary, will improve scalability.
|
| Actors
| User, Agent, Object Storage
|
| Preconditions
|
- User is logged in and is in a space with build permissions
- User has existing object he wishes to change the physical properties of
|
| Triggers
| Desire to create more or less dynamic objects.
|
| Basic path
|
- User enters an explicit build session mode
- User selects the object which will change its physical behavior
- User opens a editing UI and selects a physical property to change (such as weight or center of mass)
- User commits the editing session
- Agent updates the object in object storage
|
| Alternative paths
|
- User enters an explicit build session mode
- User aborts the editing session and changes are thrown out
|
| Exceptional paths
|
|
| Postconditions
|
|
| Use Case Name
|
Save a Scene to File
|
| Goal
| Create a portable file representation of a portion of a scene.
|
| Summary
| Creating a complicated scene is hard work, with many intermediary steps. Often we wish to save and reuse the components of scenes, and the simplest and most flexible means is through a serialization to file. That way we can email scenes to others, save backups, and re-use past work.
|
| Actors
| Users, Agents, Object Storage
|
| Preconditions
|
- User is logged in and is in a space with build permissions
|
| Triggers
| Desire to create complex objects from reusable parts.
|
| Basic path
|
- User enters an explicit build session mode
- User creates a series of new linked or isolated objects
- User serializes the editing session to file
- Agent saves a complete copy of any object that has changes during the session to file format, and writes to disk
|
| Alternative paths
|
- User enters an explicit build session mode
- User serializes the editing session to file
- User commits the editing session
- Agent uploads the new object to storage
|
| Exceptional paths
|
|
| Postconditions
|
|
| Use Case Name
|
Load a Scene from File
|
| Goal
| Create a scene part from portable file representation.
|
| Summary
| Creating a complicated scene is hard work, with many intermediary steps. Often we wish to save and reuse the components of scenes, and the simplest and most flexible means is through a serialization to file. That way we can email scenes to others, save backups, and re-use past work.
|
| Actors
| Users, Agents, Object Storage
|
| Preconditions
|
- User is logged in and is in a space with build permissions
- User has created content in scene serialization format
|
| Triggers
| Desire to create complex objects from reusable parts.
|
| Basic path
|
- User enters an explicit build session mode
- User activates a build UI and selects to import a scene serialization format
- User enters the file name
- Agent realizes the objects described in the file, and their relationships
- User adjusts attributes of the scene part, such as size, shape, orientation, and position
- User adjusts attributes of the scene's object sets, such as size, shape, orientation, and position
- User commits the editing session
- Agent uploads the new object to storage
|
| Alternative paths
|
- User enters an explicit build session mode
- User aborts the editing session and changes are thrown out
|
| Exceptional paths
|
|
| Postconditions
|
|
|
 |
 |
 |
 |
|