Computer Science 113 / Informatics 125
Computer Game Development
Laser Cruiser: Design Document
The Fighting Mongeese
Kenneth Childs
Austin Fitzpatrick
Linda Morton
Dennis Trinh
Table of Contents
-
Overview (Executive Summary)
-
Game Specification
-
Rules and Mechanics
-
Artwork and User Interface
-
Gameplay and Balance
-
Music and Sound
-
Background Story
-
Characters
-
Levels
-
Scripts
-
Cut Scenes
-
Artificial Intelligence
-
Technical Specs
-
Schedule and Personnel
Overview (Executive Summary)
The core game play of this game revolves around two separate, but dependent, gaming experiences. The game is designed to be played by two players, each taking control of a different aspect of the game; however; players who wish to challenge themselves can attempt to control both at the same time. We refer to these two aspects of game play as the “shooter” game and the “engine room” game.
The shooter game plays like what one would expect out of a standard top down shooter. The player controls a ship as it travels over a predefined track, all-the-while shooting down enemy ships and dodging enemy attacks. The engine room game is more of a puzzle game. The player moves themselves between 4 lanes, gathering different colored nodes. After collecting 12 of these nodes, the player achieves something based off of several predefined recipes. These games are not completely separate. Actions that take place in the shooter game will add different kinds of nodes to the engine room game, and the completed recipes of the engine room will strengthen the player in the shooter game. The two players need to work together to keep their ship in one piece as wave after wave of enemy ships attack them.
There is not too much story in this game, so that the player can more quickly get into the action. There is very little text, and any story element will be expressed through the game play itself. Short cut scenes may rarely be used, if it is deemed necessary to take control away from the player. An example a situation where this may be used is just before a boss fight while we introduce this new character to the player.
This game employs a very simplistic color scheme behind its art design. There are four major colors in the game: red, yellow, green, and blue; and these colors, along with black and white, make up the majority of what will show up on the screen. Things in the background will be more dully colored while the foreground will be more vibrant. This allows for a beautiful world that still holds functionality (players will more easily be able to tell what they can interact with).
The game is being programmed in Action Script 3, so that it can be run on any machine that has a Flash player. This includes Windows, Macintosh, Linux, as well as many other devices (though the controls may have to be altered to fit these), which allows for us to target a larger audience. The eventual plan is to port this game into an Adobe AIR desktop application as well as a Flash release, but until that point, all testing will be done in Flash.
Game Specification
-
Menu
-
brought up on Start Up and on Pause
-
start game
-
this will create a new game, starting on the first level
-
if a game is in progress, replace with resume game
-
this will return the player to their in progress game
-
options
-
choose screen preferences
-
shooter on right or left
-
engine room on right or left
-
must be opposite of shooter's screen side preference
-
volume
-
sound
-
percentage from 0% to 100%
-
music
-
percentage from 0% to 100%
-
credits
-
displays screen of who-did-what in the creation of this game
-
press escape to return to menu
-
exit game
-
Engine Room
-
4 lanes, each with an obvious color
-
each color represents something different
-
red
-
yellow
-
green
-
blue
-
keyboard used to move between lanes
-
wasd
-
arrow keys
-
can only move left and right
-
can only "pop" between lanes
-
instant movement to lane
-
wait for ship to graphically move before movement can happen again
-
track looks reminiscent to Audiosurf/Guitar hero
-
4 lanes
-
each lane has a color: red, yellow, green, blue
-
nodes appear at top of screen and scroll down towards player
-
nodes stay in their specific lanes
-
e.g. yellow nodes spawn in yellow lanes
-
acquire "nodes" as you travel down a specific lane
-
if you are in the blue lane, and you collide with a blue node, you acquire it
-
how nodes appear
-
randomly
-
based off of certain sections of the game
-
based off of shooter game (see below)
-
bar at the bottom with 12 notches in it
-
notches fill up as you collect nodes
-
notches display in color order
-
red, yellow, green, blue, empty
-
auto sorts as nodes grabbed
-
once entirely filled, you provide a boon to player on the other screen depending on the colors picked up
-
boons will be short-lived (5-10 seconds)
-
if you get the same boon before it runs out, you reset the timer
-
each recipe has a score value to be added to the final score
-
recipes (higher recipes in the list overwrite the lower ones
-
Temporary Invulnerability
-
3 red, 3 yellow, 3 blue, 3 green
-
for the next 5 seconds, the player's shields take no damage from incoming enemy attacks
-
Exploding Image
-
creates an image of the player ship at its location, exploding 3 seconds later
-
image flashes (red, green, blue) to differentiate it from players ship
-
explosion similar to Unstable Explosive Pulse
-
4 red, 4 yellow, 4 green
-
Reboot
-
Player ship holds still for 2 seconds, cannot fire
-
regains 75% shields over those 2 seconds
-
4 red, 4 green, 4 blue
-
Ultra Beam Cannon
-
Player Ship holds still and stops firing for 2 seconds while charging
-
afterwards, player gets 5 seconds of movement while firing giant laser in front of them
-
4 red, 4 yellow, 4 blue
-
Rush
-
player ship charges from it's location to top of screen
-
during this time, and for 1 second afterward, player is invulnerable
-
any enemy in it's way takes substantial damage
-
4 yellow, 4 blue, 4 green
-
Weapon Speed
-
when one cannon would normally fire, both fire
-
i.e., weapon firing rate is doubled
-
lasts 10 seconds
-
equal red and blue
-
Forward Shield
-
creates a shield in front of the ship that lasts for 10 seconds or until it takes 40 damage
-
equal red and green
-
Missiles
-
firing rate cut in half, but seek enemies and explode on impact
-
explosion causes damage to all enemies in certain radius
-
equal red and yellow
-
Unstable Explosive Pulse
-
a single explosive pulse expands from player ship, covering most of the screen if player is in the middle of the play field
-
equal yellow and green
-
Engine Flare
-
Deals substantial damage to enemies immediately behind player ship
-
equal yellow and blue
-
Rear Shields
-
creates a shield behind the ship that lasts for 10 seconds or until it takes 40 damage
-
equal green and blue
-
Increase Damage
-
weapons do 1.5 times normal damage
-
more red than any other color
-
Stable Explosive Pulse
-
periodically (1 per second) creates a circular pulse from around player ship, dealing damage to nearby enemy ships
-
lasts 5 seconds
-
more yellow than any other color
-
Increase Speed
-
Ship moves twice as fast
-
more blue than any other color
-
increase shields
-
ship gains 35% shield points
-
more green than any other color
-
Mine Nodes
-
appear in different lanes
-
purpose is to keep someone from mindlessly sitting in one lane
-
if you hit one, you lose all nodes that you have store
-
for example, if you have 10 nodes and you hit a mine, you drop back down to 0
-
shakes screen on hit, plays sound
-
visually cue the player as to what happened
-
Special Nodes
-
there may be certain instances in the game where a special node appears
-
this node does something different depending on when it spawns
-
e.g. during a boss fight, grabbing this node at the right time may interrupt an ability
-
can spawn in any lane
-
Shooter Game
-
controls
-
mouse movement to move ship
-
ship moves toward pointer at certain speed
-
left click to shoot
-
player ship
-
small hit box
-
health
-
percentage based
-
0 points minimum shields
-
100 points maximum shields
-
slowly deplete over time
-
regenerates through engine room
-
takes damage before hull
-
will always at least fully absorb an attack
-
for example, if I have 2 shield points left and take 10 damage, the shield is gone, but I don't die
-
hull
-
irreparable
-
one hit onto hull and you die
-
weapons
-
always fire forward
-
two streams of lasers
-
alternate left and right guns
-
enemies
-
colored based on the 4 lanes in the engine room
-
red, yellow, green, blue
-
each enemy has a chance (based off of the type of enemy) to spawn nodes of that color in the engine room when destroyed
-
move in predetermined patterns
-
some have simple AIs
-
e.g. look at player and shoot
-
more detail later, in AI section
-
score value
-
amount of points awarded to player when this ship is defeated
-
health value
-
how much damage the ship can take before it dies
-
bosses
-
level
-
scrolling background
-
scrolling foreground
-
similar to background, except only in certain places
-
times and locations for enemies to spawn
-
checkpoints where player will respawn
-
boss fight at end
-
completion
-
player dies and starts back at previous checkpoint
-
killing of a boss sends player to next level
-
killing of final boss marks completion of the game
-
Both
-
score
-
every time you kill an enemy, you get points based off that's enemy's score value
-
every time a recipe is completed, you get points based off that recipe's score value
-
list of top scores saved
-
menu
-
press the escape key to return to the menu
-
Artwork and user interface
-
Layout:
-
shooter game is on one side, engine room on other
-
default shooter is on right
-
default engine room is on left
-
can swap in options
-
engine room
-
main part of this side is play area
-
bottom part of screen has bar where notches are stored
-
light up with whatever color is occupying that spot
-
auto sorts as colors are grabbed
-
list of recipes
-
offensive
-
top right
-
expands downward
-
defensive
-
recipes dim as they become unattainable with current configuration of nodes
-
when a recipe is highly recommended for a certain area, it is highlighted (even more-so than normal highlight)
-
shooter
-
full side is play area
-
shields
-
if left side
-
grows from bottom right of side to middle right
-
if right side
-
grows from bottom left of side to middle left
-
score
-
top middle, between the two screens
-
multiple layers
-
scrolling background
-
middle action-layer
-
this is where all the things the player can interact with are
-
darker, thicker lines
-
scrolling foreground
-
tend to be completely blank
-
only in certain areas
-
example
-
boss' shadow flies across screen before it comes in to fight player
-
insert layout image here
-
Sample Ship Images
-
Sample "Notches" Image
-
Feel and Style
-
Vector Art from Adobe Illustrator
-
however, keeping it more on the "cool" side than the "cartoony" side
-
colors
-
mostly keep to four colors, as well as black, white, and gray
-
background
-
dull versions of the colors
-
mostly thin, gray lines
-
must be obviously background, do not want player attempting to interact with this
-
play area
-
area where player can interact with things
-
brighter versions of the four colors
-
must be obvious that player can interact with these
-
Enemies are in spaceships
-
things blow up
-
standard ships
-
explosion covers ship, ship disappears
-
larger ships
-
bosses
-
slowly change to a full-white sprite
-
explosions randomly all around
-
entire screen floods white
-
despawn boss
-
return to normal
-
Gameplay and balance.
-
Shooter player moves through a level, avoiding enemies and bullets, and destroying enemies
-
can play more defensively and try harder to survive
-
can play more offensively and try to destroy as many enemies as possible
-
Engine Room player grabs nodes and builds recipes to benefit the shooter player
-
This person must discern which recipes are useful for which situation
-
choosing different recipes on each play through will change the play experience
-
players must communicate in order to navigate around enemies effectively destroy them
-
Music and sound
-
notable sound effects
-
menu sound effects
-
hover over menu option
-
select menu option
-
player weapon fire
-
simple laser sound
-
this will nearly always be going off, so it can't be too flamboyant
-
weapon charge up
-
so player knows when enemy is preparing for a larger attack
-
beam weapon fire
-
repeatable sound that represents a constant beam being fired
-
missile weapon fire
-
player knows that a missile has been fired, and should be prepared to dodge
-
same sound used when player fires missiles
-
explosion
-
when an explosion powerup is used
-
warning alarm
-
so player knows a boss is incoming
-
music
-
want to stick old midi-sounding music
-
remind player of games' roots
-
Background story
-
Fairly Simple
-
no dialogue
-
player character must use newly invented space fighter ship to defeat bad guys
-
travels through multiple levels
-
Characters
-
shooter player character
-
engine room player character
-
5 bosses
-
Boss of Level 1: Shield Tank
-
Base Color: Green
-
this means he specializes in Shield Technology
-
Size: Massive
-
this boss takes up almost the entire top screen
-
boss has a high powered shield that the player must first destroy to damage the boss
-
boss can summon recharge drone to siphon player shield energy into his own
-
player can interrupt recharge by blowing up recharge drone
-
destroying recharge drone spawns special node in engine room
-
this special node recharges player shields to full
-
when shield is gone, player can damage hull
-
when hull damaged 1/3 total hull damage
-
boss performs a shield surge
-
shield surge disables player weapons for 2 seconds
-
shield surge replenishes boss shields to 100% over 2 seconds
-
phases
-
hp > 2/3: phase 1
-
2/3 > hp > 1/3: phase 2
-
1/3 > hp: phase 3
-
attacks
-
main cannon
-
cooldown
-
phase 1: 15 seconds
-
phase 2: 10 seconds
-
phase 3: 5 seconds
-
turn towards player, stop, charge for 1 second, fire massive beam in that direction
-
100% shield damage over .5 seconds
-
minor cannons
-
one on right, one on left
-
10% shield damage
-
phase 1
-
turn towards player, fire
-
one shot
-
every .5 seconds
-
phase 2
-
turn towards player, fire
-
3 shots spread
-
every .4 seconds
-
phase 3
-
turn towards player fire
-
5 shots spread
-
every .3 seconds
-
Boss of Level 2 (Blue)
-
Boss of Level 3 (Yellow)
-
Boss of Level 4 (Red)
-
Boss of Level 5 (Final Boss)
-
numerous basic enemies
-
basic ship 1
-
flies from spawn location to specified location
-
turns to specified direction
-
periodically fires bullets
-
basic ship 2
-
follows a specific drawn path
-
no bullets
-
basic ship 3
-
spawns in location
-
slowly floats downward on screen
-
light shifting from left to right and right to left
-
lancer
-
moves from start location to end location
-
Suicide Ship
-
move to idle location
-
turn towards player
-
quickly move in this direction
-
Levels
-
5 levels
-
each consists of battling enemies
-
some have mini bosses
-
all end in boss
-
each (except last) has a dominant color, corresponding to one of our 4 colors
-
predetermined node spawn tracks will be implemented after play through of level
-
level 1
-
opening level
-
battles over land
-
green
-
Split into three sections
-
section 1
-
just outside of carrier ship
-
high above the ground
-
simple waves of enemies
-
purpose is to introduce systems to the player
-
mostly stationary, rarely firing
-
section 2
-
closer to the ground
-
slightly tougher enemies
-
introduce suicide enemies
-
introduce higher life enemies
-
section 3
-
just above the ground
-
different enemies
-
enemies that require more than just shooting to destroy
-
leads into boss fight
-
see characters section for boss information
-
level 2
-
level 3
-
battle in volcanic area
-
red
-
level 4
-
level 5
-
Scripts
-
Text based for interface
-
Warning
-
flashes across screen before boss fight
-
labels
-
shooter side
-
shields
-
timer
-
current powerups
-
engine room
-
offensive recipes
-
defensive recipes
-
label for notches
-
Programming Scripts
-
Cut scenes
-
opening cut scene
-
enemy missiles attack large carrier ship
-
player ship barely escapes out of ship as massive laser destroys carrier
-
start level 1
-
ending cutscene
-
end level 5
-
last boss destruction
-
-
Artificial Intelligence. How do NPC's, enemies, and followers behave?
-
bosses
-
each boss behaves differently
-
basic enemies
-
have a spawn location and a pattern to fly
-
also have locations/times to fire weapons
-
slightly more intelligent enemies
-
turn towards player ship and perform some action
-
for example, one kind of enemy will spawn, rotate to look at player ship, then fly straight in that direction
-
another may slowly charge a weapon while slowly turning to look at the player ship
Technical Specs
-
Programming languages, including compiler and emulator.
Programmed in Actionscript 3.0 using Adobe Flash CS4. Various ports would be easy to do in the future, but this is the language we are sticking to for our 10-week deliverable. It will be able to be run on any machine capable of running Flash Player (all three main OS's and several mobile devices) but a control scheme has not been derived for non-computer controllers.
-
Any code or engines to be used. If you plan to use a game engine, describe it and explain what its interface (to the rest of the system) is
Flash's built in animation engine will be used for animation. Actionscript 3.0 is incredibly similar to Java so the transition from Java to AS3 should not be an issue for the programmers.
-
Target hardware and Operating System.
Laser Cruiser will run on any machine capable of running Flash Player. We will be testing on Mac OS X 10.6, Windows 7, and Ubuntu 9. Hardware requirements will be determined during development but should be relatively modest in comparison to today's hardware.
-
Data Structures, or better, interfaces of ADTs and classes. A list of all (C++/Java) classes and their interfaces is appropriate in this section
Interfaces are unknown as of yet, but a sampling of the minimum class list would be as follows (indentation shows inheritance):
Game
PuzzleGame
ShooterGame
PlayerObject
PuzzlePlayerObject
ShooterPlayerObject
Ship
EnemyShip
LancerShip
LaserShip
SuicideShip
ArcShip
... (for each enemy attach pattern)
Node
PowerUp
ShieldPowerup
WeaponPowerup
... (for each powerup)
Bullet
EnemyBullet
PlayerBullet
FanBullet
SpeedBullet
...(for each firing type)
Background (separate .swf file containing the scrolling background)
-
Exact algorithms. If an NPC "knows" how to walk back and forth between to positions, avoiding a large rock in between, discuss the AI algorithm (or script) that will be used.
Each class extending EnemyShip will have a simple AI programmed in. Lancers fly straight from their starting location to their ending location. Suicide ships attempt to aim at the player and fly forward. Each AI will be slightly different but all will be relatively simple. The difficulty in the game comes from understanding what each ship is going to do and getting out of their way, not from "outsmarting" each one individually.
-
Back-up and version control plans. You don't want to lose 40 hours of work in tenth week!
Incremental backups kept by both a local Apple Time Machine drive as well as nightly builds posted to a remote git repository.
Schedule and Personnel
-
Deliverables as of the end of seventh week, Friday, Nov. 13.
-
Linda
-
Map, ships, and missiles drawn for level 1
-
Audiosurf-styled track and "nodes" drawn (same for all levels)
-
Ken
-
Level Design for Level 1
-
AI for some ships / missile patterns for Level 1
-
Austin
-
Lay out basic foundation / engine in ActionScript
-
Dennis
-
Write script for opening
-
Find sound effects for lasers / explosions
-
Everyone
-
Functioning Audiosurf-styled track (only basic single-color recipes)
-
Implement effects of basic recipes in shooter portion
-
Implement level 1 (or at least a functioning demo)
-
Deliverables as of the middle of tenth week, Wednesday, Dec. 2.
-
Linda
-
Ken
-
Level design for levels 2-5
-
Dennis
-
Find music for levels 1-5
-
Everyone
-
Implement levels 2-5
-
Implement remainder of recipes for Audiosurf track
-
Implement remaining power-ups for shooter portion
-
Deliverables as of the end, period, Wednesday, Dec. 9.
-
Linda
-
Everyone
-
Insert additional sounds/graphics/animations
-
Fix any remaining bugs
Primary Roles / What We Need to Learn:
Kenneth Childs: Programmer/Level Design
-
I have only barely used ActionScript in the past, so I'm going to have to gain a better understanding of the language. That said, this is something that I believe I can pick up quickly and relatively easily. The hard part will be integrating all the systems involved in the game together in such a way that keeps both players on their toes and encourages them to communicate.
Austin Fitzpatrick: Programmer
-
The biggest hurdle for me is going to be gracefully integrating the graphics. I'm fairly familiar with the language but I've always stumbled over Illustrator and there will be some learning curve involved in getting the graphics to play nicely with the code.
Linda Morton: Graphics designer
-
During the remainder of the course I'll need to familiarize myself with ActionScript so I can help with programming. I'm also highly uncomfortable working with vectors if they're not freehand, so I'll need to work on that when drawing the Audiosurf-esque portion.
Dennis Trinh: Programmer/Sound
-
I don't have any experience with ActionScript or Adobe Flash, so I'll need to familiarize myself with this language and environment. I'll need to learn what sounds work well in which situations as well as learn where I can find these sounds.