 |
NG Design Document/Requirements
From Rex community wiki
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
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
- reX on OpenSim
- other protocols on OpenSim (such as SL, vastpark, or MXP)
- 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
|
 |