Final Project: GIS-based Game

COMP 310    Java Resources  Eclipse Resources

The final project combines the technologies developed in the Ballworld and Chat App systems.

Minimum requirements:

Final project specifications and requirements

Final Project Issues

Don't forget to use your Design Process Overall Guidelines!

ChatApp and Final Project Communications Pathways

Provided Code

The provided code should be automatically supplied through the GitHub Classroom assignment template. The common API submodule needs to be manually added -- See the instructions in Canvas.

Note: you may need to add the JUnit 5 library in order to support the unit tests that are included with the provided code.   Do this if you get errors in the test code packages.   Simply right click the project in Eclipse, and select Build Path/Add Libraries... then select JUnit and then the JUnit 5 system on the following window.  Be sure to remove any other JUnit libraries, e.g. JUnit 5.


The GIS system being used may change from semester to semester and may or may not be required! Check the official instructions in Canvas to see exactly which GIS software development kit (SDK) is being used as well as installation and usage information.


The following requirements are NOT official! Please see Canvas for any modifications to these requirements!


Milestone requirements:

Package Naming Convention: To avoid name clashes, all implementation code written by a team should be under a package named: "netID1_netID2" where netID1 is the team "lead". If there is a 3rd teammate, add their NetID to the package name as well.

Milestone 1:

For this milestone, you and your partner(s) need to show that you have a well-thought out, coherent design ready for implementation.

The due date for Milestone 1 is explicitly set such that the required operationality must be achieved using your Final Project API Design Group's proposed API. This is really just a statement that testing of your proposed API is of paramount importance.

The submission requirements are generally the following and are subject to change -- check Canvas for the official requirements and rubric:

The GitHub commit that is closest to but not past the Milestone 1 deadline will be considered your Milestone 1 submission and must contain at least the following:

  1. Prose description of how your game will work, including typical game play with winning and losing.    (35 pts)
  2. UML diagram of the interfaces and implementing classes  (5 pts)
  3. A prose description of how your design will implement the required common API as well as any features specific to your implementation.   The above UML diagram may be imbedded in this document if desired (recommended!).  (20 pts) 
  4. Javadocs for the classes and interfaces in the UML diagram.   A minimum detail level of class/interface and method descriptions is required.   Descriptions of fields and input parameters is recommended but not required.   The Javadocs should be in the form of HTML web pages so they can be easily read, not just the comments in the code.   (15 pts)
  5. The submitted code should have the following minimum capabilities:  (15 pts)
  6. (10 pts discretionary)

Milestone 2:

For this milestone, you will submit your fully operational code plus full documentation.  The submission requirements are generally the following and are subject to change -- check Canvas for the official requirements and rubric:

  1. Documentation:  (25 pts total)
    1. Fully detailed and accurate UML diagram and operational description from Milestone 1 with any changes and additions as were done since then.  (5 pts)
    2. Full Javadocs, this time including descriptions for all methods with input parameters and all fields.  (5 pts)
    3. A user's manual that describes at least:    (15 pts sub-total)
      1. How to start the program, both the program itself as well as any individual games or processes. (3 pts)
      2. How to connect to other users (3 pts)
      3. How to use every feature of the program.  (6 pts)
      4. How to end and exit the program.  (3 pts)
  2. Fully operational code should be committed to the SVN turn-in repository:   (50 pts total -- based on Demo Day feedback)
  3. System Architecture (5 pts)
  4. Percentage of working projects in class (10 pts)
  5. (10 pts discretionary)

Game Proposals

All teams are required to submit a proposal for their game so that the staff can vet that proposal to make sure it is of reasonable scope and is doable in the allotted time.

Guidelines for vetting game proposals:

  1. Game complexity:
  2. Game play:
  3. Operational issues:


Additional Grading Information:



Not all the material below may be required!


© 2020 by Stephen Wong