Our Software
The Shared Platform
Platform Development
The array of specific goals from individual projects have led the Consortium to identify a subset of shared infrastructure requirements to be implemented during the two-year time frame in the common networked virtual worlds platform. The infrastructure development goals are threefold: 1) Create a template Unity3D development environment that will enable the core participants of the Consortium to quickly create Virtual World experiences based on a shared development environment; 2) Create a robust Content Management system that will enable Consortium members to add the full range of associated assets required for a complex Virtual World experience; 3) Develop a malleable front-end that can be installed at any host institution to allow readers to browse the available projects while also providing persistent and direct URIs to the Networked Virtual-World based arguments—in fact, a multi-dimensional variation on a traditional article—as proposed in the individual projects above.
The Unity Development Template is a shared code base that new projects can adapt to suit more specific needs. The shared code base, shared widgets, and shared 2D, 3D, and sound assets will be made available to Consortium developers via installations of the Unity asset server. Since Unity3D is not inherently a Virtual World, the code-base will contain the necessary scripts to enable a client/server and peer-to-peer networking solution. The client/server system will support the robust release of our in-virtual-world articles. A shared server for “readers” of the articles will always be available and accessible. The peer-to-peer model, however, supports rapid and reliable deployment of locally served systems. The first computer accessing the content is, in effect, the server in our peer-to-peer system—already operational in beta form in our prototype. In addition, the template will contain the avatar selection code, and core functionality for networked data types, such as avatar motion and interaction. Lastly, the shared template will contain the scripts that enable geo-reference of the Virtual World 3D and the manipulation of avatars and objects via KML/GML-based feeds.
The Content Management System (CMS) will be developed in two phases. Our prototype uses a simple, multi-platform html/javascript code base for display of the virtual world. The data, comprising individual Unity builds and KML files with geo-located views for each paragraph are managed through a simple Dropbox shared file structure. This phase one solution is not robust, but it does enable initial testing and work of the Consortium to proceed without waiting for the development of our scalable CMS. In phase two we will integrate the platform into a Drupal-based CMS, to manage each project’s Unity builds and KML/GML files for a) narrative, b) programmable avatars, and c) in-world objects.
The Virtual World User Experience will consist of an in-browser navigable 3D world, and where appropriate, a set of layered narratives running along a right or left-hand column. In our current prototype form, simple navigation involves either reading and clicking through the narrative, which will then move the reader’s avatar to a new location based on associated geographic metadata.
The in-world navigation will support a picking mechanism, a suite of virtual world navigation affordances (detailed in the Technical Specifications section below), while a surrounding, html/javascript-based wrapper will handle the geo-referenced narrative, derived from a KML/GML feed in our CMS. Building on our initial prototype, the Consortium has elected to offload the bulk of text, image, and video interactivity to the browser rather than develop an additional in-world browser. By taking this step, much of the interactivity accompanying the “reading” of an argument can be manipulated via a standard suite of html, javascript and css, lessening development time substantially while simultaneously increasing the versatility of the developed platform. The virtual world becomes a content viewing window that might in future be exchanged with a geo-aware browser plug-in, such as that provided by the Google Maps/Earth API (Application Programming Interface) or even a new virtual world system.