Goal: to create the casual 2D JavaScript/Canvas Game you proposed
Requirements and Grade Rubric
- 20% - Media Requirements:
- Sound:
- A background sound that loops.
- Effect sounds.
- Consider using sound.js
- DO NOT use the sounds that were given to you in class.
- Images:
- Consistent theme or style
- Optimized bitmap Graphics (JPEG or PNG)
- Drawing:
- Most or all of the game will be drawn into an HTML5
<canvas>
tag
- Most or all of the game will be drawn into an HTML5
- Sound:
- 20% - Interaction Requirements:
- Control
- The player should be able to control at least one sprite on the screen
- Control should be responsive and intuitive
- Control
- 20% - Usability Requirements:
- Game Screens:
- At a bare minimum there should be four screens (i.e. game states): title/instructions screen, game screen, game over/play again screen, pause screen.
- The pause screen will be triggered by
window.onblur
- Put your name on either the title screen or game over screen.
- Teaching: The player should have no trouble figuring out how to play the game. If necessary, provide instructions.
- Feedback: The player should intuitively know what "state" the game is in, and if their actions hindered or helped their progress in the game. A score should be visible to the player.
- Difficulty: Be nice to your players. The game is easy at first, then it gets harder. The player shouldn't die in 2 seconds like Flappy Birds.
- Game Screens:
- 20% - Game Design Requirements:
- Meeting your plan:
- It's expected that your game will change from the original design document, but overall you need create an approximation of what you planned.
- Game Entity (Sprite) Behavior:
- Do your sprites behave in interesting ways that go beyond what we did in class?
- "Game-ability"/"Game-ishness":
- Playable by at least one person, has rules, has a win/lose condition?
- Do player choices matter?
- As the player learns how to play the game can they improve?
- Is the game fun and something people would want to play? (Recall that when we added level goals and vector movement to Circles, it then became the game of Boomshine and something worth playing.)
- Meeting your plan:
- 20% - OOP and Coding Standards:
- Code runs with no errors (Modernizr image load errors are OK)
"use strict";
at the top of every JS file- JS Module Pattern (see Blastem II ICE for example)
- Function Constructors and prototypes - at least 2 new Function constructors (like
Bullet
,Enemy
, ...) that were created by you. - Object Literals
- Comment every method you write
- Delete or comment out your
console.log()
calls - You will only receive credit for code that you write beyond what you've inherited from Boomshine and Blastem II
Extras
- Saves and displays high scores with
window.localStorage
- Stuff we didn't cover in class that you figured out on your own.
Rubric
- Good (Meet all requirements above reasonably well) = 90%
- Better (Go beyond expectations in 2 or more areas) = 95%
- Best (Go significantly beyond expectations in 2 or more areas) = 100%
- Wow! = 101%+
Documentation (-10% if not done)
- Document what changes were made in your game from your original design..
- Document how you met the 5 categories of requirements, and be specific about any extras you did.
- Document any non-course resources (libraries, sounds, images, tutorials, sample code) you utilized. Note: You don't have to document that you used the code I gave you in class.
Working Prototype (-10% if not done)
Create a working prototype that illustrates the core mechanic of your game. See dropboxes for due date.
Final Submission
- ZIP up and post to dropbox before due date. This is worth 22.5% of final grade.
- Paste the documentation into the comments field of the dropbox.