|
Comp201: Principles of Object-Oriented Programming I
Spring 2006 -- Student Final Projects
|
Below is a listing (in no particular order) of the final projects conceived
by the named students for this semester.
Comments from the staff are in red. To update
your description, please send a revised version to comp201, using the same format
as below.
General Advice
- Keep your game simple. Avoid the urge to overly complicate
the system.
- Get the basic functionality working as absolutely
soon as a possible. Life is a lot easier from working code.
- Think in terms of extensibility--install simple, basic
features now, but use an architecture that allows you to add fancier stuff
later.
- Work together with your partner in the same placem,
even if you are currently working on different pieces--the immediate communications
will solve many problems very quickly.
- Work incrementally, adding a little bit at a time.
Do not make huge changes without recompiling and testing along the way.
"Winballdon" by Heather Pearce and Marcos
Osorno
- Description:
Two player game based
off the classic video game Pong. Both players control a paddle, off which
balls bounce. The paddles can only move in the vertical axis. The goal is
to send a ball beyond the opponent’s paddle. Unlike regular Pong, the match
is won by pushing the opponent off the screen. When a ball collides with
the west and east walls, the actual content pane will move proportionally in
that direction. When the window is pushed off the edge of the screen that
corresponding player loses.

- Things you can do: Game will proceed
like a regular video game with more balls, faster balls, and weirder balls
being added as time passes. Rewards for scoring points will change the
scorer’s paddle state (making it bigger) or create random blockers;
similarly, players will be able to hit stationary target power-ups to change
their or their opponent’s state to their advantage. Types of balls launched
will be added chronologically by the game environment.
- Winning/Goal of the game:
Game is won by
pushing the GUI off the screen on the opponent’s side of the desktop a
predetermined number of times.
"Ballaga" by
Katie Zimmerman and Andrew Harrison
- Description: Our game is based on the
classic arcade game Galaga. Enemies will move in straight-line back and
forth motion on the top half of the screen. Your ship can move back and
forth across the bottom of the screen. You must try to kill (by firing kill
balls from your ship) the enemies to progress to the next level, avoiding
the kill balls that they fire at you. Different levels will be created
wherein the enemies have slightly different properties and behave in
different ways.
- Goal of the game: to keep your ship
alive for as long as possible.
- Things you can do: move back and
forth at will along the bottom of the screen. Fire kill "bullet" balls at
the enemies. Progress to the next level once all enemies have been
destroyed.
- How you win and lose: There is no technical way to "win" the
game, you simply try to get as far as you can before you are killed. You
can lose by being hit by a bullet ball fired by an enemy.
"Splitter Balls" by Kevin Lin & Ryan Peacock
- Description: Based off of mouse clicks, a line
will be drawn that sections off the display container and resizes it to hold
the new balls. the win condition is to have a 1/4 of the original size but
if there is a ball on both sides of the dividing line then the player loses.
after winning a level, its moves on to a new level. different levels will
have different combinations of amounts and types of balls. the different
levels will involve differing strategies. while each of the levels basic
setup will be determined by us, there will be some variability like color,
or type of ball.
- Things you can do: The user will be able
to interact with the game using the mouse. when he clicks the left mouse
button a horizontal line will be drawn and the right mouse button draws a
vertical dividing line.
- Winning/Goal of the game: The goal of the game
is to beat the very last level which you can only get to by beating the
levels before it. There could definitely be a situation where the user has
however many lives (I'll leave it up to us until we're making it) that last
them that many errors. Say the user makes a dividing line that doesn't
contain all the objects, that would make the user have to restart the level
and take on life off. If the user uses all his lives he loses.
If the user manages to go through the entire game and all its levels then he
wins.
"Ball Eater" by Britt Antley and Kyle Barnhart
- Description: The object of our game is to eat
all the balls on the screen. Only balls with a smaller radius can be eaten
by your own ball. Attempting to eat a larger ball will cause your own ball
to die.
- Things you can do: Every time you run
into a ball that is smaller than your own, the radius of your ball will
increase. If you run into a larger ball, your ball will die, and you will
lose one of your lives.
- Winning/Goal of the game: The game is won once
all opponent balls have been eaten. The game is lost when all lives have
been taken.
"Ball O' War" by
Eugene Stolboushkin
- Description: The game will no be so much a win
or lose game. It will be more like Tetris, where the goal is to keep going
as far as possible. The point of the game is to maneuver your ball as long
as possible without being hit by another ball.
- Things you can do: It will have
the following capabilities:
- Record the time you were able to survive and return it when you die
(by hitting another ball)
- 2 Player capability
- Increasing difficulty with time (more balls generated in a
pre-defined way)
- Custom player movement keys (for both players)
- A seek strategy wherein the computer controlled balls will randomly
seek out a human controlled ball by going to a previous known position
of the human ball.
- A UFO strategy, wherein the computer controlled ball can change it's
velocity and direction instantly and with no slow down or curving path.
- A disable/stun strategy: a ball of this strategy will not kill a
human player, but disable it's movement for sometime, during which the
human ball/object can still die.
- Split Strategy: a ball will split into two balls going in opposite
directions
- Boost feature: human balls will be able to have a velocity boost
(indefinitely, but higher speed means having to react faster)
- Decling Shield feature: a human ball will be able to engage a shield
that will initially block any ball but with use will decrease to being
able to block no ball
- Shoot strategy: a human ball will be able to launch a projectile
along it's axis of movement that will inflict damage
- Damage strategy: a ball can take damage that will reduce it's speed
and maneuverability
- MultiPlayer Feature:
- Two players seeking to destroy the each other. The balls will be
of equal "mass" (defined by area) and so the ball with the higher
velocity upon "impact" would win (in real life, the same forces
would act on both balls, but here, the faster one will destroy the
other with no damage to itself.
- Two player avoid: two players will seek to avoid the other balls
as long as possible, but not be able to destroy one another. The
player who gets destroyed first loses.
- Two players trying to destroy each
other while avoiding computer generated balls
- Increasing difficulty: in the single player and multiplayer avoid
ball games, the computer will first increase the number of balls to no
more than 6 (to allow game play and smoothness) and then start to
randomly change their strategies.
- Winning/Goal of the game: Scoring will be
based on the amount of time the player stays alive.
"Ball Kutou" by Brent Stephens and Hans
Kiessler
- Description: In the middle of the screen,
there is a bright yellow circle. Outside of the comp-sci world, this circle
would be called "The Sun". This "Sun" exhibits a gravity field that pulls
everything else in the screen towards it. Also on the screen are two
space-ships that are engaged in galactic warfare. These two ships try to
fire missiles at each other and try to kill the other ships, all the while
trying to dodge being killed by the sun in the center of the screen.
- Things you can do:
- Move your ship around the screen.
- Have your ship fire missiles that kill your opponent
- Engage a hyperdrive that teleports you to a random
spot on the screen (possibly into the sun killing you)
- Pick up powerups
- Winning/Goal of the game: You win by staying
alive when your opponent has lost. Your opponent loses when they get hit by
a missile or crash into the sun. Two ships crashing into each other will
bounce off of each other, leading to neither a win or loss.
"Pool" by Michael Colley
- Description: My game is based on pool. I
may add other features to make it more interesing, but the goal of the game
is the same: to get all of your balls in the pockets.
- Things you can do and features:
Definitely to be included:
- Addition of a "friction strategy", which
gradually decreases the ball's velocity on each update and eventually
causes it to stop.
- Creation of "pockets" which are actually just
black balls that are location partially off-screen, so that they look
lock pockets on the pool table. They have no velocity and kill any ball
that collides with them.
- Creation of a "cue ball." I had originally
created a sort of "pool stick" as well, but it was much too difficult to
acutaully get any balls into the pockets without hitting them directly.
So I decided it would be better to allow the user to move the cue ball
directly. Thus there will be no "pool stick" in this game. Movement of
the cue ball is controlled by the mouse rather than they keyboard. There
is no penalty for pocketing the cue ball. (The user is free to place it
where he wants anyway).
- A "new game" button. Clicking it creates fifteen
balls with no initial velocity and arranges them in a triangle in the
appropriate location on the "table".
(The cue ball is created each time the user moves the mouse into the _canvasPnl
and deleted on exit).
Here's what I'm planning next:
- Associate each ball (except the cue ball and the
8 ball) with a player. Give each palyer's ball a specific color.
- Update the score when a player gets one of his
own ball in the pockets. (1 point per ball)
- Make one of the ball's special (an "8 ball").
Pocketing it before all of the other balls when cause the player's
opponent to win. It will switch strategies once all of a player's other
balls are pocketed. It will then behave like the balls described in 1.
- Create the ability to win the game. This will
happen when a player's score reaches 8 (reflecting that they have
pocketed all of their own balls, plus the 8 ball.)
- Getting rid of all the original GUI components in
the _controlPnl and replacing them with controls approprite for the
game. These include (in addition to the "New Game" button already
created), a display for each player's score. Two players will be
automatically created when the game starts, called "Player 1" and
"Player 2". There will be controls for changes the palyer's names, if
the user desires.
- The new game button will set each player's score
to zero.
- Getting rid of the cue ball once the user has hit
a ball. This will prevent it from interfering with the balls that are
now in motion. (Remember any mouse movement will move the cue ball.)
"Space Balls" by Mike Cordray and Jesse Chan
- Description: Side-scrolling shooter. Enemies
with different preset behaviors will attack you from the right side of the
screen, you must shoot them down until they run out. Then the boss comes out
to attack you. Kill it to win.
- Things you can do: Control movement of
your ship and the firing of missiles. Enemies with different behaviors
will spawn randomly. Powerup your ship either by picking up powerups or by
hitting preset scoring benchmarks
- Winning/Goal of the game: Win: Beat everyone.
Lose: Die
Last Revised
Thursday, 03-Jun-2010 09:50:12 CDT
©2006 Stephen Wong and Dung Nguyen