Alright, here's a second draft of the requirements document, based on
the input I've gotten back so far.
Creating Interreality
Version 0.30.0
Peter Amstutz
Copyright007 Peter Amstutz
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU General Public License,
Version 2 or any later version published by the Free Software
Foundation. A copy of the license is included in the section
entitled "GNU General Public License".
_
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. Basic Requirements
1.4.2. Scripts
1.4.3. Interactivity
1.4.4. Authoring
1.4.5. Behaviors
1.4.6. Audio
1.5. Client Features
1.6. 3D Graphics Requirements
1.6.1. Meshes and Effects
1.6.2. Avatars
1.6.3. Portals
1.6.4. Animation
_
Chapter 1. Requirements
An unsorted list of all the thing we want Interreality 3D to
do. See the Timeline at the end of this chapter for priorities
and scheduling. Compiled from ideas and suggestions by Peter
Amstutz, Reed Hedges, Karsten Otto and Ken Taylor.
_
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.
Respecting the distributed nature of the Internet,
Interreality 3D worlds will be spread across many
hosts, and worlds will interconnect using portals and
hyperlinks.
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. Changes to objects will be communicated
quickly to all online users, permitting real-time
cooperation.
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, commerce, information 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 establish a long-term identity which
persists between logins of the user.
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.
The system administrator shall be able to grant and revoke
privlidges to other users. These privlidges shall include
moderation privlidges that allow silencing, removing or
banning troublesome users.
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.
Users shall be able to save essential information about other
users to create "friends lists".
Users shall be able to subscribe to the status of other users,
such as online, offline, or idle.
Users shall be able to securely verify the identity of any
entities claiming to be their friends.
Users shall be able to establish direct connections to each
other (thus avoiding the server) for the pu