Comp201: Principles of Object-Oriented Programming I
Spring 2008 -- 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

Click here to see last year's student projects.



"SoccerPong" by Jon Stanley and Ara Parsekian

Goal: Eliminate all the balls in the playfield. 

The game will start with one ball that bounces around the playfield. A goal with fixed width will be located at one end of the playfield and a moveable paddle on the other side of the playfield. Simply move the paddle around to keep the ball in the playfield. If a ball goes through the goal then it will simply disappear. If you clear the playfield when all the balls go through the goal then you advance to the next level. The next level will begin the game with one more ball in addition to the number of balls in the previous level. There are “infinite” levels to this game. 

If a ball gets past the paddle and off the playfield then it will be returned to the playfield and another ball will be created. It is important that the ball(s) are kept in the playfield past the paddle or the number of balls and difficulty will increase. This increasing cycle, however, is limited to the number of balls you began with, which is the number of lives you have.

For example, if the game begins at level 5 with five balls in the playfield then you have 5 lives. You move the paddle to keep the balls in the playfield until all the balls eventually pass through the goal to advance to level 6. If the playfield currently has 5 balls and one ball gets past the paddle, it will return to the playfield and a new one will be created to make 6 balls in the playfield. Your lives will drop to 4. Then if two balls get past the paddle, the playfield will now have 8 balls and your lives will drop to 2.

The game is over when you lose all of your lives. On the other hand, the game is not “won” because it has “infinite” number of levels. However, the best thing is to strive for is the highest score, which will depend on how fast the playfields are cleared over the levels.

What really distinguishes this from the regular Pong game?

Based on the BallWar codebase.



"Mine Stream" by Jeff Miller

In this game, you play as a fish trying to make its way back to the stream where it was born. Somehow, in its travels, it has passed a deadly minefield, and has to traverse it in order to get back. The mines will be flowing from left to right across the window, and each time the fish hits a mine, it loses a life (out of three total). There will be three levels, each getting progressively  harder.

Features

You lose when you run out of lives, you win when you complete all three levels.

Is there anything that can be done to make the mines more interesting/challenging/unique?   Otherwise, you just have Frogger with different images.

Based on the BallWar codebase.
 



"Balaga" by Joe Cavazos 

What are you doing to distinguish this from Galaga?

Based on the BallWar codebase



"Tile Demolition " by Mark Cheng and Ashley Herron  

The game we have created is a modified version of Brick Breaker that is much more difficult to play.   Certain aspects of the game are as follows:      

Winning/Losing   

This game will hopefully be awesome.

Based on the BallWar codebase.



"Pinball" by Peter Denton

It will work in pretty much the same way as any standard pinball game.

Based on the BallSwarm codebase.



"Portalize" by Viren Daniel Desai

(Inspired by the game "Portal")

DEFINITION: A portal is an object oriented at a certain angle in space, that, when placed in the game's "Universe" allows another object to enter it and exit from the portal that was placed next (chronologically) in the Universe. When the object enters the last portal, it exits the first, and so on.

STORYLINE: In the depths of space, with a broken navigation system, every star looks the same. Capt. JR Cherwong has only his trusty Portal-Generator Unit to keep track of where he is. Knowing that his SOS has been received by a passing ship, and that help will arrive in 2 minutes, he must keep shuttling between portals he creates to ensure that he stays in roughly the same region of space. The only problem is that occasional asteroids disrupt the portals' electric fields, causing them to behave erratically. Cherwong needs to be ever vigilant, or risk being lost...in...SPACE.

GAMEPLAY: The player is given 1 min to select and place up to 7 pre-oriented portals in the Universe, in any arrangement he or she wishes. The player is then given a space-ship object that enters the first portal and then exits the second. However, if the third portal is not oriented correctly, the space-ship just misses the portal and eventually gets sucked into the void of space (crashes), which ends the game.

The object of the game is to arrange the 7 portals in such a way that: - The ship spends as much time as possible OUTSIDE of a portal, to maximize Cherwong's chances of being seen by the rescue ship. The more time in empty space, the higher your score...so no just placing the portals in a line. - The ship does not miss a portal (and get sucked into oblivion - i.e. the edge of the screen)

Of course, conceptualizing a nice arrangement of portals that achieves these objectives is not hard - that's why we have the challenge: - A randomly appearing (with some warning) asteroid that collides with the space-ship, throwing it off-course, or with one of the portals, causing them to change size, shape, completely disappear, begin wandering, or worse: change its "creation order". It is up to the player to move around his portals to keep his ship flying long enough for help to arrive. Are you up to the task?

The game is never "won" per se. The player is expected to try and achieve the highest score possible in the two minutes after arranging the portals.

Based on the BallWar codebase.



"J-Brick" by Rick Manning

Description: A game based on Breakout, wherein the player moves a paddle left and right across the bottom of the screen in to bounce a ball into bricks positioned near the top of the screen.

How about balls that don't move in straight lines? 

Based on the BallWar codebase.



"Bring the Heat!" by Nicholas Hoeft and Vic Hu
 

In this game, our main character decides to take a relaxing ride in a luxury train car. Little did he know, this trip would change
his life. While our character ponders the relative velocity of light seen from moving objects, a bomb has been discovered on his
train! However, this bomb is no ordinary bomb, no! It utilizes Brownian Motion to control how sensitive the bomb's motion sensor
is. While our hero is on the slightly bumpy train, he must prevent the bomb's explosive core from touching the sides of the box,
which detonate the core. Fortunately, our heroic genius knows that Brownian motion can be controlled through heat! Quickly striking a
match, he heats the sides of the bomb when the explosive inside core approaches that side. The bomb squad has been called, so the
heat just has to prevent the core from touching for a certain amount of time.(note Einstein allusions).

How do you decrease the temperature of the side of the box?  Or does it naturally cool off at some rate? Another interesting twist (higher level?) would be to use charged particles in a magnetic field (i.e. CurveBalls).  What happens when the train goes around a curve and the lighter particles are thrown one way in the box, opposite the direction of the heavy bomb core?  Heh, heh... ;-)

Based on the BallWar codebase.



"Orbital Shenanigans" by John Cate

Goal - hit an object from across the universe

How?

What are you trying to hit?  What determines winning and losing?

Based on the BallWar codebase.



"LazerMaze" by Craig Corcoran and Ari Kapusta

LazerMaze is a time-constrained puzzle game , It's sort of a cross between pipe dream and bocce ball/shuffle board.

The goal of the game Is to reflect a laser beam emitted from the top of the 2D world into a goal position in the stage, around various obstacles.

  1. Is the laser a continuous stream (wave) or a series of quantized photons being shot?
  2. It is not clear how your launching mechanism will place the reflectors, esp. w.r.t. spin.
  3. What determines winning/losing?

Based on the BallSwarm codebase.

 



"Thief" by Jesse Lisby and Tiffany Gill


The idea of the game is that you are inside a building, and you're trying to get from one side of the room to the other in order to steal the jewels/money whatever that's on the other side. However, inside the bank there are security guards, who sometimes have dogs, cameras, etc. A security guard has a certain field of vision, and if you cross their field of vision, they will shoot at you, but the dogs will just kill you if you run into them. If you cross a camera's field of vision, then it will alert, or produce more guards that might become trouble for you. After you reach the end, you get whatever valuable you're trying to reach, and each level will become progressively harder.

Is there a concept of a certain number of lives, or is one hit/bite/etc enough to end the game?


Based on the BallWar codebase.



"BubbleTris" by Jeremy Bixby

 

Description of the game: This game will be a hybrid between two games: The classic “Tetris,” and the “BubbleBreaker” game that comes free on Windows Mobile-based PDAs.  The basic idea is this: a ball “bubble,” if you will, of a random color appears at the top of the screen.  The bubble descends to the bottom of the play area, and it falls into a column.  The user navigates the ball to its destination with the arrow keys.  As the user gets 4 balls of the same color in a direction, those bubbles burst and the user gets points for them.       

How do you win/lose?   What can you do to make the game more unique and engaging?



"???" by Eric Silberman

I intend to design a program based off of the game "Jezzball". Players right-click in the container to draw a vertical line which becomes a new boundary, and left-click in the container to draw a horizontal line which becomes a new boundary in the container. The objective is to separate all the balls into separate containers bounded by four lines. What makes this game different from other games that have a similar premise is that this game will not be using standard "Straight Balls", but will require a new level of talent because it will use "Wander Balls", "Curve Balls", and other variants. The game will have a finite number of levels, though they will get continually harder. I am also thinking of variations where, for example, the green ball would have to be trapped in the green half of the screen while the blue ball needs to be trapped in the blue part of the screen, or something of that sort.


Based on the BallWar codebase.



Last Revised Thursday, 03-Jun-2010 09:50:22 CDT

©2008 Stephen Wong and Dung Nguyen