COMP 310
Fall 2017

Final Project

Home  Info  Canvas   Java Resources  Eclipse Resources  Piazza

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

Minimum requirements:

Final project specifications and requirements

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

Common Code

The common code is available by setting your svn:externals for your src folder to  (below, XXX = the semester, e.g. "F17" or "S18"):

common https://svn.rice.edu/r/comp310/turnin/XXX/FinalProject/Final/common -- This will not be available until the API is finalized.  Use your design group's proposed API's common package in the mean time.

provided https://svn.rice.edu/r/comp310/course/FinalProject/XXX/provided

map https://svn.rice.edu/r/comp310/course/FinalProject/XXX/map

You will need to add the World Wind Java libraries to get map functionality.   CAREFULLY follow ALL the directions on the Java Resources page on adding libraries.   The respository for this year's WWJ libraries is https://svn.rice.edu/r/comp310/course/WWJ/ver2.1.0/   (This may change, so watch for announcements!)

Very rare: For teams where one person is using a 32-bit configuration and one person is using a 64-bit configuration, setting svn:ignore to not commit the project's .classpath file to SVN will help keep teammates from trashing each other's build configurations.     See the Subclipse web page for directions on how to do this.

Note: you may need to add the JUnit 4 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 4 system on the following window.  Be sure to remove any other JUnit libraries, e.g. JUnit 3.

 

NASA WorldWind Java ("WWJ") SDK

The project requires the use of NASA's WorldWind Java  library for Geographical Information System ("GIS") access.   WWJ must be installed as per the instructions above.    This extremely powerful library enables Google Earth-like visualizations of Earth as well as a myriad of other data overlays and customizable display and other features.   Please follow the above link for more information.

map Package

A utility and example package to help students get started with WWJ is provided in the above svn:externals definitions.   This package provides some classes that will enable one to quickly and easily get a map to display in one's application along with some simple but useful annotation capabilities.   Please follow the link above for more information and documenation.

 

NASA WorldWind Demo

A simple demo of WorldWind Java (WWJ) SDK and the Comp310-provided simplifying libraries is available by checking out the following project:   https://svn.rice.edu/r/comp310/course/FinalProject/XXX/WWJ_Demo

Note that the above project is set to use 64-bit libraries, so if you are using a 32-bit system or a 64-bit Linux system, you will need to switch the libraries to their appropriate values.   See the Java Resources page on adding libraries.

 

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 person who owns the repository.

Milestone 1:

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

The SVN 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 a minimum functionality of being able to connect to other users and display a map plus any agreed upon functionality as detailed in the Piazza discussions, if any.  (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:

  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:


© 2017 by Stephen Wong