Home
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Iteration 5
Iteration 6
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.

Feature List / Requirements List

  • 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
Rough GUI Sketches
GUI Sketch3

Actors
  • Player: Can Save/Load game or start a new game. Controls Jeff via the keyboard. Can also pause the game.
  • Jeff: The hero of the game. Can move according to controls given by the player. He can impeded by obstacles, collect power ups, and attacks enemies. He also loses hit points if attacked by an enemy or hit by a falling obstacle. He is killed when his hit points reaches zero.
  • Obstacle: Depending on the type of obstacle, it can either impede Jeff's movements or decrease his hit points.
  • Enemies: Can attack Jeff, determinenting his hit points, or can be attacked by Jeff and have their hit points reduced, getting killed when their hit points reach zero.
  • Power Ups: Increase Jeff's hit points and the game score when collected. Also might give him a better weapon, or increase his size.
Use Cases
  • User Opens game
    • Can start new
    • Can play saved game
  • Jeff Collects an item
    • Depending on the item...
    • Score increases
  • Jeff Attacked by Enemy/Obstacle
    • Reduce hit points/stop movement
  • Jeff Jumps off Platform
    • Appropriate physics dictate movement
  • Jeff Attacks Enemy
    • Reduce Enemies hit points
    • Score increases
  • Enemy's Hit Points Reduced to 0
    • Enemy Dies
    • Enemy remains dead
  • Jeff's Hit Points Reduced to 0
    • If Jeff has remaining lives:
      • Jeff Dies
      • Score decreases
      • Level restart
    • If Jeff doesn't have remaining lives:
      • Game over
      • User can enter name if score among the top
  • User reaches the end of screen
    • Next level loads
  • User Saves Game
    • Game saved
UML Activity Diagram
For the most complex use case: "Jeff's Hit Points Reduced to 0"

Architecture
Something along the lines of a Swing using Java2D with a customized platformer back-end that represents the bulk of our coding work.

Resources

  • Mario games (for inspiration)
  • Java
  • Swing
  • Subversion