Appendix A: Design Considerations and Phased Development

From OSPDocs

Jump to: navigation, search

Design Considerations

Below are some of our main considerations in the design of this software:

  1. Open Source Code - The advantage of having no funding makes this option essential. This is an ambitious project. To ensure momentum along the way, we will need to continually create useful things. Our development path will be roughly spiral with milestones that can be useful to people – whom we will then romance to get them to try this thing out so we can get valuable feedback.
  2. Open Source Pieces - Whenever possible, reduce the amount of code we need to write by incorporating other open source products.
  3. Modular – to allow the transparent plugging in of new and improved modules. To accomplish this, programming will be done to interfaces and not to concrete objects. This will add to both programming time and processing time, but to accomplish what we are trying to do this is a necessary trade off.
  4. Web based play – The client programs of the players will communicate with the server via http or https. Essentially this increases the number of platforms that can be used to
  5. Help guide the authors - Make intelligent defaults for the authors, but then let them modify them. There is always a constant tension between two extremes. At one extreme, the user has to make every possible choice on every feature they select. This requires Very savvy users. At the other extreme, the user is given a lot of features out of the box but cannot modify them. This hides a great deal of complexity from the user and allows even relatively untrained users to be able to use the system. This also greatly limits the functionality. We will walk this line by giving the authors useful defaults, but allowing them to modify them.
  6. One Database to Rule Them All – All of the data related to one installed simulation should be stored in one database. All of the information in the running simulations, and of the conversations and shared documents should be in this same database. Note: this prevents us from just using off the shelf collaboration tools and incorporating those wholesale since the data would then be spread out in many places. This requirement has a lot to do with the next requirement on 'replay.'
  7. Replay is essential – This is a training tool. A student or an instructor will need to be able to step back through the game and observe the choices made at each stage. This requirement forces us to save changes to the game as they occur, so the entire game can be replayed. Note: We are not anywhere near being able to replay a simulation, but it is what we are working toward.

Phased Development

This is an ambitious project that we see proceeding long term in roughly the three phases described below.


Phase I. We will enable simple ‘political science’ type simulations to be conducted via the Internet. These types of simulations have a long history of being done in one room or set of rooms by players working face to face. These simulations are completely ‘computer free’. Decisions about the outcomes of player actions are either determined arbitrarily or by the actions of other players. For example, “You did this, so I will do this.”

In these simulations there is always a ‘control’ player who runs the game and who arbitrates with regard to specific questions or events. For example, the control player could indicate that a player’s request for aid from Russia has been accepted or not.

Phase II. We will start replacing complete arbitrariness with machine decisions. Machine decisions are obviously not arbitrary free, but they are, at least, deterministic. Examples of a type of machine decision could be “You took those actions, so the formulas determine that the economy of your country grew 0.4% in the past month.”

Phase III. We will develop the ability to create completely AI driven scenarios[3]. In a partially AI driven scenario, for example, the request for aid from the AI driven delegate from country X could return the answer “No.” The control player could still play the role of actors that may or may not help. As our AI improves, the need for the control group, and indeed the entire network basis of the original simulation, may fade away.