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:
- Bad and good falling objects
- Animated sprites
- Sound effects
- Keyboard or mouse input
- Graphical GPA meter
- Levels ("semesters") with increasing difficulty
- Finals at the end of each semester
- Intro screen with instructions
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
- More types of objects
- Better sounds
- On-screen semester indicator
- High score list
- Better graphics for finals
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:
- 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.
- 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:
- 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.
- 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
- 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
- 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.
- 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.
- 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
- 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