Open Source Platform
for interconnected virtual worlds

NG Design Document/Requirements

From Rex community wiki

Contents

Requirements

Requirements are a list of facets a software system must posses in order to meet the expectations of the users. While that definition is simple enough to state, given that many people do not truly know what their expectations are, gathering requirements is a bit of an art form. To help the process of gathering such elusive information, we often make use of formal Use Cases to illuminate and guide our requirements gathering.

We can also use the proposed User Interaction mock-ups, and their inferences about implementation details, to help build a list of features needed to support those interactions.

Requirements have roughly, two types:

Functional Requirements

These requirements state how the system should function as observed by the outside world. Most often this means how the human user experiences their interactions with the system.

Functional Requirements should never have any technical stipulations, as that is an implementation decision that at this stage would only constrain the solution, possibly making it sub-optimal.

Non-Functional Requirements

Any requirement that is not about functionality. Often these are called constraints, and are usually of a technical nature, such as "the system must interface with our existing FooCorp hardware".

High-level Requirements

Open Source

  • Apache 2.0

Cross-platform

  • OS: Windows, Linux, and Macintosh
  • CPU: Intel Atom, Intel Core+, etc.
  • Graphics hardware: OpenGL-ES, OpenGL, Direct3D
  • Form-factor: Console, PC, Hand-held
  • Input: Mouse/Keyboard, Cell Phone, accelerometer, GPS, haptic devices, etc.

Cross-protocol

  • Real-time 3D:
  1. reX on OpenSim
  2. other protocols on OpenSim (such as SL, vastpark, or MXP)
  3. Custom protocols such as for WoW-style game
  • Use the standard that makes the most sense: HTTP, SSL/TLS, SIP, XMPP, etc

Distributed

  • not controlled by one central authority
  • end-users can run their own worlds, and have a means on connecting with others' in a controlled way
  • no policy is built into the platform, but any policy can be enabled within it

Dynamic and Programmable

  • allows for intuitive in-world user-generated content creation through a GUI
  • allows for powerful 3rd party applications for professional usage
  • supports a wide variety of import/export formats for all steps in the content creation workflow
  • exports a rich API for scripting the internal data/object model, with a large set of events for subscribing to, for a highly customized, highly interactive environment
  • easily customizable User Interface to cater to various specialized use-cases

Extensible

  • Modular design allows 3rd parties to customize platform behavior to specific requirements
  • Modular design accepts new features easily as plugin extensions

Code Quality

  • Code Review through Open Source
  • Security by Design
  • Culture of low tolerance for poor quality
  • Documentation and Unit-tests are part of the patch

Scalability

  • Modular design that accepts the reality of a heavily multi-core future
  • Modular design allows adding and removing components to fit the hardware
  • Modular interfaces abstract out some differences in hardware

Open, Adaptable, and Re-usable

  • allows the creation of an eco-system of open and proprietary research and business

Security

  • must meet corporate and telecom security standards and practises

Supports Professional Game Creation

  • 3D engine supports advanced features like programmable shaders
  • physics supports accurate vehicle animation and other complex objects
  • supports a match-making service
  • supports low-latency messages and traffic congestion handling
  • network protocol is customizable and extensible
  • UI can be specialized for single use
  • allows a large number of users to interact without lag
  • modular architecture should allow hooks for game-logic modules to adapt the system
  • powerful scripting system for fine level control over interactive experience
  • game asset management and distribution service

Supports Content Creation Workflow

  • Supports standard audio, mesh, material, texture, and animation formats
    • 3dsmax, blender, collada, autocad, png, jpg2000, ogg, mp3, ...
  • Supports rudimentary content creation
    • create, delete, position, rotate, attach textures, attach scripts, group objects, ...
  • Support parametric or procedural content creation

Supports Scientific Simulation

  • high precision physics system for sensitive computations
  • high performance for complex simulations
  • language binding to a wide variety of languages used in research, such as python, prolog, and fortran.
  • allow plugin modules for AI or robot control

Supports Education Games

  • support a market for easy-to-deploy add-in content and logic
  • easy to use, intuitive UI capable of use by children or the disabled
  • meets legal guidelines for usability, security, accessibility, etc, for use in schools or governments
  • excellent documentation so as not to distract and frustrate the user

Supports Business Interactivity

  • high quality VoIP and video conferencing, over internet of VPN
  • avatar system for creating realistic, true to life avatars
  • with easy-to-use interface for creating meetings, integration with scheduling software
  • integration with existing corporate authentication and document management
  • built-in gestures and animations for creating the appropriate social atmosphere
  • meets internal IT security and deployment guidelines
  • strong security for potentially confidential discussions
  • means of enabling document sharing and team collaboration
  • comes with deployment and management tools
    • MSI, RPM, DEB packages, management GUI

Supports Telecom roll-outs

  • support a large number of concurrent users on multi-core machines
  • efficiently uses hosting hardware
  • easy to deploy and manage in a tightly controlled environment
  • supports traffic shaping and Quality of Service
  • allows 3D e-commerce applications
  • IPv6, SIP, and other NGN technolgies