Casual Game Development IGME-450

Project 2 - Casual Game or Experience

Goal - in teams of 1 or 2, to create an application utilizing either

Milestones

Requirements and Grade Rubric for 2D Canvas Game

These are the same as project 1, except that a partner is now allowed, and the overall expectations are higher. Also, project 2 must be a substantially different game from what either team member submitted for project 1. Both partners must substantially contribute to the coding portion of the application.

Requirements and Grade Rubric for 3D Three.js Interactive Experience

Utilizing the Three.js API, students will build a compelling interactive experience (or game).

  1. 15% - Media Requirements:
    • Sound:
      • A background sound that loops.
      • At least 1 effect sound.
      • DO NOT use the sounds that were given to you in class.
    • Images:
      • Consistent theme or style
      • Optimized bitmap Graphics:
        • Smaller dimensioned graphics can be PNG
        • Larger graphics are likely JPG
  2. 30% - Interaction Requirements:
    • Camera Control
      • The user should be able to control the position of at least one camera - this will likely be done with keyboard controls. Consider pairing an avatar with the camera. If so, the camera should move to follow the user's avatar.
      • Control should be responsive and intuitive.
      • Constrain the camera to certain positions - for example, don't let it go "below" the world (except in an optional "god mode")
      • Add a means to reset the camera to the starting position.
    • Widgets
      • Have at least 3 additional controls that allow the user to change aspects of the world such as lighting, default camera, positions or speeds or opacity of objects, and so on.
      • You can use either the dat.gui library from the book - or regular HTML controls.
    • 3D Object Interactions
      • The user should be able to select at least two different objects in the world with the mouse.
      • The selected object should react and give feedback to the user by changing its appearance in some way.
      • Selecting an object will cause a change in its behavior in some way (stop moving, speed up/slow down, ...)
  3. 15% - Usability Requirements:
    • Teaching: The player should have no trouble figuring out the theme of your world, how to explore it, and what the various controls do. You must provide textual instructions. Hint: You can create a 2D plane and put a texture of instructions on it, and then use 'h' as the keyboard shortcut (onkeyup) to show/hide the instructions.
    • Feedback: The player should intuitively know how to navigate your world and shouldn't get "stuck" anywhere.
    • If your world is a game: strive to meet the game design requirements from project 1.
  4. 30% - 3D Environment:
    • Use a wide variety of built-in geometries in your world (planes, spheres, cubes, cylinders, toruses, ...)
    • Utilize at least 3 textures
    • Light your world appropriately to match its theme. You will probably want to enable shadows.
    • If desired, use fog and other effects like lens flare.
    • Create at least one customized geometry - you can do this manually (see examples 4 & 5 from chapter 2), or by importing a 3D model (see chapter 8)
    • At least 3 objects in your world should continuously animate of move in some way.
  5. 10% - 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
    • ** 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 the book and in-class exercises.

Extras

Rubric

Documentation (-10% if not done)

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