Comp202: Principles of Object-Oriented Programming II
Fall 2007 -- Final Project   



Project Description

The final project is to create a group game based on using RMI to connect multiple BallWorld-type systems together where balls (or the commands that run the balls) can be transported from one system to another and interact with the other balls in those systems.  Balls would be able to "kill" each other and the objective of the game is to have only your balls left anywhere in the end.

The Ballworld system that this project would be based on would be the command-based BallSwarm system from Comp201.

Download the latest BallSwarm code here! (inside the Final Project folder)

Basic features:


Possible features:

Current project specifications

Milestone 1:   Initial System Design

For this milestone you are to design and propose modifications to the BallSwarm system that will enable the desired game features to be implemented.   The choice of features is up to the student.  After this milestone is submitted, the class as a whole will decide on which design or modification of a design or possibly a melding of multiple designs will be used for the final project implementation.

Requirements for the design proposal:

  1. A list of game features that the design should be able to implement.
  2. A code listing of every common interface that will be used in everyone's implementation.
  3. A written discussion of the changes that will be necessary to the BallSwarm system in order to incorporate the above interfaces.


Milestone 2:   Core Functionality

For this milestone you are to create a no-frills demonstration implementation that utilizes what interfaces that have already been agreed upon as well as creating concrete arguments (i.e. using your own code as an example) of possible modifications or additions to those interfaces.

One of the requirements for this milestone (see below) is interoperability.  This means that some necessary or desired changes to global interfaces must be ironed out with the class as a whole before the due date! 

Requirements for the core functionality demo:

  1. Your game should have the following capabilities:
    1. Interoperability with other players
    2. Chat with other players
    3. Establishment of a bi-directional worm hole when connecting with another player
    4.  Send a ball with non-trivial capabilities, i.e. more than simple straight line movement, from one computer to another when it encounters a wormhole ball.
    5. Two balls engage in a fight when they collide with a resultant change in hit points/health. 
    6. Ball dies if health/hit points drops to zero.
  2. A listing of proposed changes or additions to the current global interfaces.  Each suggested change or addition should come with a written rationale (~1 medium paragraph)


Final Deliverable

The submission for the final deliverable must include the following:

  1. The entire code directory structure
  2. Documentation:




Last Revised Thursday, 03-Jun-2010 09:52:31 CDT

2007 Stephen Wong and Dung Nguyen