Difference between revisions of "Infrastructure Guide"

From Virtual World Web Wiki
Jump to: navigation, search
(System Documentation)
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
Following is a list of pages documenting the Virtual World Web infrastructure. Programming guides, API documentation, scripting documentation and more.
+
This is the main documentation for the Virtual World Web infrastructure. Programming guides, API documentation, scripting documentation and more. This guide is split into 3 major sections meant for different audiences.
  
== System Documentation ==
+
==VWW Business Documentation==
Key Concepts
+
High-level summary documents describing the Virtual World Web platform and technologies. These will be best suited to managers, marketing folks, investors, or new team members tying to get a better understanding of the VWW.
*[[Network Architecture]]
+
**[[Layer One]]
+
**[[Layer Two]]
+
**[[Layer Three]]
+
**[[VWW URL]]
+
  
*[[Network Security]]
+
*[[Executive Summary]]
*[[Component System]]
+
*[[Technology Stack]]
*[[Container System]]
+
*[[Layer System]]
+
*[[Transfer System]]
+
*[[Resource System]]
+
*[[Ability System]]
+
*[[World Scripting]]
+
*[[UI Scripting]]
+
**[[UI Editor]]
+
  
*[[Runtime Objects]]
+
==VWW Operating Manual==
**[[Client Connection]]
+
The operating manual for the virtual world web. This area is for scene editors, content creators, world operations, site admins, quest builders, and the like. It will get technical, but will stay away from things that only matter to programmers and stick to "front-end" topics.
**[[Connection Identity]]
+
**[[Participant]]
+
**[[Instance]]
+
**[[ViewInfo]]
+
  
*[[Configuration Objects]]
+
'''Quick Start Guides'''
**[[Securables]]
+
*[[Introduction to the Admin]]
**[[Worldspace]]
+
*[[Working With Worldspace]]
**[[Entities]]
+
*[[Controlling Access]]
**[[Permissions]]
+
*[[Using Curiosity]]
 +
*[[Using the Transfer System]]
 +
*[[Scene Editing In Curio]]
 +
*[[Creating and Importing Unity Scenes]]
 +
*[[Creating and Importing Props]]
 +
*[[Creating and Importing Skinned Meshes]]
 +
*[[Using The Game Cloud]]
 +
*[[Creating Scenes for Curio]]
  
*[[Document Object Model]]
+
'''Client Applications'''
**[[Object Type|Object Types]]
+
*[[Curio]]
**[[Object Template|Object Templates]]
+
*[[Curiosity]]
**[[Object Type Reference|Object Type Referencing]]
+
**[[DOM Attribution]]
+
**[[DOM Curves]]
+
**[[Selectors]]
+
**[[Rich Media Support]]
+
  
== Scripting Documentation ==
+
'''Key Virtual World Web Concepts'''
 
+
*[[Network Architecture]] - A brief overview of the major VWW software components and their responsibilities.
[[Server Scripting]] - Documents the server instance scripting system. From working with the DOM, to using the GameCloud, to working with LayerOne objects like participants, views, and chat channels, it's all here.
+
*[[VWW URL]]s - The Virtual World Web URL specification
 
+
*[[Network Architecture#Layer_One|Layer One]]
[[Curio UI Scripting]] - Documents the Curio UI scripting system. (Ian? what are you doing this year?)
+
**[[Entities]] - Represent people and groups on a service provider's system.
 
+
**[[Worldspace]] - Represents the ''space'' in a virtual world, how it's mapped to VWW URLs, and how permissions are applied.
== Document Object Model (DOM) Documentation ==
+
**[[Instance]]s - The run-time representation of a scene, and instance where connected users actually interact on a server.
 +
**[[Abilities]] - Represents things that users can do (actions they can take).
 +
**[[Permissions]] - These help you secure your world, enable and disable features and more.
 +
**[[Object Type]]s - Stored snippets of 3D document that can be expressed in-world. Similar to Unity prefabs, but with a very rich feature set.
 +
**[[Inventory and Containers]] - Make it possible for "things" to be "owned" by places or people. This can form the basis for a game's inventory and object system.
 +
*[[Document Object Model]] - The foundation of our virtual environments. A document object model that is programmable, storable, and fully multi-user.
 +
**[[Reference]]s - A powerful feature of the DOM that allows for live-updating instances of Object Types' content with local overrides (modifications)
 +
**[[Script]]s - JavaScript code that can add interactivity and automation to your world.
 +
**[[Curve]]s - Nodes that can animate almost anything in your scene in complex ways.
 +
**[[Physics]] - Nodes that can effect spawn, follow, approach, face, and other operations on objects in your scene.
 +
**[[Start Point]]s -
 +
**[[DOM Attribution|Attribution]]
 +
**[[Layer System]]
 +
*[[Transfer System]]
 +
*[[Network Architecture#Layer_Two|Layer Two]]
 +
**[[Component]]s
 +
**[[Creature Manager]]
 +
***[[Avatars]]
 +
**[[Game Cloud]]
 +
**[[World Builder]]
  
[[DOM Nodes]] - Documents the Document Object Model node types
+
==VWW Technical Manual==
 +
This is the technical and reference manual for the VWW. There is written documentation for the major programmable systems explaining how to build a UI script, world script, or component, as well as how the DOM and other key systems work under the hood. There is automatically generated documentation for all API surfaces. Finally those automatically generated documents are augmented with remarks in related/linked but separate documents.
  
[[DOM Enums]] - Documents the Document Object Model enumerations
+
===Concepts===
 +
*[[Network Architecture]] - Explains the VWW Network architecture.
 +
*[[Software Development Kit]] - Information about the VWW SDK, its folder layout, tools, and more.
  
[[DOM Data Types]] - Documents DOM property and attribution system types
+
*[[Connection Identity]]
 +
*[[Participant]]
 +
*[[View]]
  
[[DOM Utility Types]] - Documents other utility classes available in the DOM library
+
===Programming Guides===
 +
These sections provide written explanations of major programmable systems, with step-by-step guides to help you get started.
 +
*[[World Scripting Guide]] - Write JavaScript that adds interactivity and exciting game features to your scenes. These scripts run on the server, can be updated without a server restart, and can interact directly with users, scene objects, the server and server components.
 +
*[[Component Programming Guide]] - Write your own server plug-ins (components) in C# that are loaded directly into the server and admin. These components can do virtually anything. Much of the VWW default functionality is provided by components.
 +
*[[Curio UI Scripting Guide]] - Write JavaScript and design UI components that run on connected clients. These scripts can interrupt navigation to display messages or web content. They can be launched in response to world world script events (like clicking on something in world). They can also make up the user-visible part of a custom server component.
 +
*[[UI Editor|UI Editing Guide]] - Discusses the process of using the UI Editor to create and edit UI. The created UI can then be displayed by a Curio UI scripts (client-side JavaScript).
  
== API Documentation ==
+
===Programming Reference===
 +
These sections document various programming interfaces. Much of this documentation is auto-generated from source comments, with additional commentary added where further clarification is needed.
 +
*[[Document Object Model Reference]]
 +
*[[World Scripting Reference]]
 +
*[[Curio UI Scripting Reference]]
 +
*[[Component Programming Reference]]
 +
*[[Remote API Reference]]
  
[[Server API]] - Documents the VWW.CoreLibs.ServerAPI library used to write service provider components. This is the foundation of Virtual World Web server extensibility.
+
===Administration===
*[[Layer One API]] - The main set of interfaces used by components (Layer Two) to control the VWW server core software (Layer One)
+
*[[Server Administration Guide]]
*[[Layer One Exports]] - Interfaces for various Layer One run-time objects. Some informational, some allow considerable control of connections, avatars, views, etc.
+
*[[Layer One Enums]] - Enumerations used throughout Server API
+
*[[Layer Two Events]] - The main set of interfaces that, when implementd by a component (Layer Two) will be called by the VWW server core software (Layer One) in response to various events.
+
*[[Layer Two Event Handler Stubs]] - A set of stubbed implementations of the Layer Two Events interfaces as virtual methods to make overriding and implementing single events much friendlier.
+
*[[UI Script Handlers]] - Some types to help implement UI script system handlers.
+
  
[[Remote API]] - A set of WCF interfaces available on your service provider which allow for programmatic control, scripting, and external website integration. These APIs can be easily consumed using the [[RemoteClient]] API implementation available in the SDK as a simple NuGet package you can reference from your .NET projects.
+
__NOEDITSECTION__
*[[Remote API Data Contracts]] - Documents data structures that are returned from Remote API methods
+
*[[Remote API Fault Contracts]] - Documents data structures that provide more information about exceptions thrown by Remote API methods (fault contracts)
+

Latest revision as of 17:45, 11 September 2019

This is the main documentation for the Virtual World Web infrastructure. Programming guides, API documentation, scripting documentation and more. This guide is split into 3 major sections meant for different audiences.

VWW Business Documentation

High-level summary documents describing the Virtual World Web platform and technologies. These will be best suited to managers, marketing folks, investors, or new team members tying to get a better understanding of the VWW.

VWW Operating Manual

The operating manual for the virtual world web. This area is for scene editors, content creators, world operations, site admins, quest builders, and the like. It will get technical, but will stay away from things that only matter to programmers and stick to "front-end" topics.

Quick Start Guides

Client Applications

Key Virtual World Web Concepts

  • Network Architecture - A brief overview of the major VWW software components and their responsibilities.
  • VWW URLs - The Virtual World Web URL specification
  • Layer One
    • Entities - Represent people and groups on a service provider's system.
    • Worldspace - Represents the space in a virtual world, how it's mapped to VWW URLs, and how permissions are applied.
    • Instances - The run-time representation of a scene, and instance where connected users actually interact on a server.
    • Abilities - Represents things that users can do (actions they can take).
    • Permissions - These help you secure your world, enable and disable features and more.
    • Object Types - Stored snippets of 3D document that can be expressed in-world. Similar to Unity prefabs, but with a very rich feature set.
    • Inventory and Containers - Make it possible for "things" to be "owned" by places or people. This can form the basis for a game's inventory and object system.
  • Document Object Model - The foundation of our virtual environments. A document object model that is programmable, storable, and fully multi-user.
    • References - A powerful feature of the DOM that allows for live-updating instances of Object Types' content with local overrides (modifications)
    • Scripts - JavaScript code that can add interactivity and automation to your world.
    • Curves - Nodes that can animate almost anything in your scene in complex ways.
    • Physics - Nodes that can effect spawn, follow, approach, face, and other operations on objects in your scene.
    • Start Points -
    • Attribution
    • Layer System
  • Transfer System
  • Layer Two

VWW Technical Manual

This is the technical and reference manual for the VWW. There is written documentation for the major programmable systems explaining how to build a UI script, world script, or component, as well as how the DOM and other key systems work under the hood. There is automatically generated documentation for all API surfaces. Finally those automatically generated documents are augmented with remarks in related/linked but separate documents.

Concepts

Programming Guides

These sections provide written explanations of major programmable systems, with step-by-step guides to help you get started.

  • World Scripting Guide - Write JavaScript that adds interactivity and exciting game features to your scenes. These scripts run on the server, can be updated without a server restart, and can interact directly with users, scene objects, the server and server components.
  • Component Programming Guide - Write your own server plug-ins (components) in C# that are loaded directly into the server and admin. These components can do virtually anything. Much of the VWW default functionality is provided by components.
  • Curio UI Scripting Guide - Write JavaScript and design UI components that run on connected clients. These scripts can interrupt navigation to display messages or web content. They can be launched in response to world world script events (like clicking on something in world). They can also make up the user-visible part of a custom server component.
  • UI Editing Guide - Discusses the process of using the UI Editor to create and edit UI. The created UI can then be displayed by a Curio UI scripts (client-side JavaScript).

Programming Reference

These sections document various programming interfaces. Much of this documentation is auto-generated from source comments, with additional commentary added where further clarification is needed.

Administration