Game
In this two-milestone project, you will create a two-player/one-computer game. The first milestone establishes the game's structure: models, terrain, and interaction. The second milestone adds on style: textures, animations, and visual effects.
You may complete this project by yourself or with one other person. Since the game is two-player, having a partner is helpful. No larger groups are allowed. Choosing a reliable partner and maintaining a mutual collaboration is your responsibility, not your instructor's. If you do work with a partner, send your instructor a DM to declare your partnership. State whose repository will host the game, and your instructor will grant the other partner access.
Milestone 1: Structure
Requirements
To receive credit for this milestone, you must meet all of the following requirements. No partial credit is given. Submit on a later ready date if a requirement is not yet met.
-
Place your renderer in
renderers/your-title
in one of your group's individual Git repositories. Replaceyour-title
with your game's title. - Create a two-player game that is either competitive or cooperative. Networking is too much for a graphics course; run within a single browser.
- Design your own models for the objects in your game. Use this opportunity to learn; do not use others' models.
- Create a terrain for the player to traverse.
- Populate the terrain with your models.
- Render the scene using Blinn-Phong illumination. Color is unspecified for this milestone. Feel free to use a constant or uniform albedo.
- Employ a first- or third-person camera so the player can move around the terrain.
- Identify the mechanics you want to support. Are you collecting? Activating? Firing? Investigating? Photographing? Performing music? Dancing? Painting? Racing?Implement the core input system that supports these mechanics. Browsers don't generally support multiple mice. Consider using the Gamepad API to get simultaneous inputs.
- Your code must be cleanly formatted, the variable names must be meaningful, and comments should explain non-obvious code.
Submission
Share in the Discord #game channel a video of you navigating and interacting with your game world. Upload the video to a streaming service like YouTube, Vimeo, or Canvas Studio and share only the URL. All group members should offer a voiceover explaining your design decisions, the game's mechanics, and the animations and effects you intend to support. Videos should be 3–5 minutes long and no longer.
Commit and push your work to GitHub.
Milestone 2: Style
Requirements
To receive credit for this milestone, you must meet all of the following requirements. No partial credit is given. Submit on a later ready date if a requirement is not yet met.
- Texture every surface.
- Add skeletal animations to at least two models in the scene.
- Implement at least four of the following effects: a particle system, billboarding, a skybox, environment mapping, water, fog, and shadows.
- Investigate and implement one effect not discussed in class. Possible topics include but are not limited to bump mapping, text rendering, crepuscular rays, instanced rendering, deferred shading, silhouette rendering, and mirrors.
- Your code must be cleanly formatted, the variable names must be meaningful, and comments should explain non-obvious code.
Submission
Share in the Discord #game channel a 5-minute video of you and your partner (or a recruit) playing your game. Upload the video to a streaming service like YouTube, Vimeo, or Canvas Studio and share only the URL. Explicitly identify and discuss the effects that you have chosen to implement. Tell stories of the implementation process.
Commit and push your work to GitHub.