Design Notes

Status

Version 0.2
Will eventually form introduction to design work
Tenses uncertain, different
Duplication of specific sections
Incomplete

General Remarks

The Risk for Java system will consist of a client process and a server process. The client will consist of little more than graphical interface, most actions on the interface will be passed with no processing to the server. The server will make a reply that will affect the state of the client.

The finished package will be distributed in two forms. An application version and a client/server version. The application version with contain both the client and the server in a single application, it will contain all that is required to play Risk. The client/server version will consist of the server application and a graphical client applet. This is called the client/server version as the Java security model means that the applet will have to served (over HTTP) from the same IP address that the server is running on.

Design Methodologies

The design of Risk for Java has been split into three layers. Each layer will be designed using a different methodology.

Each process will feed something down to the design that follows it. The GUI will provide a system interface for the gaming engine, albeit an incomplete on. Both the GUI and the gaming engine must communicate with each other, thus the communications between them forms the specification for the network layer.

User Interface

This will be a partially iterative process. Having performed rudimentary design of the Risk gaming engine the actions that the GUI must perform on it are laid out. If it proves that this leads to an unnatural implementation then the engine can be redesigned prior to its final draft.

The user interface development will be task oriented with the following tasks analysed.

At present refer to gui.html.

Risk Gaming Engine

The rules of Risk are easy to define rigidly. The engine will be defined using a modified or lightweight fusion method. Fusion lends itself well to being tailored for specific projects. From personal experience I have found that it pays to place the user interface outside the scope of the fusion model as it reduces clarity of the model and does not lead to a quality interface.

At present refer to uk.ac.warwick.starfish.design.*.

Network Layer

This will be specified by the system interface developed as part of the gaming engine design. The network layer provides a means of transmitting user actions at the client to system actions at the server and vice versa.

Computer Controlled Players

A set of library routines to allow computer controlled players to interact with the system will be written. It is the function of the network layer to remove function type actions on the system into two atomic actions of communication. It is the function of these library routines to give a function based rather than communication based means to direct robots.