USE CASE 11 |
The user sees a shadow under his ship. |
|
Preconditions |
User Stories 1 and 2 have been fulfilled. |
|
Success End Condition |
A shadow is successfully drawn. |
|
Fail End Condition |
The user's video card does not support stencil buffers. |
|
Trigger |
EigenMaze is launched and shadows are enabled. |
|
Description |
Stencil buffer shadow volumes are used to create realistic shadows for Entities. |
USE CASE 12 |
Visible thrust is shown when the user is accelerating or deacclerating. |
|
Preconditions |
User Story 3 has been fulfilled. |
|
Success End Condition |
Visible thrust is drawn that gives the user a indication of what direction the ship is currently going, and what direction it is accelerating towards. |
|
Fail End Condition |
No fail end condition has been identified. |
|
Trigger |
The user accomplishes a task described by User Story 3 |
|
Description |
Visible thrust is a useful indicator that helps the user figure out the ship's velocity and interia in a spacelike enviroment in EigenMaze. |
USE CASE 13 |
The user sees shadows that are created by the static geometry in the game (if Lightmaps are enabled). |
|
Preconditions |
User Story 1 and 2 have been fulfilled. |
|
Success End Condition |
Shadows created by the walls are successfully created and drawn. |
|
Fail End Condition |
Possible failure end condition is the JVM running out of memory because creating lightmaps are both a processor and memory intensive task. |
|
Trigger |
The user accomplishes User Story 2. |
|
Description |
Lightmaps are used to create shadows casted by level geometry. This method precalculates the shadows before the game starts to increase performance during actual play time. |
USE CASE 14 |
The user can see network activity. |
|
Preconditions |
User Stories 5 or 6 have been fulfilled. |
|
Success End Condition |
User can see activity on the network from other users |
|
Fail End Condition |
The user does not see activity on the network from other users |
|
Trigger |
Other users interacting with the network. |
|
Description |
Game specific data is synched on the network allowing multiple users to participate in the same game. |
USE CASE 15 |
The user sees text messages in the upper left hand corner of the game window. |
|
Preconditions |
User Stories 1 and 2 have been fulfilled |
|
Success End Condition |
Periodic messages appear in the upper left hand of screen. Old messages scroll up until off the screen. |
|
Fail End Condition |
No messages are seen, or are in the wrong position. |
|
Trigger |
Preconditions |
|
Description |
The Text display is created with the same method as the Shields and FPS display. The use of this new feature will be to provide more information to the user. |
USE CASE 16 |
The user sees scenery outside the maze. |
|
Preconditions |
User Story 1 has been fulfilled |
|
Success End Condition |
The maze appears to be in the middle of a scene. Currently a mountain range with green plant life around. |
|
Fail End Condition |
The maze is surrounded by blackness. |
|
Trigger |
Preconditions |
|
Description |
The Sky box is created by enclosing the game space in a cube that moves with the camera. unique textures are used for each side to create the effect of a continous scene. |
USE CASE 17 |
The user sets engine-wide preferences. |
|
Preconditions |
The engine is up and running. |
|
Success End Condition |
The user can set preferences that will take effect the next time the game is loaded, and are written to persistent storage in an XML format. |
|
Fail End Condition |
The preferences pane does not appear and preferences cannot be changed - possibly due to read-only access to the preferences file. |
|
Trigger |
The user chooses "Preferences" from the main menu. |
|
Description |
A new window is created that allows the user to change various engine-wide values. These include windowed resolution, default maze dimensions, and fullscreen mode. |
USE CASE 18 |
A title screen/menu appears while the maze is being generated. |
|
Preconditions |
The program has started and OpenGL has initialized. |
|
Success End Condition |
An OpenGL-powered title screen with clickable menu appears before the game is playable. The user will be able to enter the game once the maze has been fully generated. The user will also be able to choose to set preferences or quit the program. |
|
Fail End Condition |
No failure condition is identified. |
|
Trigger |
The user starts the program. |
|
Description |
An OpenGL canvas is created to specifically handle the drawing and event-handling of the title menu. |
USE CASE 4 |
The user creates a new maze. |
|
Preconditions |
The program is running and the game world has been created. |
|
Success End Condition |
A new random maze is generated and applied to the game world. |
|
Fail End Condition |
The new maze is not created and the existing maze persists. |
|
Trigger |
The user selects "New Maze" from the main menu. |
|
Description |
A new Maze3d with the parameters specified by the user is allocated and generated. The current list of triangles is erased from the Octree and this maze's triangles are inserted. |
USE CASE 5 |
The user starts a new network game as server. |
|
Preconditions |
The program is running, the game world has been created, and the computer has a network or
internet connection. |
|
Success End Condition |
A port is opened and the program begins serving a net game on that port (4224 by default). |
|
Fail End Condition |
The server does not start and clients cannot connect. |
|
Trigger |
The user selects "Create a Net Game" from the main menu. |
|
Description |
A new Server object is created which handles network interaction on its own thread. |
USE CASE 6 |
The user joins a network game. |
|
Preconditions |
The program is running, the game world has been created, and the computer has a network or
internet connection. |
|
Success End Condition |
The program will connect remotely to a given IP and port, and begin to send and receive data
to participate in a network game. |
|
Fail End Condition |
The program throws a ConnectException with the message "Connection refused" or "Connection timed
out". |
|
Trigger |
The user selects "Join a Net Game" from the main menu. |
|
Description |
The EigenEngine's existing NetHandler is told to connect to the user-given IP and port. The NetHandler begins its own thread to handle async I/O. |
USE CASE 7 |
The user quits or exits the program. |
|
Preconditions |
The program is running and the user interface has been created. |
|
Success End Condition |
The program will exit without error. |
|
Fail End Condition |
The program will exit with an error; the OS is left to handle that. |
|
Trigger |
The user:
|
|
Description |
All user threads are closed properly, loops are exited, and the program closes down. |
USE CASE 8 |
The user looks at the screen before interacting with the program. |
|
Preconditions |
User Story 1 is fulfilled. |
|
Success End Condition |
The game window renders a fully textured three-dimensional maze and a textured player ovject. |
|
Fail End Condition |
The game window does not display the maze or player object, or fails to correctly render textures. |
|
Trigger |
The program has been started. |
|
Description |
Each triangle that makes up the maze is drawn to the GLCanvas. Each triangle that makes up the player is drawn. All triangles have textures. |
USE CASE 9 |
The user looks at the screen before interacting with the program. |
|
Preconditions |
User Story 1 is fulfilled. |
|
Success End Condition |
The game window renders a complex textured model as a player object representation. |
|
Fail End Condition |
The game window does not display the player object. |
|
Trigger |
The program has been started. |
|
Description |
A Wavefront OBJ model file, its associated material library, and all associated texture image files are loaded from persistent storage. The triangles of the player object are sorted by texture for efficiency. Each triangle is drawn, textured, and lit. |
USE CASE 10 |
The user uses the weapon keys to interact with the game world. |
|
Preconditions |
User Stories 1 and 2 have been fulfilled. |
|
Success End Condition |
A projectile (bullet or bomb) is launched from the player object. |
|
Fail End Condition |
No failure mode has been identified. |
|
Trigger |
The user presses the weapon keys to launch a specific projectile - spacebar to fire a bullet, Z to fire a bomb. |
|
Description |
If the user presses the spacebar, a fast-moving Bullet is generated in front of the player object. The bullet will bounce off walls but explode and do damage on contact with a Ship. If the user presses the Z button, a Bomb is generated in front of the player object. The Bomb moves slowly and does a lot of damage, but explodes on any collision. |
USE CASE 1 |
The user launches EigenMaze. |
|
Preconditions |
EigenMaze is fully installed. |
|
Success End Condition |
The main JFrame with menu bar and game world panel appears, and the 3D maze world
renders in that window. |
|
Fail End Condition |
The operating system should handle failed program launch. |
|
Trigger |
The user launches the EigenMaze program from his file browser of choice. |
|
Description |
Opening and initializing the application environment; instrumental to all other user stories. |
USE CASE 2 |
The user looks at the screen before interacting with the program. |
|
Preconditions |
User Story 1 is fulfilled. |
|
Success End Condition |
The game window renders a colored (perhaps randomly) three-dimensional maze and a similarly
colored player object, probably a cube. |
|
Fail End Condition |
The game window does not display the maze or player object. |
|
Trigger |
The program has been started. |
|
Description |
Each triangle that makes up the maze is drawn to the GLCanvas. Each triangle that makes up the player is drawn. |
USE CASE 3 |
The user uses the movement keys to interact with the game world. |
|
Preconditions |
User Stories 1 and 2 have been fulfilled. |
|
Success End Condition |
The player object moves with predictable inertia in the direction of the movement keys
pressed. |
|
Fail End Condition |
No failure mode has been identified. |
|
Trigger |
The user presses the movement keys to indicate the direction the player object should move - W to accelerate forward, S to accelerate backward, A to turn left, D to turn right. |
|
Description |
If the user presses the W or S button: the player is accelerated forward or backward by an amount equal to the time of frame times a constant value. If the user presses the A or D button: the user is rotated to the right or left by an amount equals to the time of frame times a constant value. |