I've started writing up a requirements document for VOS. While we've
had unstructured TODO lists in the past with various ideas for
features, we've never sat down and tried to document exhaustively what
exactly it is that we want VOS todo. I think having it written down
will help us get on the same page with regards to what the ultimate
goals are. It's also necessary for planning, and for connecting
features in the actual design to specific capabilities we want.
By the way, I've started referring to the overall 3D platform (but
particularly the end-user browser application) as Interreality 3D.
This means I're retiring the old name Ter'Angreal, at least in terms
of the public branding. The name may stick around internally as a way
of distingushing the client application model from pieces like A3DL.
Everything is getting rewritten (again) for s5 anyways.
Why am I working on all this documentation stuff instead of coding?
Well aside from the reasons stated above, I'm working on finding funding
to be able to start Interreality Consulting, which will enable me to
work on VOS full time. So I see this as a time investment now that will
help things to proceed more smoothly down the road. Also, I wanted to
start documenting the proposed design of s5, and the best way to do that
is to be able to connect each design decision to fufilling a specific
requirement.
So, here's the requirements. Comments and additions are welcome -- this
is a first draft and I'm sure there are lots of oversights. If you have
a pet feature you'd like to see, now is the time to get it in so it can
be considered seriously later on.
Table of Contents
1. Requirements
1.1. Mission Statement
1.2. Multiuser Requirements
1.3. Online Networking Requirements
1.4. Platform Requirements
1.4.1. Scripts
1.4.2. Interactivity
1.4.3. Authoring
1.5. 3D Graphics Requirements
1.5.1. Meshes and Effects
1.5.2. Avatars
1.5.3. Animation requirements
Version 0.30.0
_
Chapter 1. Requirements
An unsorted list of all the thing we want Interreality 3D to
do.
_
1.1. Mission Statement
Develop a free software platform for multiuser, online,
collaborative 3D applications.
What do we mean by this?
Free Software
Interreality 3D will be released under a free software
license such as the GPL or LGPL.
Multiuser
Interreality 3D will allow many simultaneous users that
are all able to see and interact with each other, and
share a synchronized view of what is going on in the
virual space.
Online
Interreality 3D will be Internet-based. This means it
must be robust and usable over the real Internet
where uneven latency, firewalls, packet loss,
heterogeneous networks, narrow pipes, etc are the norm.
Collaborative
In addition to using the space to communicate with one
another, Interreality 3D will allow users to use the
space to create and work simultaneously on projects and
documents.
Platform for ... 3D applications
Interreality 3D will not be limited by focusing on a
single-purpose application but rather will be an
engine or platform that enables development of many
types of 3D applications. This will include 3D games,
social spaces, scientific visualization and education.
_
1.2. Multiuser Requirements
Users shall be able to communicate using typed text messages.
Messages may be sent privately to a single other user, to
users in the local vicinity, or broadcast to the entire
virtual space as appropriate.
Users shall be able to emote text descriptions of their
actions.
Users shall be able to use VOIP to communicate in the 3D
space. To promote a sense of immersion, audio will be
spatialized so that they appear to come from the avatar.
Users shall be able to establish accounts which persist when
the user is not logged in.
Users shall be able to securely authenticate their identity to
the server.
At the discretion of the system administrator, users may be
restricted in what they can do. The system shall have a
permissions or capabilities architechture in place that
concretely expresses how users are able to interact with the
system.
The system administrator shall be able to lock out or delete
user accounts at any time.
Users shall be able to have inventories of objects they own,
and transfer virtual world objects to other users. The
specifics of inventory management should be left up to
application logic.