Open Source Platform
for interconnected virtual worlds

NG Design Document/Functional Requirements

From Rex community wiki

Contents

Introduction

Based on the Use Cases, we can begin to get a picture of how the system should function, and start making lists of features that would be required in order to accommodate the Use Cases.

Basic Avatar Behaviors

  • Movement: walk, fly, run, jump, sit, teleport
  • Other Actions: crouch, crawl, sneak, lean, swim, climb, hang
  • Vehicles: bike, car, boat, air plane, helicopter, animal, parachute
  • Inventory: show, trade, buy, sell, pick up, drop, use, wear, take off, arm, disarm
  • Camera: manual, first-person, third-person, birds-eye, auto-focus, tracking, disembodied, zoom
  • Actions: push, pull, carry, throw, open, close, press, activate, kick, punch
  • Facial Animations: smile, frown, laugh, cry, grimace
  • Body Animations: dance,

On-screen Overlay/Display

  • Downloadable as an asset
  • Traps all input from subsections of the view screen
  • Custom widgets embeddable in structured layouts
  • Custom background images, including semi-transparent
  • Change rendering state while active

Environment and Physics

  • Full day-night settings and effects
  • Weather and other environmental effects: wind, rain, clouds, snow
  • Doors, walls, bushes, pillars, balls, liquids, wheels, and other objects collide realistically
  • Walls and other obstacles occlude effects such as sound, line-of-sight, or particle emission
  • Gravity affects falling, flying, or propelled objects realistically
  • Changes in gravity affect movement
  • Changes in friction over materials affect movement
  • Changes in liquid viscosity affect movement
  • Changes in slope affect affect movement
  • Inertia is present in low friction and gravity environments

Audio

  • Play ambient music based on location
  • Collisions with materials create sound effects

Logic

  • Means of associating new data fields and new logic with in-world objects
    • ex: lock & open container, drag & wind resistance, mana & magic spells, or answer & test
  • Kick or ban players
  • Custom environmental conditions fire custom events
  • Objects are persisted on a server
  • Temporary objects disappear after a time-out

Security

  • All components must support secure data transfer between server-client and client-client
  • User and Group management
  • Fine-grained permissions system
  • Permissions based on fine-grained location
  • Professional IT-level security
  • Land ownership and access control
  • Objects permissions support execute, view, move, delete, modify
  • Telephony (VoIP) security
  • Policy support:
    • Prevent modification of: clothes, land, objects
    • Prevent use of: IM, spatial voice, webcam, video, audio, telephony
    • Force selected avatar model or clothing
  • Remote Policy editor

Server

  • Integration with existing authentication systems: MS Active Directory, OpenID
  • Integration with existing organizational systems: MS Exchange, Lotus Notes, iCal
  • Virtual host support
  • Remote Administration
  • NAT support

Communication

  • text chat (traditional text messages, realtime and offline messages)
  • voice call (voip, telephone call equivalent)
  • video call (voice call with realtime video of participants)
  • 3D text chat (3D avatars for participants, text messages may have 3d location)
  • 3D voice chat (3D avatars for participants, audio data have spatial nature)
  • presence status (of online and offline friends in users friendlists)
  • content sharing (application specific file transfers)

Client Viewer

  • Automatic and manual camera control
  • Global search: history, inventory, contacts
  • Shared, integrated, coherent User Interface for many components
  • Support for other streamed media: audio, video, flash(tm)
  • User can easily import outside content ("drag and drop")
  • Dynamic User Interface: layout or preference can be loaded from an outside source
  • Native interface to Operating System features, such as installed viewer and applications
  • Embedded web viewer can used in 2D or 3D view
  • Multi-protocol and multi-world support
  • Internationalization and Accessibility
  • Can accept novel input devices such as GPS, haptic, force feedback, 3D controller
  • Import data from a wide range or data formats
  • Easy re-branding

Virtual meeting

  • List meeting rooms and users in meeting rooms
  • Control meeting attendance: invited, banned, maximum, minimum
  • Integration with existing calendaring: linking in-world,
  • Search meeting for rooms and users

Gameplay

Physics

  • Shoot with a crossbow, seeing the arrow flying in an arc though the air and hit the wooden target 40 meters away, leaving the arrow on the target
  • Put a cannonball into a cannon, hearing the sound and losing one cannonball from own inventory
  • Use torch on a loaded cannon, the cannon fuse burning for 3 seconds, cannon ball shoots our from the barrel, huge sound, huge smoke cloud.
  • Throw a rock, seeing the rock fly in an arc through the air, hitting the ground, bouncing a couple of times and then staying on the ground
  • Kick a wooden box into small pieces, wood splinters flying everywhere and revealing an ammo box inside it
  • Carry a big wooden box around with both hands
  • Stop carrying a big wooden box, throwing it in front where is continues to fall until it hits the ground or some other object on the way
  • Carry 10 wooden boxes into a pile and jump on top of the pile
  • When player goes under water, the viewpoint gets a blue shade and gets a bit blurry. Player can't see past 30 meters because the water is foggy. There is some plankton in the water, which can be seen especially when player moves in the water.
  • Player looks a virtual television screen which shows a video feed from other part of the level. The video feed is real-time so player sees other players and objects moving.
  • When player runs inside a sewer tube, her footsteps sound metallic. The footstep sound echoes and there is a reverb effect.

Heads-up Display

  • Game Lobby
  • Draw player health bar on the top left corner of the screen
  • Flash the screen red when player takes damage
  • Draw the icon for the selected inventory item icon on the bottom of the screen
  • Draw the overhead map of the area on the right corner of the screen
  • When picking up an inventory item from the ground, show it's name on the screen with big letters for 5 seconds
  • When another player is closer than 30 meters, show her name in text on top of her avatar
  • Show a compass on the screen, rotating according to the view direction
  • When "Piece of paper" is the selected inventory item, draw a piece of paper with text to the screen

Custom Logic

  • Show the statistics screen when the game ends by one player reaching the score limit
  • Teleport all players to a certain location when game time reaches 4 minutes 20 seconds
  • Freeze one player's movement for 1 minute so that she may only change the view direction
  • Kick a player from the server and ban her from returning for 5 hours
  • Write an entry to a log file every time player uses her inventory item
  • Create an NPC character to a certain location and make her walk to the player
  • Open a locked door when half of the players on the server are in front of the door and one of them is carrying a key inventory item
  • Close and lock a door when all players have gone through it
  • When at least 4 players are using pickaxes at the same time on a big rock, destroy the rock
  • Remove all inventory items from all players on the server
  • When players enters the world, give her a pickaxe intentory item
  • Make the player invincible so that she can't take damage from anything
  • Move player to a random predefined spawn point when her health reaches 0

Game objects

  • A flock of 10 birds fly in the air. They change their flying speed and direction from time to time.
  • Small campfire on the ground. When close a fire crackling sound is made. Avatar takes damage when walking into the fire. If avatar stands in the fire for 5 seconds, the fire dies out.
  • A huge fire with a smoke pillar rising to the air
  • Emergency flare, emitting red light and smoke for 30 seconds. The the torch dies out and after 1 minute the used torch disappears from the world.
  • Carryable & breakable wooden box
  • A closed treasure chest. Touching the treasure chest makes the lid open in 2 seconds and a creak sound is made. The lid stays open for 10 seconds and closes slowly after it making a creak sound again.
  • Windmill spinning slowly on top of a hill.
  • Clicking light switch in a dark room turns on the ceiling light and room becomes lightened. Clicking the switch again makes the room dark again and light switches off.
  • A waist-high wooden fence which can be jumped over.
  • Hat on the ground which can be picked up and put on the head. Hat can be then taken off the head and left back on the ground.
  • Poisonous gas cloud moving slowly, if player moves into the cloud she begins to cough. Also her view becomes blurry and darkened. Moving away from the cloud stops caughing, view is clear and bright again.
  • Invisible force field, preventing movement through it for players only. Objects can be thrown through the field.

Non-Player Characters

  • Look at some static object (head and body turn to face the object)
  • Look at player or some other moving object (head and body turn always to face the object, following it's movement)
  • Look at something while moving yourself (head looks at the target while the rest of the body walks and is rotated toward own movement direction)
  • Walk straight to a destination seen from the current location
  • Follow a predefined path to destination
  • Follow player, stopping when player stops and staying always a couple of meters away
  • Follow player, stop to sneeze and then resume following the player
  • Talk to a player (speech sound with text subtitles, move mouth)
  • Do a hand-wave when a player enters a certain location
  • Wait for players to reach a certain location before continuing own actions
  • When player bumps into me, push her away a bit
  • Give player an inventory item
  • Move in any way described by the "Player movement" use cases
  • Move in any way described by the "Player movement with other objects" use cases
  • Become invisible to all players and move on a wooden floor, still making foot step sounds
  • Show as a semitransparent ghost to only one player, while the other players don't see me