Final Project
CPS 004.1, 2 August 2002
In groups of two or three, you are to write an applet that is a game
a single person can play interactively on the
computer. While this and the rest of the instructions refer to you
software as being a game, some other projects will be suggested. The
idea of "playing" may have to be adjusted as needed. As a minimum, you are to build one web page that contains all of the following:
- advertisement for your game, as you might find on the cover of the shrink wrapped box your software will
come in
- directions of how to use your version of the game (e.g., what it takes to win (or lose), what happens when
the player wins (or loses))
- an applet that allows a player to play the game until she wins (or loses), then the applet should display some
informative message and simply stop
Choosing Your Project
For your final project, you may choose to implement one of the following games or a variant (if you want to do
something not in this list, you must check with me first). The projects below are listed in order of increasing
complexity and time required to complete. In order to recognize the different level of effort needed to complete
each program, there is a maximum grade possible for a basic, perfectly working version of each program.
-
Konami's Frogger (max grade B+)
The goal of this game is almost Zen-like: to get to the other side. But considerably less Zen were the many
obstacles in your path: zooming cars, trucks and buses, snakes, alligators and unpredictable turtles. Your
daredevil amphibian starts at the bottom of the screen, separated from his lily pad by a busy street. Using
the keyboard to hop up, down, left and right, you guide your frog up and around the speeding vehicles, but if
one hits the frog it becomes road-kill.
- Simulation of the Solar System (max grade B+)
This simulation is supposed to display the movements of the
planets and select moons in the most realistic way possible. This is sort
of open-ended and the grade will depend on the degree of realism you
achieve. You might consider having two programs or parts. One show the
inner planets only, Mercury thru Mars, including our moon, possibly others.
The other view would include the whole solar system, but it might
not show the inner plants in any serious detail.
(Definitely for someone with at least
some interest in astronomy.)
- An electronic basketball scoreboard (max grade B+)
Simulate a basketball scoreboard making it as practical and realistic as possible. The top area should be for display include score, timers, etc.
The bottom of your applet should be a control area where clicking on certain
shapes causes appropriate actions. Again, the degree or realism and
practicality you achieve will determine your grade. At the minimum
it should show the main clock, the shot clock, and the two scores. The
trick is to make it easy to use and possibly add other bells and whistles
such a fouls, time outs, etc.
-
Milton Bradley's Simon Game
(max grade B+)
This popular children's memory game tests the player with a sequence of random colors, that the player
must repeat in the same order to continue. Each time the player correctly repeats the sequence, another
random color is added to the existing sequence until a maximum of sixteen colors have been played. If the
player does not repeat the proper sequence, the game ends. Colors are chosen from four possibilities: red,
yellow, blue, and green.
- Conway's Game of
Life (max grade A)
This simulates the life in the most simple terms using what
is called a "cellular automation". The rules for life are: Everything
exists in a grid (like a checkerboard). Each square either contains life
or not. Everything proceeds in strict time steps and everything in
the current time step is strictly determined by the state of things in
the previous step. For each cell (or square): If it is currently empty
but had exactly three live neighboring cells life is created. If a cell
currently contains life but has any number of neighbors other than
two or three, then it dies. A good user interface is important.
-
Space Invaders
(max grade A+)
This game could roughly be divided into three components.
- You and your spacecraft
- Your protective shields
- Aliens attacking you in their spacecrafts. The aliens of varying types
and of varying abilities.
The idea is to knock down as many aliens as you can without destroying your
protective shields thereby extending your life.
The aliens shoot missiles at you and you in turn try to shoot them down.
The alien missiles can cause varying amount of harm to your spacecraft. So
say for the smallest alien spaceships it may take 10 missile hits to destroy
your aircraft but for the biggest one it would take just two.
-
The Set Game (max grade A+)
This is a variant of the card game set. For the exact details please go
through the site. I would suggest starting off with the following simple
configuration initially.
The objective of the game is to get a set of like shapes ( same shape and
same color) or a set of totally different objects ( different shapes and
different colors)
You can then build on this with more complicated objects (and build on
your grade in the process).
- Alexey Pajitnov's Tetris
(max grade A+)
Possibly the most addictive PC game ever created, Tetris
is a "peaceful game heralding a new era in the
relationship between super-powers and their attitude toward world
peace". Random pieces (each consisting of exactly four squares)
fall until they hit
the bottom or another piece that already fallen. As pieces stack up,
rows of occupied squares spanning the
board's entire width may form. When such a line is formed, it
disappears and all the squares above it fall
down one line to fill the newly empty squares. This process
continues until a new piece appears and has no
room to fall because it is already resting on a previously fallen piece.
This project can either be a lot of fun or very frustrating. For this reason, it is even more important that you plan
your program carefully, especially what classes you will use and what data each needs to complete its purpose,
and build your final program incrementally in small, manageable steps. Additionally, make sure your entire
group sets some initial goals for your program that are reasonable given your programming ability, other
commitments, goals in the course, etc. If you have any questions about your estimated complexity for your game,
please talk to one of the course staff.
Schedule
In order to try to get this project done on time, you should work to the following deadlines.
- Friday, August 2
- Choose your final project group and decide which game you want to work on.
- Create a project web page advertising your choice and link it to your course web page.
- Weekend, August 3, 4
- Meet and create a one page written plan for how you intend to
structure your game and link it to your project web page.
You should describe the major classes and algorithms you expect
to implement.
- Do some experimenting and prototyping.
- (Don't forget to study for Exam 3!)
- Monday, August 5
- Exam #3, and after that ...
- There may be a few
issues that arise while coding, but you should have a good idea
about how you build your game and how you will break up the work
among group members.
- Tuesday, August 6
- The course staff will meet with each group
during class to review your written plan.
- Implement at least a small but working part of your
project and link it to your project web page.
This is to verify that you are on the right track and will
not have left all the work to be done at the end.
For example, in Simon, you should have built a board
and show that you can click on the
colored buttons.
- On or before Friday, August 9 (before noon!)
- Complete the entire project.
- Complete your project web page following the guidelines above.
- Meet with the course staff as a group to demo your project and discuss its details. Plan on this demo
taking approximately a half-hour --- everyone in the group must attend this demo.
Implementation Tip
Save often! More than that: as you reach certain stages of implementation,
where some things are working, but perhaps not everything: save permanent
copies of your work to that point under a different name and/or a different
folder. Then, if you get stuck and/or mess things up making further
"improvements", you can always go back to one of the saved states. It's very
sad when you had a working (if not wonderful) program and you've made
so many changes that you can't get back to it.
Bells and Whistles
Once the basics are working, you may want to add some additional features for extra credit. Note that none of
these will count unless the basic game is working.
- score - display the score (or level, time remaining, number cleared, etc.) in the applet
- reset - allow the game to be started over once the player has lost
- levels - make the game get harder the longer, or more often, the player plays
- high score - keep track of the best scores made during this session
- more interesting graphics and sounds