CS 324E Assignment 7


Assignment 7: Games



Project Description

This project explores combining graphical and interactive elements into a video game. Teams will create a full-featured game with the following pieces: rules of play, keyboard and/or mouse controls, a visual display, a scoring system, and win-lose conditions.

assign

Basic Requirements

Your group will implement functionality for:
  1. A 2D game that is implemented via Processing within the sketch group_yourgroupnumber_assignment7.pde (or .pyde). This game will include the following elements:
  2. At least three rules of play that dictate how the player decides to interact with the system. To use Tetris as an example, the rules of play would be 1) tetrominoes can have one of six configurations 2) tetrominoes fall at a give rate from the top of the screen 3) tetrominoes stack if they intersect with an already played tetromino beneath them 4) tetromino blocks disappear if there is a line completed across the screen.
  3. At least four keyboard and/or mouse inputs. These controls dictate how the player functionally interacts with the system. To use the Tetris example, players can move the tetromino left and right and rotate 90 degrees in the clockwise and counterclockwise directions. This constitutes four types of player input.
  4. A visual display for the player to understand game state. This visual display informs the player of their progress in the game. Therefore the visual display must include some element to represent the player's will (in the case of Tetris, it is the position and orientation of the tetromino in play), as well as any other objects within the game (e.g. previously dropped tetrominoes).
  5. A GUI interface for scoring or other important player information. Other things this visual interface might display are number of player lives, round number, or number of objects collected. What your game displays will depend on the type of game, but all games will require some form of GUI display for this assignment.
  6. Win or lose conditions that present the player with a victory or defeat screen after the conditions are met. In the case of a Tetris-like game, the player might win if they can clear a certain number of levels. The player loses if the tetrominoes reach the top of the screen. In both cases, the screen might change to show victory or defeat, display the player's final score, and provide a button if the player wants to exit and/or restart the game.
  7. The game's design documentation to be written up and included in the weekly milestone progress report.

Each team member will be responsible for the functionality of some part of this system. It is up to the team to decide how best to divide the work. Note that each of the tasks listed are not necessarily discrete. For example, one team member could design the "playable" class and handle the controls and display of this character. Another team member might handle an "enemy" class's rules and display. Another team member might build another "enemy" class and handle its rules and display of enemy characters. How you divide up the work is up to the team, but please try to make it an even distribution.

Extra Credit

All assignments have possible extensions that you might consider adding to your scene for extra credit. Note that if the submission is well beyond the scope of the assignment, we will consider giving extra credit even if the features implemented are not ones suggested below. All requirements of the assignment must be met before credit for this will be given.

Pause screen (0.5 points)

Allow the player to pause the game by locking player inputs and stopping all in-game movements. The pause screen should have a "Continue" and a "Quit" button to continue the game and exit the game respectively.

Animated sprites (0.25 points)

Add animated sprites into the scene. This requires art assets in addition to the base Processing coding. If you do not create your own sprite work, be sure to cite the source of the sprites within the project description.

Animation Artifact (0.25 points)

Take shots of the game using the saveFrame() functionality. Convert these into a movie, which you will include with your submission.

Getting Started

To get started, your group will first decide on the game you wish to make. This game can build on the classes and projects you've made for previous assignments, and in fact, I highly encourage you to reuse parts and ideas to make your life easier!

You will then decide on a project structure to break this game into multiple classes and functional pieces, so that teammembers can work on them individually. This distribution will be written up and submitted as a progress report due mid-project.

Progress Report

This progress report, titled group_yourgroupnumber_a7_progress.pdf, will include the team's plan for, and current progress on, the game. The progress report should state the team's game goals, addressing all of the necessary functionality listed above. The report will also break down "computer science" considerations surrounding the classes and code structure. This will address the questions, what classes are necessary to create the simulation? What methods and fields will these classes require? How much progress has been made on implementing these classes? Finally the report will state which group member is working on which classes/objects/functionality. It will also outline the plan for integrating these separate pieces for the final submission.

One report will be submitted via Canvas for the entire team.

Project Submission

You will submit the following in the folder group_yourgroupnumber_assignment7:

  1. A Processing file group_yourgroupnumber_assignment7.pde (or .pyde)
  2. All necessary classes and subclasses this Processing file requires to run
  3. A README text file that tells us how to run your game as well as game controls
  4. Any additional media files necessary for the project
  5. An animation (or animations) made in the game if you wish to receive extra credit
  6. A project description text file, assignment7_description.txt, that summarizes game functionality, rules of play, win and lose conditions, what the included classes do, and any unexpected challenges. That is, this is mostly a rehash of the progress report but from the position of what you accomplished rather than what you were planning. Also document which group member worked on which part of the assignment. While group coding is allowed, each member is responsible for their individual parts -- this ensures all group members are participating and have mastery of the assignment.

Zip this folder and submit via Canvas.


Last modified: 01/04/17 by Sarah Abraham theshark@cs.utexas.edu