|
Group #1
The Adventures of Jeff
Jeff Cheng, Emily DiDonato, Jeff Orthober, Michael Vecchiollo
Overview
Vision Statement
Our goal is to create a single-player, 2D, side-scrolling platformer with obstacles, enemies, levels, and items. Our inspiration has been derived from Mario.
Features List
Overall Features (From Iteration 1)
-
The game will be played in a window as a desktop application. It will have a scrollable screen that moves from left to right along with some up and down scrolling. Additionally the player can save/load a game.
-
The player controls a character, Jeff, who can walk/run, jump over obstacles, attack enemies, and colect items.
-
The goal is to get to the end of each level
-
The score will be tallied as the game is played. Score increases with killed enemies and collected items.
-
Jeff has "hit points" which are lost when he is attacked by an enemy or when he is hit by falling objects.
-
When an enemy is killed (hit points reduced to zero), it stays killed.
-
-
The physics of when Jeff jumps off of a moving platform will include momentum.
-
The level is designed with the objects placed on a grid, the characters and objects can move independent of the grid.
-
Sounds/music will also be included
Jeff's Controls Features
- Jeff can crouch
- Jeff can shoot while crouched
- Jeff cannot jump while crouched
- Jeff cannot crouch while in mid-air
- Jeff can climb ladders
- Jeff can shoot while on a ladder
- Jeff can more horizontally in mid air (but only a little bit)
- Jeff can unlock a double jump feature which allows jeff to jump a second time while in mid-air
Jeff's Upgrading
- At the end of each level, a shop menu appears. Here the user can spend the score gathered while playing the level to upgrade some of Jeff's features.
- You can upgrade Jeff's Hit Points, Speed, Weapon Damage, more..
Other Game Features
- Jeff uses 4 different weapons (katana, fireball, tomahawk, and laser gun)
- The weapons are unlocked after a set number of completed levels
- Jeff can switch between the weapons during game play
- If Jeff is killed during a level, you start over at the begining of the level
- Jeff becomes temperarily invincible when damaged
- Some levels will have impeading terrain (like slippery ice)
- Enemies will have weakness and resistances to different weapon damage types
GUI Sketches
Key Features
- The game will be played in a window as a desktop application. It will have a scrollable screen that scrolls from left to right.
- The player controls a character, Jeff, who can walk/run, jump over obstacles, and attack enemies.
- The goal is to get to the end of each level.
- Jeff has "hit points" which are lost when he is attacked by an enemy or when he is hit by falling objects.
- The level is designed with the objects placed on a grid, the characters and objects can move independent of the grid.
- If Jeff is killed during a level, you start over at the begining of the level.
- Jeff becomes temperarily invincible when damaged.
Architecture
For our architecture we plan on Swing using Java2D with a customized platformer back-end that represents the bulk of our coding work.
Use Cases
UML Sequence Diagram (required)
Use case: Jeff moves right
Class Design Proposal
/**
* ObjRegion
*
* This class is a small region of an object that has its own properties.
* Such as shape, tangibility, and whether or not it gives damage.
*/
/**
* Tangible
*
* This interface determines whether or not another object is able to pass
* through it.
*/
/**
* HasTerrainEffect
*
* This interface will set the terrain that affects Jeff's movement.
*/
/**
* GiveDamage
*
* This interface determines if whether or not an object gives damage.
*/
/**
* TakeDamage
*
* This interface determines if an object takes damage.
*/
/**
* Environment
*
* This area contains many objects. Is what the user sees while playing.
* It essentially represents the levels and handles hit detection.
*/
/**
* Game
*
* Enables a user to start, load, pause, or save a game.
*/
/**
* GameObj
*
* Any physical object in the environment.
*/
/**
* Enemy
*
* Has a set movement and VERY limited AI. Can attack Jeff and have its hit
* points reduced until killed.
*/
/**
* Terrain
*
* An unmoving object that characters can walk on, with different effects on
* the character's movement.
*/
/**
* Obstacle
*
* An object which may move and may cause damage.
*/
/**
* Item
*
* An object that when touched by Jeff has some sort of beneficial or possibly
* negative effect.
*
* Ex: Increase his size, increase his HP, or decrease size or HP.
*/
/**
* Jeff
*
* The hero of the game. He is able to move and jump based on the user's
* commands. He has HP and can take damage or attack.
*/
/**
* Projectile
*
* A weapon thrown by Jeff or an enemy that decreases the HP of the target if
* struck.
*/
UML Class Diagram(s)
NOTE: If clicking the link below displays a mostly black picture, then try saving the image to the desktop to correct the problem and see the arrows.
UML Class Diagram
Resources
- Mario games (for inspiration)
- Java
- Swing
- Subversion
|