COMP20050 Game Project Java
COMP20050 Game Project Java
Software Engineering 2
2022 / 2023
Project Handbook
Dr Chris Bleakley
Version 1.1 1
Introduction
There are five Sprints. These Sprints combine to incrementally build into a Java implementation of a board
game.
The following steps should be done before starting to code:
• The project will be done in teams of three.
• Self-select your group at My Class – My Groups on Brightspace. After the group selection expiry date,
any class members who have not self-selected a group will automatically be allocated to a group.
• Share the repo with other team members, the Teaching Assistant (user name gillanimaryam) and
the Module Coordinator (user name ChrisBleakley) access to the repo.
• GitHub must be used for source code control for the duration of the project. See the Grading Scheme
below “GitHub not used correctly, up to 2 grade deductions”. Part of the final submission is via GitHub.
Note that the Eclipse IDE is supported in the labs. No other IDE is supported.
Version 1.1 2
Sprint 1: Set Up
Play some Cascadia!!!
The reference rules are at: https://c.tabletopia.com/games/cascadia/rules/cascadia-rules/en
As a group, implement and verify a Java program with the following features.
Use the console for input and output. The commands should be case insensitive. Appropriate error messages
should be displayed for invalid inputs. The user should be prompted to re-enter the information.
A feature that prompts the user to enter the number of players (2-4).
A feature that prompts the players to enter the player’s names. Their names should be used in later prompts.
A feature that randomly chooses the order in which the players play and informs the users.
[Skip wildlife scoring card selection for now]
A feature that randomly selects a starter habitat tile for each player.
A feature that randomly selects 4 habitat tiles and 4 paired wildlife tokens and displays them.
[Skip culling for now]
A feature that displays the first player’s habitat and prompts the user for command input. An example of an
ASCII Art approach to displaying the habitats is shown overleaf. The wildlife tokens can be displayed at the
colour inverse of the habitat placeholder. For example, the fox token would be a white F on an orange
background, whereas the placeholder is an orange F on a white background. It is ok
A feature whereby a “next’ command causes the next player’s habitat to be displayed.
A feature whereby a “quit” command causes termination of the program.
Sprint 1 is assessed by Design Review during the Lab Session. A Demonstrator will meet with your team to
review progress. The team should demo the program, show the source code, and answer some questions.
The following check list will be used for grading. Zero marks are given to any team member who is absent
unless evidence of extenuating circumstances is provided. The Design Review must be done in the specified
Lab Session, it cannot be done late. Allowance will be made for which day of the week that the Design Review
is on.
Version 1.1 3
Figure 1. ASCII Art starter habitat tiles.
Version 1.1 4
Table 1: Terrain tile colour key
Bear Brown
Elk Black
Salmon Pink / Red
Fox Orange
Version 1.1 5
Sprint 2: Game Play
As a group, implement and verify the following additional features.
A feature that detects when an automatic cull is required. Notify the user and replace the wildlife tokens.
A feature that detects when the user has the option of a cull. Ask the users whether to cull or not and apply
this.
A feature that allows the user to select a habitat tile and wildlife token pair.
A feature that allows the user to rotate the selected habitat tile. A way to do this is to offer a menu of possible
angles.
A feature that allows the user to place the selected habitat tile on the board. A way to do this is to label the
possible locations with letters or numbers. Placement must follow the rules of the game.
A feature that allows the user to place the selected wildlife token on the board. A way to do this is to label the
possible locations with letters or numbers. Placement must follow the rules of the game.
A feature that allows the user not to place the token.
A feature that detects that a token cannot be placed, reports this to the user and continues with the game.
A feature that gives the player a nature token if the wildlife token is placed on a keystone tile.
A feature that replaces the selected tile and token in the 4 visible pairs.
A feature that allows to the players to take turns playing that game. The “done” command should be removed.
A feature that detects if no more tiles are available and ends the game.
Version 1.1 6
Sprint 3: Nature Tokens & Scoring
As a group, implement and verify the following additional features.
A feature that allows a player to spend a nature token so as to select any wildlife and habitat token OR to wipe
any number of wildlife tokens.
A feature that randomly selects and displays 5 wildlife scoring cards at the start of the game. Graphics are not
needed, simply display a textual description of the basic scoring rule (all point values not needed).
A feature that at the end of the game that calculates and displays the score card for the game, showing the
scores for each player. The calculations should apply all scoring rules.
Sprint 3 is assessed by submission to Brightspace. See the submission instructions below for details. The
following check list will be used for grading.
Version 1.1 7
Constants are well used 1
Names are clear and meaningful 1
Comments are useful 1
Documentation
Javadoc is used correctly for at least 1 non-trivial class 1
A class diagram for the program (excluding test classes) is 1
shown in the video
A sequence diagram is show in the video 1
Total 60
Version 1.1 8
Sprint 4: Bot, part 1
As a group, implement and verify the following.
Based on the code released on Brightspace, implement a Bot that Cascadia.
You can assume that scoring is based on the A habitat cards.
The design of the Bot is up to you.
Start by planning how you want to Bot to work. Turn this into a list of features that you wish to implement.
Create a Product Backlog, a Sprint Plan and a Kanban board.
Code and verify the features that you have selected to build during sprint 4.
TOTAL 12
Version 1.1 9
Sprint 5: Bot, part 2
Create a Sprint Plan and Kanban board for sprint 5.
Code and verify the features that you have selected to build during sprint 5.
Sprint 5 is assessed by submission to Brightspace. See the submission instructions below for details. The
following check list will be used for grading.
Feature Marks Comments
Available
Functionality
Bot name entry is working 1
Turn based game play is working 4
Total 60
Version 1.1 10
Calendar
The following is subject to change. Watch out for email and Brightspace announcements.
Note that there is no late submission option for Sprint 3 as reference code will be released to assist with
sprints 4 and 5.
Version 1.1 11
Brightspace Submissions
For the Brightspace submissions, submit a zip file named with your group name and the sprint number
containing the following items:
Notes
Be careful not to delete the release or make the repo public on GitHub until the end of the semester plus 3
months.
Make sure that the group number, group name, student names and GitHub IDs are included in comments at
the top of all source code files.
Use of open-source code is plagiarism.
Version 1.1 12
Grading Scheme
The marks for the Group Project are allocated as follows:
Assessment Marks
Sprint 1 Design Review 1%
Sprint 2 Design Review 2%
Sprint 3 Submission (Game) 45%
Sprint 4 Design Review 2%
Sprint 5 Submission (Bot) 30%
Class Test 20%
Marking is done according to the scoresheets above and below. The numerical value is converted to a grade
using the Alternative Linear Conversion Grade Scale 40% Pass.
https://www.ucd.ie/students/exams/gradingandremediation/understandinggrades/
The Design Reviews and Submissions are graded according to the rubrics above. Each requirement in the
rubric is scored according to the number of marks available, which is related to the difficulty associated with
the item.
An example grading sheet is shown below:
Item Marks Marks Comments
Available
Programs are marked against the requirements described in this document. It is OK to include extra
functionality to your game in addition to the items listed above. However, any extra functionality should be in
addition to the functionality listed above, not instead of. There are no bonus marks for additional functionality.
Deductions
If necessary, the following deductions will be applied:
• Based on review of the comments in the report on the relative work done and on review of the group
member contributions on GitHub, the grades for individual students in a group may be adjusted.
• GitHub not used correctly, up to 2 grade deductions
• No report, grade deduction (e.g. A to B)
Version 1.1 13
• No GitHub release, 1 grade deduction
Version 1.1 14