next up previous
Next: About this document ... Up: Galaxy Sleuth Previous: Galaxy Sleuth

Subsections

   
Class Project: Functional Requirements

The functional requirements of the class project will be laid out here. The functional requirements of a proposed software system describe, in a complete and unambiguous form, what the system is supposed to do. Functional requirements may take a narrative form, frequently called the functional specifications or requirements statement. The goal of software engineering is to transform the narrative requirements statement into a set of diagrams that serve as a blueprint for programming. Under normal circumstances, the acquisition of a formal requirements statement is a challenging software engineering objective. The source and completeness of such a document varies from situation to situation, and the topic of dealing with users to obtain the requirements statement will be addressed more fully in subsequent chapters. We include the functional requirements of the class project in this chapter before the topic is formally introduced in order to allow the software development teams to begin the class project as soon as possible.

Each team member should read the following project requirements statement and create a list of questions and ambiguities that arise from it. The statement should be read multiple times until its basic functionality can be discussed without excessive referral to the written statement. After all team members have had the opportunity familiarize themselves with the requirements, the team should meet to discuss the statement and address the following items:

Project Overview

The goal of the class project is to implement an Internet-based, who-done-it style game, called Galaxy Sleuth, which is closely modeled after the board game, Clue ©. The game is Internet-based in that players will be able to play each other from remote sites on the Internet. This application will, therefore, take on a client/server structure, where each client supports one player's view of the game while the server coordinates communication between players and orchestrates the sequence of events of the game.

The game is an intergalactic murder mystery, which emulates a board game scenario in which players spin a wheel to determine a randomly selected number of moves by which they travel through space to various planets. The objective of the game is to gather a series of clues while traveling about the universe. Each player receives information concerning the murder, and no players receive the same piece of information. As the players travel through the universe, they are permitted to ask questions about what information their fellow players possess. The questions take the form of a hypothesis for the murder circumstance and perpetrator, which the remaining players are invited to disprove with their evidence. The murder hypothesis is communicated to all players. If a player can disprove the hypothesis, that piece of information is communicated only to the inquiring player. The other players are informed that the hypothesis was refuted, but are not shown the piece of evidence that refuted the hypothesis. If the hypothesis cannot be refuted, all players are informed of that fact. After gathering a certain set of clues and applying deductive reasoning, players may deduce the perpetrator and circumstance of the murder. The first player to accomplish this wins the game. If a player draws an incorrect conclusion, he/she loses the game.

The game involves elements of both luck and strategy. The objective of player movement throughout the universe is to investigate specific planets to determine if that was the murder site. Part of the game, therefore, involves reaching suspicious locations quickly to investigate them. This element is dictated largely by luck since the spin of the wheel determines the speed at which a player reaches a destination. Players may also travel through a few strategically placed worm holes. The worm holes connect certain planets to each other. The strategy of the game is embodied in the selection of questions to ask other players, the selection of planet destinations, and efficiently deducing the correct murder scenario.

Game Elements

The intergalactic context for the game consists of nine planets, Cathitar,Earth, Evilon, Linuda,Neudel, Pheadrun, Ping, Psu, and Verlute. Three to six players may participate in this game. Each player has a graphic representation of the galaxy on his/her remote computer. Each player is represented by a token of a different color in the game window. Each token represents a character in the murder mystery. Each player is, therefore, both trying to solve the murder mystery and taking on the identity of one of the six murder suspects. The murder suspects are Tina Time-traveler (red token), Sam Space-voyager (blue token), Mona Moon-walker (yellow token), George Galaxy-wanderer (green token), Uhura Universalist (purple token) and Steve Star-gazer (white token).

Each token occupies a physical location in the galaxy at any given time. When a player (as represented by the token) is not residing on a planet, his/her token must reside on one of the locations in space. Space is segmented into squares as shown in Figure 1, the graphic representation of the galaxy. To move between planets, a player may spin the spinner by clicking on the spinner in the center of the game or select a worm hole. The spinner will land on a randomly selected number between one and six. In order to move through a worm hole, the player must be residing on one of the four planets which has access to one.


  
Figure 1: A depiction of the gameboard.
\begin{figure}\centerline{\psfig{figure=board2.ps,height=5.5in,width=5.5in}}\end{figure}

The game environment also contains six potential murder instruments, a phaser, a hyper rope, a laser sword, biological agents, a flame thrower, and radio-active chemicals. One of these items is the murder weapon. The final element of the game is a window which may be used by players to record the results of the questions posed to the other players. This window serves as an aid in deducing the circumstance and perpetrator of the murder.

The Game Sequence of Events

Players of Galaxy Sleuth point their web browsers to the home page containing the client Applet code or invoke a local version of the client. Which action the players take depends on the language used to implement the class project. The player selects either a start game or join game button depending if a game has already begun or not. The first player to initiate a game decides on the parameters for waiting for additional players to join the game, and may select a suspect and associated token to move during the game. The player either selects a time limit for when to begin the game or chooses to wait for a specified number of additional players. As players join the game, they each select their game tokens from the remaining tokens/characters. Once sufficient players join the game or the time limit elapses with at least three total players, the game begins.

First, the game server selects a random murder scenario, consisting of a perpetrator, a murder weapon, and a planet where the murder takes place. The remaining evidence consists of the suspects, excluding the actual murderer, the possible murder weapons, excluding the actual murder weapons, and the planets, excluding the site of the murder. This evidence is then distributed to the players one piece at a time, starting with the first player who joined the game and continuing in order of player sign-on until the evidence is exhausted. If a player has a piece of evidence, for example the planet Earth, that player knows the murder did not take place on Earth. Therefore, all the evidence held by a player serves to refute a part of a murder hypothesis.

Each suspect and associated token has a fixed starting point in the game represented by a specific cell in the game representation. The gameboard representation places each token in its respective starting location. The predetermined playing order starts with Tina Time-traveler, and thus the player selecting the associated token, moves first. The remainder of the order is Sam Space-voyager, Mona Moon-walker, George Galaxy-wanderer, Uhura Universalist, and last, Steve Star-gazer.

A player turn consists either of a spin of the spinner followed by the movement of the player's token the appropriate number of cells or the movement of the player's token through a wormhole (if the player's token is on one of four special planets with a worm hole connection to another planet). If the player lands on another planet as a result of the move, he/she may pose a murder hypothesis to the player following them in the starting sequence. In other words, the first player poses his/her question to the second player joining the game, the second queries the third, and so on. The last person queries the first player. If the player to whom the hypothesis was posed cannot refute the murder hypothesis with a piece of evidence, then the next person in the starting sequence is asked, until all players are exhausted or someone successfully refutes the hypothesis. To refute a hypothesis, a player shows only a single piece of evidence even if the player holds more than one piece that refutes the hypothesis. Each player also has a special window to assist in keeping track of the evidence shown and hypothesis outcomes.

If a player responds erroneously to a murder hypothesis, for example responds that a hypothesis cannot be refuted but has a refuting piece of evidence or tries to show an irrelevant piece of evidence, the game should prohibit this from occurring. In other words, the game allows only correct responses to queries to be given but if there is more than one correct response, the responding player can choose which he/she would like to give.

Moving and Landing on Planets

In order to visit a planet, a player must enter the planet's atmosphere at one of the predefined entry points. Each planet has between one and three predefined atmospheric entry points. These entry points are graphically depicted on the game representation as a slanted line off a square on the board leading into the atmosphere of a planet. A player visits a planet by making legal moves on the board until a cell adjacent to an atmosphere entry point is reached. It costs the player a single move to enter the atmosphere from the adjacent cell, and the player is considered to be on the planet as soon as the planet's atmosphere has been entered. The player does not have to enter the planet's atmosphere in an exact number of moves. A player whose token resides on one of four planets having worm hole connections to other planets may choose not to spin the spinner and take the worm hole directly to the other planet. The planets, Linuta and Verlute, have a worm-hole connecting each other, as do Earth and Evilon. A player may not re-visit the same planet on a single turn.

A legal move consists of a player moving his/her token the number of moves determined by the spinner, either horizontally or vertically, but not diagonally. The player may change directions any number of times, but cannot enter the same cell twice during a single turn. Also, a player may not move into a cell occupied by the token of another player.

Winning the Game

A player wins the game by announcing his/her murder hypothesis, consisting of a planet, a perpetrator and a murder weapon any time during his/her turn, and having the server determine that the hypothesis is correct. The solution is then broadcast to all players. If an announced hypothesis is not correct, the player loses the game, and cannot pose hypotheses any longer or make moves on the board, but must continue to refute the hypotheses of other players. When the correct hypothesis is announced all players are informed of the circumstances of the murder.


  
Figure 2: Timeline for Project Development.
\begin{figure}\centerline{\psfig{figure=timeline.ps,height=4.0in,width=6.0in}}\end{figure}


next up previous
Next: About this document ... Up: Galaxy Sleuth Previous: Galaxy Sleuth
Sushil Louis
2001-08-30