The Multistage Framework allows for the rapid development of economic and social science experimental games. The framework is built for versatility: experiments developed with Multistage range from staged matrix games to asynchronous auctions, and there is no limit to what can be done with user-interfaces – graphical dice, interactive social networks, and continually updating auction bars are just a few examples of what experimenters have already incorporated into their Multistage games. The framework is also built for extensibility: many of its service modules can be easily extended to accomodate specific deployment environment. To list a few, authentication, persistence, matching, etc, can all be readily extended for different data storage or algorithms. Finally the framework is built for robustness: by modularizing and by applying object-oriented design throughout the framework, it makes the development of test cases a straightforward process for the framework. Test cases for various components and extensions can be developed and tested independent from each other.
Security and Portability
Benefiting from being written in pure JAVA, the framework is intrinsically secure and platform-independent. as long as the OS or hardware supports a JAVA virtual machine.
New extensions/games can be straightforwardly programmed within the framework, as implementation of only two classes is needed, one for the client and one for the server.
Experiment designers/programmers need not worry about network coding, as all of this is handled transparently by the framework by using RMI technology.
Versatile Parameter Input and Parameter Verification
The framework allows experiment designers to easily load in and process experiment parameters from external text-based parameter files, so that all parts of an experiment can be customized without resorting to any programming or re-compilation
To ensure the integrity of the parameters, the framework features a fully extensible GUI-based parameter verification system.
Versatile Output Service
The framework allows designers to easily designate what they want to output to the output file. The output file will then be automatically passed through a transformation engine to generate HTML, CSV, and XML formats. XML format further allows experimenters to parse the output data into other forms they desire.
Authentication and Re-Authentication Support
The framework contains an easily extendable authentication system. Currently, file and RDBMS based authentications are supported, and it is straightforward to code any other type of authentication such as LDAP based. Clients, at runtime, are visually connected to the server which allows the experimenter to verify the presence and status of each client.
When a client gets accidentally disconnected – or even if a client’s computer crashes – during an experiment, the framework will be able to re-connect that player back into the game right where the experiment left off. As this is a built-in feature in the framework, it is transparent to experiment designers/programmers.
Synchronous and Asynchronous Game-Flow Support
The flow of a game is often the most time-consuming and challenging step during the game development. Conveniently the framework has built-in support for both synchronous stage-by-stage game flows as well as the more complicated and free-style game flows.
Subject Matching Support
The framework supports a number of subject matching algorithms, including random, zipper, etc. The choice of a specific matching scheme can be made by setting the matching parameter in the parameter file. Furthermore, the matching service is readily extendable for games requiring more demanding matching algorithms.
For games requiring user communication, the framework offers a real-time chatting system that can be plugged directly into any experiment.
The framework offers a client history system which can be snapped into any experiment, allowing subjects to see information about previous matches.