By Untitled #2
James Darpinian - Jon Huang - Mark Nelson

Academic Onslaught User Guide

Academic Onslaught is a game of survival. You are a poor hapless freshman, suddenly assaulted with boatloads of work. How far into your academic career will you get before you ITR?

When the game starts, assignments and beer will fall from the top of the screen. Your job is to move the student head with the left and right arrow keys to avoid the beer and catch the assignments. Cactching an assignment will raise your GPA, but if you miss one your GPA will fall. Catching beers will also lower your GPA. At the end of each semester, a final will drop down. Finals raise or lower your GPA five times as much as a normal assignment. If your GPA drops below 1.0, you'll ITR and the game will end. How far can you get before you flunk out?

Here is a typical gameplay screen from Academic Onslaught.


Back to top

Final Report

Version 1 of Academic Onslaught satisfied almost all of our expectations. It follows the original game spec very closely.

The features we implemented are:

The only part of the original spec that we didn't implement is winning the game after 8 semesters. We felt that this was unnecessary since you could go on to grad school, and having the game be open-ended makes it more compelling.

Known Bugs

When a semester ends, a final appears at the top of the screen and the next semester begins immediately. The semester shouldn't really end until the final is caught or falls off the bottom.

Possible Future Enhancements


Back to top

Academic Onslaught Original Game Spec

Overview

Academic Onslaught is a simple, single-player, action-oriented arcade game with a theme based on Harvey Mudd's academic life. Players try to maximize their GPA by catching falling objects that contribute to their academic career, as homework, quizzes, and exams, and by avoiding things that will distract them, such as sleep, beer, and computer games. The goal is to maintain as high a GPA as possible through graduation. If the player's GPA falls below a minimum level, on the other hand, they ITR, losing the game.

Look and Feel

The game screen will be a two-dimensional rectangle within which the gameplay takes place. Falling objects will be represented by simple shapes (likely color-coded) in the alpha release, and by graphical icons representing various objects in the final release. Objects will move smoothly across the screen, rather than jumping between grid squares as with some older arcade games.

Sound effects may be added if time and technical issues permit.

Interface

The player moves horizontally along the bottom of the screen using either the keyboard (with the left and right arrow keys) or the mouse (by simply moving it left or right). The user can toggle between the two modes of input through the POP framework around which the game is based.

Gameplay

The player catches objects by simply moving left and right along the bottom of the screen to line up vertically below them as they fall to the bottom of the screen and collide with the player. All objects are of two types: "good," the academic ones, and "bad," the distracting ones. Catching good objects will raise the player's GPA; catching bad objects or missing good objects will lower GPA (missing bad objects leaves GPA unchanged).

Level Design

After a certain number of objects have fallen, the player continues onto the next level, representing the next semester. Each subsequent level becomes more difficult, by tweaking various gameplay parameters --- speed objects fall, number of simultaneous falling objects, and so on. If the player hasn't yet ITRed at the end of eight semesters, they graduate and win the game, with the final GPA being the player's final score.

Technical Requirements

The game will be built using the POP framework, and so requires a PC to play. Since it consists of entirely two-dimensional graphics, any relatively recent PC should suffice.
Back to top

Use cases

Core use cases:

- Play game
- Move basket
- Catch object
- Miss object
- End game

Some elaboration:

Play game:
1. Player starts game
2. Intro screen asks if player wants instructions*
3. Player says no
  3a. Player says yes*
4. Player moves basket*
5. Falling object misses basket*
  5a. Falling object is caught in basket*
6. Player repeats 4-5
7. Player ends game*
   7a. Player's GPA falls below critical level, ending game*
   7b. Player completes all 8 semesters, ending game

* = separate use cases

Move basket:
1. Player uses left and right arrow keys to move the basket horizontally along the bottom of the screen

Catch object:
1. As it falls, the object encounters the player's basket, thereby being caught
2. If the object is good, GPA meter and score increase
   2a. If the object is bad, GPA meter decreases

Miss object:
1. Object falls to the bottom of the screen without encountering the player's basket
2. If the object is good, GPA meter decreases
   2a. If the object is bad, no GPA change, but score increases

End game:
1. Player closes window or chooses "exit" from the file menu
2. Game exits

Additional enhancements:
Player's GPA falls below critical level, ending game
Player completes all 8 semesters


Back to top

UML Class Diagram

Back to top

Original Risk analysis

Alpha release: Our alpha release will have the basic functionality of our core use cases: Play game, Move basket, Catch object, Miss object, and End game. It will have placeholder graphics provided by the POP framework.

Alpha risks:

  1. Distinguishing between good and bad objects

    We need a way to distinguish between good objects that raise the GPA when caught and lower it when missed, and bad objects that lower the GPA when caught and have no effect when missed.

    We can eliminate this risk by looking at the example games that have more than one type of enemy and figuring out how to add this capability to the POP game stub (which will be the base of our game). Once we do this the risk will be eliminated. We will do this by Saturday afternoon.

  2. Graphical score display

    All interactive messages such as health, score, etc are displayed in the status bar in the POP framework, which is not a very good way to display them. Since this game deals with maintaining a sliding score (the GPA), this information should be visible on the main game screen.

Version 1 risks:

  1. High score storage

    The final game specs call for a high score list to be stored on the hard drive. This requires the storage and retrieval of information from the file system and some way of switching modes to view the list.

    Compromise 1: Maintain top 10 only in memory (non-persistent)
    Compromise 2: Do not develop this feature.

  2. Player input

    In some places we need the player to do more than control the basket. We want to ask the player if he/she wants instructions and allow them to enter their name for the high score list. None of the POP example games have this capability.

    Compromise 1: Don't allow name entry for high scores
    Compromise 2: Don't ask about instructions

  3. Animated bitmap graphics

    We would like the player critter and falling items to have animated sprites (for example, a TV with changing images). No POP example game has this feature, but we hope that there is a way to swap bitmaps rapidly and create this effect. Proper alignment and speed may be an issue.

    Compromise 1: Use static bitmap graphics.

Revised risks

  1. Bouncing bug

    Our alpha has a bug that manifests itself when many critters are close together. Sometimes they will bounce off of each other and fly in all directions. We need to fix this bug for version 1.

    Compromise 1: Ensure critters aren't close to each other.

  2. High score storage

    The final game specs call for a high score list to be stored on the hard drive. This requires the storage and retrieval of information from the file system and some way of switching modes to view the list.

    Compromise 1: Maintain top 10 only in memory (non-persistent)
    Compromise 2: Do not develop this feature.

  3. Player input

    In some places we need the player to do more than control the basket. We want to ask the player if he/she wants instructions and allow them to enter their name for the high score list. None of the POP example games have this capability.

    Compromise 1: Don't allow name entry for high scores
    Compromise 2: Don't ask about instructions

  4. Animated bitmap graphics

    We would like the player critter and falling items to have animated sprites (for example, a TV with changing images). No POP example game has this feature, but we hope that there is a way to swap bitmaps rapidly and create this effect. Proper alignment and speed may be an issue.

    Compromise 1: Use static bitmap graphics.


Back to top

Feedback From Concept Team

Alpha Version Review

Evaluation of Academic Onslaught by FreeLSD - "The Power to MIRV"
Good frame rate: Yes
Good game mechanics: No - balls crash into each other
Good graphics: No - need bitmaps
Short learning curve/intuitive: Yes
Simple environment: Yes
Stable: Yes
Clear win/lose condition: Yes
Increasing difficulty / starts easy: No - stays at same difficulty
Good level design: No - all levels are the same
User control: Yes
Controls respond intuitively: Yes
Clear, reasonable scoring: No - final score is always the same
Sound effects (and music?): No - not really expected though
Predictable physics: No - objects fall at constant speed
Fast-paced: Yes
Multiplayer: No - not in game spec
Instant feedback: Yes

Game spec and risk analysis evaluation

The game spec and risk analysis for Academic Onslaught look fine. Good luck with implementation.

Back to top

Original game treatment

Title: Academic Onslaught
Story: Surviving four years of Mudd
Gameplay: Catch homework and tests while avoiding drugs/sex/alcohol
Level Design: Semesters of College - more work each time
Overview of scoring: Get homework and tests raises GPA - ITR to lose
Artwork: Different graphics for different types of falling objects
Possible extensions: Slack or Die (opposite goal)

Original concept art


Back to top