31 User and User Interface
/[TODO/]
A user is an being that must own or have access to an interface, and may have an inventory. Concretely, users include, but are not limited to, human beings, other intelligent beings, programs.
Interface
An interface is the input from a user to space and output to a user from space. The input from a user is a set of events that can trigger a set of corresponding functions known as interactions that changes the space. The output to a user is what user experienced from the space.
Camera
Each user may be associated with a camera. The camera can be moved in response to interface interactions and serves as the user’s primary visual viewport.
External interface
There are predefined sets of external interfaces commonly available on different platforms:
- Desktop:
- Mouse click (left or right) (at a place)
- Mouse drag (along a path)
- Keyboard input (with some characters)
- Mobile:
- Single tap and multi-tap (at places)
- long tap (at a place)
- Tap and drag (along a path)
- On-screen keyboard input (with some characters)
- System / Null users:
- System interface: may monitor user-defined events occurring in the space or inventory as interfaces.
- A null user is a system user that is implemented in a non-explicit way.
Avatar interface
The avatar interface has two layers: the control layer and the avatar layer.
The control layer is the external interface. When triggered, it calls an interaction function to control the avatar and perform a behavior.
The avatar’s behavior then acts as an interface in the avatar layer. Common behaviors include:
- Moving (towards a direction or along a path)
- Standing (at a location)
- Engaging (with an object, self, or another avatar, may with options)
Inventory
An inventory is a list of items associated with a user. It represents the set of artifacts currently held by the user.
An inventory may include special slots that are monitored by system users. These are sometimes referred to as equipment slots or state slots.
In implementation, inventory elements may correspond to items or tokens stored in a user's wallet, or to contextual contents such as a backpack.
Item
Items are typically Artifact objects,
but may be any object.
They can also be monitored by system users.