Overview

Here are a few assignments I've given over the years in my game programming class. Feel free to try them if you wish. For obvious reasons, I won't post answers on the Internet (we already know I can do this stuff) but if you're a teacher and you want to talk about the projects, I'm happy to help.

Mad Lib

Overview

Build an example of the classic 'mad lib' game. The program will ask for a number of words and use those words in the construction of a story.

Sample Run

a sound effect: whoosh
plural animals: warthogs
an action verb: destroy
another verb: sing
gerund (-ing verb): waltzing
body part: toes

Little bo whoosh has lost her warthogs
and doesn't know where to destroy them.
Leave them alone, and they'll sing
waltzing their toes behind them.

Notes

Horse Race

Overview

Create a simple game that illustrates your basic understanding of command-line programming in Python. Your game will be a horse race. You'll have three horses. Each horse will have a 50% chance of advancing one step on every turn. After calculating each horse's position during a turn, create a simple text-based display describing the progress of the horses. Have the user press the enter key to display the next turn.

End the race when one of the horses has gone ten steps.

Sample Run

Here's a sample run of the program:

|.0........|
|.1........|
|2.........|
Enter for another round
|.0........|
|..1.......|
|.2........|
Enter for another round
|.0........|
|...1......|
|..2.......|
Enter for another round
|..0.......|
|...1......|
|..2.......|
Enter for another round
|..0.......|
|...1......|
|..2.......|
Enter for another round
|..0.......|
|...1......|
|...2......|
Enter for another round
|..0.......|
|...1......|
|...2......|
Enter for another round
|...0......|
|...1......|
|...2......|
Enter for another round
|....0.....|
|....1.....|
|....2.....|
Enter for another round
|.....0....|
|....1.....|
|....2.....|
Enter for another round
|.....0....|
|....1.....|
|.....2....|
Enter for another round
|......0...|
|....1.....|
|......2...|
Enter for another round
|.......0..|
|....1.....|
|......2...|
Enter for another round
|.......0..|
|.....1....|
|......2...|
Enter for another round
|.......0..|
|......1...|
|......2...|
Enter for another round
|........0.|
|......1...|
|......2...|
Enter for another round
|........0.|
|......1...|
|......2...|
Enter for another round
|.........0|
|......1...|
|......2...|
Enter for another round
horse # 0 wins!
|..........|
|.......1..|
|......2...|

Notes

This program will use most of the concepts covered up to now. A great version of the program will have the following features:

Blackbelt Challenge

If you've mastered this project, you can enhance it in a number of ways. Try creating a second version with your own enhancements, or one of the following:

Difficulty

This will be a pretty difficult assignment if you've never programmed before. If that's the case, please go as far as you can on your own and ask for help!  I'll be in the lab Monday and Wednesday night, or you can stop by my office (SL 280D) pretty much any time on Tuesday or Thursday.

IDEA drawing

Overview

Demonstrate your understanding of the IDEA / ALTER Framework by creatng an image using pygame. Your image does not have to have any moving parts, but it must demonstrate a numer of features of Python and pygame, including:

It is expected that you've read through chapter 5 and watched up to video 18 to do this project.

Expectations

Create a Python / pyGame program that draws an image on the screen. The basic form of this image will have all the features described above. Of course, you can embellish this project if you with, with animation or user interaction.

Please put all resources used in this program (source code, image files, font files) in a single zip file and submit that zip for grading.

Sprite Collisions

Overview

Create an animation to illustrate your understanding of the following topics:

You'll create a simple animation that shows a number of sprites moving on the screen. You should have at least three moving sprites based on images. The sprites should each move independently according to some sort of random pattern. You should also account for sprites leaving the screen and bouncing into each other.

video of animation in action (YouTube)

This assignment assumes you've watched up to video 24

Details

Tips

This is a challenging project, but you can do it. Here's some guidelines:

You should be able to test on each step. Let me know if you have trouble at any step, and I'm happy to help.

Submission Guidelines

Please include all your resources in a single zip file. (images, sound effects, font files, and source code.) Submit that zip file.

Pong Game

Overview

Build a version of the classic game 'Pong.' Your program should include player control of one paddle using the mouse. The other paddle should be controlled automatically by the computer. The game should feature multiple states, a score-keeping mechanism, and an end-of-game state.

Details

You should have read all of chapter 7 and seen the corresponding videos before you write this program. Your job is to write a complete version of the game pong. Your game should have the following characteristics:

Submitting the project

Please place all of the files needed to run your project (code files, audio files, images, or special libraries) in a single zip file for uploading. This will greatly simplify grading the program.

Final Project

Overview

Build a game based on the skills learned in this course. Your game can be any style you wish, but please keep the following guidelines in mind:

Many things are optional in game development, so if (for example) discovering the game mechanics is part of the gameplay experience, it is not necessary to provide specific input instructions. However, it is important to advise the player that this is part of the point of the game.

Requirements

Please include the following with your game:

While the specific programming language is not critical, this course was conducted in Python, so you are expected to use Python for your game unless you've received explicit permission otherwise from the instructor.

Please submit the entire package in one zip file to oncourse. Note that the oncourse file system is notorious during the last week of the semester, so please also have a copy of your program available on portable media (thumb drive or CD) the day of the presentations. You may present the game on your own laptop, but note that Macs require an RGB adapter to be viewed on the classroom projector.

You will be expected to present your project on the presentation day (last day of class before finals.) Prepare about five minutes to describe what your game does, how it works, and a quick play-through.

Please contact the instructor if you have any questions about your project or need help getting started.

Have Fun!