CS 1110/1111 - Spring 2016 - Homework Assignments

Important Links: Submit POTDs to the Automated Grading System and Join the TA Office Hour Queue

Program of the Day

Partner Project: Building a Game - Due: Friday, April 29, 11:00 AM

Game Project Partner Registration - NOTE: Your partner must be in the same lab as you (or both in 1111)!

Following on from POTD 16, your goal in this partner project is to build a bigger game! You need to use PyGame and gamebox, just as you did before.

However, this time we are letting you build whatever game you want! We will be requiring that you implement at least a basic set of features to ensure that your game is complex enough, but feel free to do more! Be careful you don’t overscope, though! You don’t want to set out to build something too big that you can’t finish it. If you have any questions about the scope of your game, please ask an instructor or TA.

You will be able to find gamebox and all of our example code at https://cs1110.cs.virginia.edu/code/gamebox. We will be adding more example code as we move through POTD 16 and the project.

You should also download and look over the gamebox API and introduction - gamebox.pdf

Required Features:

  1. User Input - Either through the keyboard or mouse, you should have appropriate and working user controls.
  2. Graphics/Images - You should use some appropriate images in your game.
  3. Game start and end - Have a proper start and end to the game, with titles, etc.

Optional Features:

You must implement at least 4 of these:

  1. Animation - Use a sprite sheet to have an animated character.
  2. Enemies - Have characters that can hinder the player character from accomplishing the goal.
  3. Collectables - Add collectables (i.e. coins) to the level that can be picked up by the character with a counter that appears on the screen.
  4. Scrolling level - Make it so you can keep going off the screen! (You may need to add a background image to make this more obvious.)
  5. Timer - Have a countdown (or count up) timer for your game.
  6. Health meter - Have a health meter that changes as you hit enemies/obstacles.
  7. Music/Sound effects - Have some good sound design.
  8. Two players simultaneously - The two players MUST be able to interact directly in some way.

Game Ideas:

Having trouble coming up with a game idea? Try one of these! Or make a variation of one of these!

  • Frogger - Can you get the frog across the road without getting hit by a car? Frogger on SmashingArcade
  • Pac-Man - This classic game is completely reasonable to pull off! Pac-Man on SmashingArcade
  • Infinite Runners - Any basic game where you are running left to right and there are things to jump over, etc.
  • Keep-Away - Build a game where you character has to keep from getting “tagged” by other characters running around the level!

And many, many more! We will add more here in coming days and feel free to ask for suggestions too!

Submission: Unlike all the other submissions, this one needs to go to Collab since you may be turning in images, audio, etc. Make sure you game is called game.py and is in its own folder with all the game assets (images, audio) along with gamebox.py. Zip/archive this entire directory and submit that along with a .txt document describing what your game is, what your features are that you want us to grade, and how to play it. TAs that can’t figure out how to play your game will definitely give you a low score!

ONLY ONE PARTNER SHOULD SUBMIT! PLEASE DO NOT DOUBLE SUBMIT YOUR PROJECT!!!

Partner Evals: Please fill out this evaluation form for your partner!

Upcoming POTDs

Previous POTDs