Anda di halaman 1dari 14

Warp!

Technical Design Document

Contents

Index
1) Table of Contents
2) Design
a) Summary
b) Gameplay
c) Mindset

3) Technical

a) Screens
b) Controls
c) Mechanics

4) Scope
a) Title Screen
b) Game Setup Screen
c) Credits Screen
d) Options Screen
e) Board Customization Screen
f) Game Screen
g) Pause Screen
5) Script Structure
6) Graphics
a) Style
b) Graphics Needed

7) Sounds/Music

a) Style
b) Sounds Needed
c) Music Needed

8) Personnel

Design
Summary
Two opposing galactic forces battle each other in space. As commanders,
players must coordinate each side using wormholes that transport vessels
elsewhere on the battlefield. The battle will end when one side is wiped out or
navigates through the battlefield.

Gameplay
Both players start with eight pieces placed on the outside rows of the board.
Players take turns moving one piece at a time. The piece they have chosen to move
can only move in the directions dictated by the tile that they are on, and cannot
move in the direction they came from. If a piece moves to a tile that is already
occupied by an enemy piece, the enemy piece is captured and removed from the
board. A piece cannot move to a tile that is occupied by another piece on the same
team. There are two types of special movement indicated by special arrows on
certain tiles: jumping and dashing. If a piece jumps, it can skip over the tile directly
in front of it and move to the tile behind that. If a piece dashes, it moves in the
same fashion as a knight from chess, but the piece first moves diagonally and then
one space over and captures all pieces in its path (instead of skipping over them
like jumping). Gameplay continues until one player can no longer move due to all of
their pieces being captured or reaching the other side of the board.

Mindset
Players can look at the board at any time and see every move possible
(perfect strategy). Players form strategies that must constantly change and adapt in
order to outsmart their opponent.

Technical
Screens

Title Screen
o Game Setup Screen
Game Screen
Pause Screen
o Board Creation Screen
o Credits Screen
o Options Screen

Controls
Gameplay will be controlled entirely using the mouse. Players will first click
on the piece they want to move (to highlight it), then click on the tile they would like
to move to. Menu navigation will also consist entirely of mouse controls.

Mechanics

Single Player vs. AI


Local Multiplayer
Network Multiplayer
Board Customization

Scope
Screens

Title Screen
o
o
o
o

o
o

The title menu must be appealing to the eye and relevant to the visual
theme.
The title menu must have background music and audio effects which
are relevant to the audio theme.
The title menu must display custom artwork of the games title.
The title menu must have some way of entering the Game Setup
Screen, the Options Screen, the Credits Screen, and the Board
Customization Screen using only the mouse.
The title menu must have a way to exit the application using only the
mouse.
The title menu must run smoothly enough so as not to slow down
navigation through menus.
The title menu must be mostly bug free.

Game Setup Screen


o
o
o

o
o

o
o
o
o
o
o

The game setup screen must be appealing to the eye and relevant to
the visual theme.
The game setup screen must have background music and audio effects
which are relevant to the audio theme.
The game setup screen must allow the player to choose between
single player, local multiplayer, and network multiplayer using only the
mouse.
The game setup screen must have some way of entering the Game
Screen using only the mouse.
The game setup screen must have a way to scale the difficulty of the
AI using only the mouse if the single player game mode has been
chosen.
The game setup screen must have an option to choose the board that
the match will be played on using only the mouse.
The game setup screen must have some way to distinguish which
boards are player made and which are built-in.
The game setup screen must display when another player has been
found for network multiplayer.
The game setup screen must have a way to back out to the title menu
using only the mouse.
The game setup screen must load the game screen in a reasonable
amount of time.
The game setup screen must run smoothly enough so as not to slow
down navigation through menus.

Credits Screen
o
o
o
o
o

The credits screen must be appealing to the eye and relevant to the
visual theme.
The credits screen must have background music and audio effects
which are relevant to the audio theme.
The credits screen must display all of the personnel that have worked
on the game in equal distinction.
The credits screen must have a way to back out to the title menu using
only the mouse.
The credits screen must run smoothly enough so as not to slow down
navigation through menus.
The credits screen must be mostly bug free.

Options Screen
o
o
o
o

o
o
o

The game setup screen must be mostly bug free.

The options screen must be appealing to the eye and relevant to the
visual theme.
The options screen must have background music and audio effects
which are relevant to the audio theme.
The options screen must properly display the players current sound
and music volume.
The options screen must allow the player to change the values for the
sound and music volume using only the mouse, and must properly
update these values in the scripts.
The options screen must have a way to back out to the title menu
using only the mouse.
The options screen must run smoothly enough so as not to slow down
navigation through menus.
The options screen must be mostly bug free.

Board Customization Screen


o
o
o
o

o
o

The board customization screen must be appealing to the eye and


relevant to the visual theme.
The board customization screen must have background music and
audio effects which are relevant to the audio theme.
The board customization screen must properly display an accurate
preview of the board that the player is creating/editing.
The board customization screen must display a preview of all of the
arrows that a player can put on to a tile, and allow players to drag
these arrows on to the example tile using the mouse.
The board customization screen must have multiple tabs in which the
different arrows a player can drag on to a tile are organized, and must
allow the player to switch between these tabs using only the mouse.
The board customization screen must display an accurate preview of
the tile that the player is creating.
The board customization screen must allow players to drag their newly
created tiles on to the preview board using the mouse.

o
o
o
o
o
o
o
o

o
o
o

The board customization screen must allow players to select and edit
tiles on the preview board using only the mouse.
The board customization screen must allow the player to load and edit
previously created boards using only the mouse.
The board customization screen must allow the player to save their
newly created/edited boards to disk using only the mouse.
The board customization screen must display the name of the board
that is currently being worked on by the player.
The board customization screen must allow the player to edit the name
of the board being currently edited.
The board customization screen must enforce the rules of board
symmetry when the player is creating a board.
The board customization screen must periodically display some hints to
assist in the creation of good boards.
The board customization screen must have a way to check that a board
has sufficient ways for pieces to travel from one side to the other
before allowing the player to save it.
The board customization screen must have a way to back out to the
title menu using only the mouse.
The board customization screen must run smoothly enough so as not
to slow down navigation through menus.
The board customization screen must be mostly bug free.

Game Screen
o
o
o
o

o
o
o
o
o

The game screen must be appealing to the eye and relevant to the
visual theme.
The game screen must have background music and audio effects
which are relevant to the audio theme.
The game screen must properly load the board that was selected on
the game setup screen.
The game screen must allow players to select any of their game
pieces, and must highlight selected pieces to show that they are
currently selected.
The game screen must highlight the tiles that a selected piece can
move to based on the tile that the piece is currently on and the
direction that it came from.
The game screen must correctly increment the score when a piece
reaches the opposite side of the board.
The game screen must move a selected piece to a valid tile if the
player clicks on it.
The game screen must play an animation that consists of a piece
moving to a tile if a valid move is made.
The game screen must ensure that player turns alternate after the
current player had made a valid move.
The game screen must properly count down any timers that are
associated with the match.

o
o
o

The game scene should properly display which player won the match
and return to the game setup screen.
The game screen must have a way to pause the game using the
mouse.
The game screen must be mostly bug free.

Pause Screen
o
o
o
o
o
o
o
o
o
o
o
o

The pause screen must be appealing to the eye and relevant to the
visual theme.
The pause screen must have background music and audio effects
which are relevant to the audio theme.
The pause screen must display a graphic saying something such as
Pause.
The pause screen must make the board seem slightly translucent while
the game is paused.
The pause screen must prevent players from selecting and moving
pieces while the game is paused.
The pause screen must completely black out the game board if timers
are involved in gameplay.
The pause screen must completely stop timers if they are involved in
gameplay.
The pause screen must properly return to the game screen without
altering the game board or timers involved with the match.
The pause screen must have a way to resume the game using only the
mouse.
The pause screen must have a way to quit the current game using only
the mouse.
The pause screen must activate and deactivate in a timely fashion.
The pause screen must be mostly bug free.

Script Structure
Title Scene

TitleMenu This script will be a basic input handler that will read the
players mouse position, check if the mouse was clicked, and then change the
scene based on if the player clicked on any of the on-screen buttons. This
script will also handle any code-based animations that take place in the
scene.

Game Setup Scene

GameSetup This script will be a catch all script to handle the majority of
the functions on the Game Setup Screen. This includes picking what type of
opponent the player will face (AI, local multiplayer, or network multiplayer),
backing out to the title menu, selecting and loading the board that the game
will be played on, selecting the difficulty of the AI (single player only),
beginning the search for an opponent over the network (network multiplayer
only), and beginning the match (single player and local multiplayer).
Network This script will handle all of the network multiplayer features
used on the Game Setup Screen. This includes searching for and matching up
two opponents, designating which board the match is played on (which is
special in this case), and passing this information into the Game Scene.

Credits Scene

CreditScreen This script will be a basic input handler that will check if
the player has clicked, and if they have, back out to the title menu. This script
will also handle any code-based animations that take place in the scene.

Options Scene

OptionsScreen This script will act as a catch all script to handle all of the
functions of the Options Screen. This includes checking for input to return to
the title menu, adjusting the volume sliders, and updating the values in the
jukebox scripts with these new values.

Board Customization Scene

BoardCustomization This script will handle the majority of the functions


of the Board Customization Screen. This includes loading boards from disk,
saving boards to disk, and reading input from the player.
BoardDisplay This script handles the preview board on the Board
Customization Screen. Some of its functions include tracking what tiles are
where, displaying these tiles, and enforcing rules to prevent unfair or
unwinnable boards.
TileDisplay This script handles the preview tile on the Board
Customization Screen. Some of its functions include tracking what arrows the
player has drug on to the tile, the direction of the arrows, and enforcing
restrictions that prevent invalid tiles.

Game Scene

GameManager This script handles some of the overarching functions of


the game scene. These include tracking the scores of the players, playing
audio cues, determining when to display the win state, and some
miscellaneous tasks associated with pausing the game.
Pause This script will handle the pausing of the game by checking for
player input to pause the game, and adjusting a Boolean variable which will
prevent players from moving or counters from changing. This script will also
handle the display of Pause screen elements, and handle the input to exit the
pause screen.
Board This script is a class script that will be put on an empty game object
entitled Board. The purpose of this script will be to generate the board tiles
based on the information that is passed in at the beginning of the match.

Tile This script is a class script that will be put on the tile objects that
the Board script spawns. The purpose of this script is to store the
information that tells the game what arrows are on this tile, what
direction they are facing, if a player is on this tile, etc.
Move This script handles both the movement of pieces on the board, and
the rotation of turns between players. This includes the checks and
restrictions on moving pieces, switching player turns, and retrieving the
players input to move pieces.

Multi-Scene Scripts
Jukebox-

This script is put on the jukebox object to ensure that it is a


singleton and that only one of it exists at any given time.

MusicManager -

This script is put on every background music object to


load new songs into the jukebox when screens are switched. It functions on

a mode system so that it can act differently based on whether this screen has
a new song to load and if music is already playing. In the Start mode, the
song will fade in. In the New mode, the old song will fade out and then the
new song will fade in. In the Old mode, both songs are the same, so the
script prevents the song from restarting. It also contains values to handle
music and sound volume based on the users input on the Options Screen.

Graphics
Style Attributes
Warp! will feature a predominately spacey theme, with some retro elements
present. This will give the game the look and feel of other retro-space games such
as Space Invaders or Galactica. Backgrounds will be space-themed, but simple in
color and layout. GUIs and menu elements should seem somewhat retro, with only a
minor use of color to match the backgrounds palette. Text should be smooth but
retro.

Graphics Needed
1) Models

a) Spaceship Piece

2) Textures

a) Friendly Spaceship Piece


b) Enemy Spaceship Piece
c) Board Grid
d) Board Tile
e) Left Arrow
f) Right Arrow
g) Up Arrow
h) Down Arrow
i) Upper Right Arrow
j) Upper Left Arrow
k) Lower Left Arrow
l) Lower Right Arrow
m) Left Jump
n) Right Jump
o) Up Jump
p) Down Jump
q) Upper Right Jump
r) Upper Left Jump
s) Lower Left Jump

t) Lower Right Jump


u) Left Dash
v) Right Dash
w) Up Dash
x) Down Dash
y) Upper Right Dash
z) Upper Left Dash
aa)Lower Left Dash
ab)
Lower Right Dash
ac)Title Icon
ad)
Game Setup Icon
ae)Credits Icon
af) Options Icon
ag)
Board Customization Icon

Sounds/Music
Style Attributes
Warp! will feature sounds that are spacey and futuristic in theme, but simple
to exemplify the simple nature of gameplay. Common noise may include laser
noises, pings, and beeps. Music will follow the theme of futuristic, but also calm and
ambient. Music and sounds shouldnt detract from the gameplay experience even
though the player can manually turn down the volume on the sounds and music.

Sounds Needed

Menu selection noises


Menu cancel noises
Piece movement noises
Piece capture noise
Piece score noise
Game begin noise
Game end noise
Pause noise
Save and load noise
Tile place noise
Arrow place noise

Music Needed

Menu music (possibly multiple songs for different menus


Multiple gameplay background songs

Personnel
Garrett Reuscher

Team Manager
UI Programming
Saving/Loading Functionality

Andre Wiggins

Gameplay Programming
Network Programming

Noah Dyer

Game Concept
Game Prototype

Ryan Simpson

3D Models
Textures

Anda mungkin juga menyukai