|
Order From Chaos
The Big Bang - Creative Evolution
The growth of the Internet as a medium for team projects has experienced the metaphoric equivalent of a "Big Bang" with the advent of a massively supported public repository for open source software projects. We are now undergoing a period of exciting but chaotic inflation of web-supported projects paralleling earlier growth phases of the World Wide Web. The open source software repository numbers are truly astounding. Over 220,000 registered developers are participating in more than 24,000 projects in the US alone--with 100% growth in six months. The thirst for creative expression however, has not been limited to software. The user-contributed "skins" phenomena introduced by MP3 audio pioneer, Winamp, has reached monumental proportions with over 40,000 new skins created and published.
This release of enormous creative potential does have a dark side however, which becomes more acute as such projects increase in complexity. Very few of today's open software projects will succeed because most of them involve massive duplication of previous efforts. To truly realize the promise of Internet team development, advancements in existing repository technology is required, as is the introduction of three additional enablers of productivity. These four enablers are:
- Repositories - Provide a mechanism for exchanging and managing project artifacts including source code, graphics, sound, and video over the Internet. Further evolution towards real-time federated directory systems, which catalog a project's shareable software and resource artifacts, is indicated.
- Frameworks - Provide for re-use of large-scale software modules tuned for use in specific domains. Frameworks are not yet a factor and the current level of code re-use is at the component level only, which means massive duplication of effort.
- Metaprogramming - Provide high-level domain languages, which enable a software system to produce an unlimited number of products. Multilevel metaprogramming will empower community members with various levels of programming skills to contribute to complex product development.
- Standards - Provide an agreement on common definitions and interface for important software components. Standards invariably require a strong sponsor and take considerable time to become accepted.
The impact of repository, framework, metaprogramming, and standards-based technologies is a function not only of the particular approaches taken but, also of the overall synergy between these different aspects. Elements of a technology strategy needed to dramatically increase creative productivity in the software arena would:
- Build on top of existing rapid application development (RAD) technologies.
- Incorporate existing standards wherever practical and promote emergent ones.
- Involve academic and government interests and create a research culture.
- Engage a community of developers and end users through multilevel authoring.
- Create an open extensible environment for development and product deployment.
FederationX is being created with these principles in mind. It is an integrated framework for Peer-to-Peer, real-time rich media applications and tools providing specific solutions in the areas of Repositories, Frameworks, Metaprogramming and Standards. The elements of which, are detailed in the remainder of this document.
Genesis - FederationX
The FederationX project was conceived by Magnetar Games Corporation as its technology-first strategy for the development of multiplayer PC games. Interestingly enough, PC Games is easily the largest domain of creative team participation on the Internet. Contributions to this domain include those from programmers, game designers, writers, artists and players covering a spectrum of product artifact including code, prose, graphics, sound, and video. The scope of the FederationX is quite broad with some illustrative examples in the section "Opportunity--FederationX Products."
The word "FederationX" has, as its genesis, the idea of bridging the US military sponsored Distributed Interactive Simulation and PC Multiplayer Game development communities--through a merger of their current standards based technologies.
The merger is more than just symbolic however, and represents a powerful first step in the evolution of a metaprogrammable standards based framework for the PC Game industry. However, moving PC Game Development towards the more open academic/industry research environment exemplified by the DIS community may be even an even more important consequence of this union.
Thus the challenge of FederationX is both technological and cultural.
Cornerstone - Chronos
A "FederationX" network is comprised of "Federates", which include both servers and end user machines. Real time performance of "FederationX" requires the synchronization of information between Federates. This service is provided by the FederationX RTI component, "Chronos", which forms the backbone of the PeerToPeer capability and is the cornerstone of a strategy to merge Distributed Interactive Simulation and PC Multiplayer Game technologies.
The dual standards layered architecture of "Chronos" creates a synergy between networked distributed simulations and PC multiplayer games standards. This is accomplished by implementing the higher level US Department of Defense (DoD)-defined High Level Architecture (HLA) -- also known as Runtime Infrastructure (RTI) -- while providing services which use the lower level Microsoft DirectPlay communications layer. The result is a very high performance and scalable service supporting large scale PeerToPeer and massive client--server applications.
The RTI definition is a draft IEEE standard and the subject of ongoing academic and industry research. Currently, there really is no competing standard at the conceptual level of the RTI and its adoption by FederationX will leverage the continuing research in this area and hopefully contribute to the same.
Vision - FederationX Network
The engine of growth for FederationX is the concept of a community-operated open FederationX Network, divided into domains of interest. Physically, the network is comprised of the FederationX Hub and a multiplicity of System, Product and User Federates.
- Administrative Services - Provides user account and authorization services and a discovery service for federates.
- Realm Repository Services - Provides a federated
directory system which enables the publication of and subscription to
the various products created by community members. The repository
system is shown below in further detail.
- Guild Lobby Services - Supports collaborative
applications by providing a real-time directory of available sessions
including chat room staging areas for multiplayer games. "Guild" will
be distributed to third party Federates.
- Chronos Peer-to-Peer Services - Provide real time
connection between Federates using RTI or the DirectPlay layer in the
case of third party games supported by the lobby system.
Metaprogramming - FederationX Systems
The metaprogramming strategy for FederationX is a natural extension of the Federated Object Model (FOM) introduced by the HLA architecture. The FOM describes Objects and Interactions whose properties are propagated using the Chronos RTI.
- XML Layers - The layers are defined through XML documents,
which may reference resources and code modules used by Engines, Systems
and Tools.
- FederationX Engines - these are components of
FederationX Systems but may also be used by other applications or in
web pages as services. The planned FederationX Engines are Chronos,
Realm, and Mirage.
- FederationX Systems - These are configured using a
System Model schema and can execute a family of products defined under
that schema. The FOM is represented in this layer as part of a broader
Simulation Object Model (SOM), which includes Objects, which need not
be propagated through the Chronos RTI. .
- FederationX Tools - These are in fact Systems, which
support the authoring of Instances. Forge is a cross-domain
customizable editor being developed as a key part of FederationX.
Frameworks - FederationX Modules
The FederationX frameworks strategy is based on the idea that software complexity can be contained through the hierarchical structuring of subsystems and components. The diagram below illustrates the difference between a first generation framework, (which becomes rapidly more complex as the number of components increases) and the FederationX architecture.
- COM Modules - Top-level framework modules are container
components defined using language neutral COM interfaces. Some Modules
may even be designed for alternative use in environments outside the
framework.
- Module Metaprogramming - Modules are software engines,
which are programmed using XML scripts. A FederationX System actually
unifies the programming of its constituent Modules.
- Module Components - The Modules contains compatible
lower level components, which can be managed using the rapid
application development (RAD) paradigm of "drag and drop" into the
container module from a palette.
Repositories - Realm
An evolution of repository systems is required to meet the ever-increasing usage demand of Internet team projects. The key to finding resources lies in the use of federated directories, which enable powerful search and selection mechanisms. FederationX introduces the Realm Federated Interactive Directory engine as a natural extension of the pervasive Microsoft Active Directory/LDAP standards which are currently at the forefront of new directory technology.
- Realm - adds real time capabilities to Microsoft's Active
Directory and provides a system which merges lightweight end user
repositories with back end repositories located on federate Internet
sites. It is a distributed system designed for the subscription and
publishing of resources, code modules and all XML based documents in
FederationX. Realm also consists of the associated file systems which
store the artifacts available for distribution between members of a
community.
Usability - Tryst
The success of FederationX depends on the quality of user experience. Our strategy to maximize that quality is to provide a high performance, integrated environment through a FederationX GUI (Graphical User Interface). The FederationX GUI provides a common user interface standard for the Tryst/ FederationX network and hosted FederationX Systems and Tools.
- Tryst - The design of Tryst and the associated FederationX
GUI paradigm is oriented towards supporting multiple active immersive
real time FederationX Systems and Tools. The highlight of the new
design is the FederationX Bar, which provides a multi-function single
line interface--including task switching, logon, alerts, messaging,
time and menu and settings functions. Tryst also provides a
customizable lobby for all DirectX applications such as third party
games or FederationX Systems.
- Forge - This collaborative tool is configured using
FederationX Engine Models and provides extensibility through domain
specific plugins such as map editors for games. Forge is designed to
integrate the entire design cycle from the definition of prototypes to
delivery of a product--including variants and scenarios.
- Mirage - This FederationX engine is used in Forge and
FederationX Systems or can be launched as part of a web page to provide
a graphical Scene Engine.
Opportunity - FederationX Products
Magnetar has identified several opportunities for FederationX product lines. Magnetar has reserved domain names for each of these projects. The proof of concept product for FederationX is the ExForce System.
- ExForce - ExForce is a Real Time Strategy (RTS) and Role
Playing Game (RPG) hybrid system designed to support creation of a wide
variety of products in those genres.
- Fortuna - This is envisioned as a system for live
wagering applications including Casinos and Race Tracks. A goal of
Fortuna is to provide users with tools for authoring and publishing
their own virtual Casinos and embedded Casino games.
- Nebula - This is a system which would use the
revolutionary Zillions of Games engine to create
universal board game client.
- Pulsar - A stock market trading system, which supports
both a game and real time trading mode. Pulsar would provide a
customizable Online Broker interface and is envisioned as a product of
interest to the same.
| |