Course Project

Table of Contents


The purpose of the project is to use most of the techniques we have covered during this course. Within your guild, you may choose your project's subject matter as long as it meets the requirements discussed below.

Developing a game or simulation is a powerful way to develop a deeper understanding of programming. This is a group project and you must work collaboratively to complete it. In addition, there are solo elements for the project. Each guild member will need to code objects, methods, if-statements, loops, arrays, lists, and work with collision detection, images, sound and all the other topics we have explored during this course. At the end you and your guild members will have created a game or simulation you can be proud of.

Plan your time: Developing a project takes time and you must plan accordingly. To help in the development, you will be asked to turn in proposals, prototypes and, of course, the final program. Your work will be reviewed by your peers as well as the instructor.

Originality: I encourage you to come up with an original idea for your guild project and your parts of the overall project. However, you may extend scenarios and code from the textbook, lectures, or even from other people (with their explicitly stated and documented permission). If you do start with existing code, you must include novel elements and significantly modify and add to the scenario. As a rule of thumb, you must introduce at least one major new idea (or several minor ones) and at least double the number of subsystems, classes and the size of the code.

Core concept: As you develop the overall scenario, you will need to make many decisions personally and within your guild. When you make the decisions, you will want to keep your core concept in mind. The core concept of a game is the rules of play and core mechanics. A core mechanic is the actions that a player repeats most often while striving to reach the overall goal. For a simulation, the core concept is the phenomena you are studying with your simulation.

Academic Honesty: All the work on the project must be completed by you and your guild. All ideas, artwork and code must be original unless credited to others and properly cited. If you have questions about what is acceptable then ask me.

Project Proposal

The goal of the project proposal is to establish the core concept for your project. Each guild has wide freedom in defining their project.

The Project Proposal has both Guild Requirements and Solo Requirements. All guild members must work together and are jointly responsible for completing the guild requirements.

However, each guild member must meet solo requirements as well. The quest instructions specify the solo and guild requirements.

Initial Prototype

The initial prototype puts all the initial pieces of the scenario together. All guild members define initial classes for their subsystem, including documentation.

In addition, guild members define some basic functionality in their subsystem. Not all features are expected to work at this time.

The guild then puts all the pieces together and distributes the scenario for all members to continue developing.

User-Testable Prototype

At this point you and your guild should have a complete and playable scenario ready for user testing. Some final touches, like opening screens, may be absent, but the scenario should be complete and useable. Also, each guild member must have made significant progress towards meeting the requirements of their subsystems including originality. We will use this prototype to provide feedback on the project from a user standpoint.

Final Project

This is the final version of your fully documented project. At this time your and the guild should have a fully functional project meeting the final specifications. Remember that the completed project must meet originality requirements.

In addition, the guild prepares the final documentation and a project report including:

  • The functionality of the project
  • How each guild member met the solo requirements of the project
  • Any extra-credit features

The entire guild is required to demonstrate their project on the assigned day to the class. The guild decides how to present the project, but all members must participate.

Final Coding Requirements

This section lets everyone know in advance what code every guild member must personally write into their classes.

  1. Write three or more original functional classes for which you are the primary coder with at least 100 lines of code (besides comments) between all your classes combined. (6)
  2. Implement at least one overloaded constructor. (2)
  3. Implement at least one overloaded method. (2)
  4. Declare, fill and access at least one array. (2)
  5. Display at least two animations with at least three images each that are stored in an array of GreenfootImage objects. (2)
  6. Code at least one static method to load images named initializeImages(). (3)
  7. Call setImage() at least one time. (2)
  8. Call at least one of the Greenfoot collision detection methods. (2)
  9. Play at least two sounds. (1)
  10. Make use of the following control statements:
    1. if or if-else (1)
    2. while, do-while loop (1)
    3. for loop (1)
  11. Make a cast to the World subclass. (1)

Extra Credit Coding Features

Extra credit is awarded to guild members who personally write the following code features:

  1. Get a List of objects and process the list in a loop. (2 points)
  2. Play sounds using a GreenfootSound object. (2 points)
  3. Code Java features not covered in this course. (0 to 4 points)
    1. 0: Extra credit feature is trivial or does not work
    2. 1: Extra credit is simple and functions
    3. 2: Two simple extra credit features or one complex or imaginative feature
    4. 3: Three simple features or one simple features and one complex or imaginative feature
    5. 4: Four simple features, two complex or imaginative feature, or some combination
Last Updated: July 29 2019 @18:54:30