COSC2511 Final Project 2023 Sem 2
COSC2511 Final Project 2023 Sem 2
Assessment weighting: This assessment is out of 100 and will contribute towards 30% of your overall
course mark. (This is not a hurdle assessment)
Submission:
• The due date for this assessment is end of week 15.
• Only one submission will be made per team.
• Submissions will be made via Canvas.
Assessment policy:
• Assessments submitted between 0-24 hours after the due date: 20% penalty.
• Assessments submitted between 24-48 hours after the due date: 50% penalty.
• Assessments submitted more than 48 hours after the due date will not be accepted.
For more details on assessment policy check here.
What to Submit:
Your team should make one single submission in a .zip file named cosc2511_sxxxxxxx.zip (where
sxxxxxxx is the project submitter’s student number)
Your zip file should include the following:
• A document showing all algorithms and pseudocode used to solve the programming problems
(gameplay, item interaction, npc encounters, etc)
• Documentation of your game including a description of the story, the game map, objective and
instructions on how to run the game and play
• All required program files submitted as .java source code files
Extensions:
• Extensions will only be granted under exceptional circumstances and are intended to offer support
and flexibility where unforeseen events have occurred preventing students from submitting projects on
time.
• If an extension is required, project teams must apply via email to their lab teacher prior to the due date
with an explanation of the unforeseen circumstances experienced.
• If an extension is granted by your teacher, it will be for a maximum of 7 calendar days
• If further extension is required all project team members must individually apply for RMIT Special
Consideration here: https://www.rmit.edu.au/students/student-essentials/assessment- and-
exams/assessment/special-consideration
Teaching Team:
Trevor Stone trevor.stone@rmit.edu.au Radhu Punchanathan radhu.punchanathan@rmit.edu.au
Purpose:
The purpose of this project is to give you an opportunity to exercise your algorithmic thinking and
Java programming skills to solve programming problems with tools practiced throughout the
semester in Introduction to Programming COSC2511.
Team Composition: You will form teams of 1 – 3 students in Canvas and notify your instructor of your
team composition via your section’s Canvas discussion board by the end of week 13. Any students not
forming a team by this date will be deemed to be submitting this project as an individual assessment task.
The topic of this project is that your submission should be a console-based text adventure game written in
Java and should show an understanding of topics covered in Introduction to Programming COSC2511.
Full creative control is with your project team, and the story line is completely up to you! You might be
exploring an alien planet, attacking a castle, or trying to make your way out of a spooky forest. Let your
imagination run wild!
Your game environment should be based on a 5 x 5 grid layout (see visual example on page 3) and
should have a minimum of 9 locations that a player can visit throughout the game.
Your game must have a clear objective (to win the game), and potentially may have an alternate ending
(optional) such as the player dying. Your game must include an inventory system allowing a player to
pick up, carry, list and interact with a minimum of 5 items, and must include at least one interaction
with a non-player character (npc).
Players must be able to navigate the game using a simple control system based on the four main points of
a compass (north(n), south(s), east(e) & west(w)), and each time a location and any available items or
interactions is visited a description of the location must be printed to the screen. Once an item has been
picked up, or a foe vanquished, subsequent visits to that location must omit the item or npc from the
description (or in the case of a slain enemy, change its state to dead in the description).
Your goal is to display an understanding of the following programming tools used throughout your
game:
• Exemplary coding etiquette showing good indenting, consistent block bracing style, data type and
class naming conventions and appropriate use of comments.
• At least one text-based menu
• User (player) input
• Appropriate selection of and use of variables
• Selection statements including switch, if, else if and nested if
• Iteration with the appropriate type of loops
• Use of random numbers
• Arrays
• Functions
• Classes and methods
RMIT Classification: Trusted
Marking Above and beyond! Nice Work! Getting Better Starting to Improve Not Quite There
Guide Exceeded expectations. Objective Objective Objective Objective
(10 marks) fully met (9 mostly met (6 partially not
marks) marks) achieved (3 achieved (0
marks) marks)
Thorough and detailed use of Thorough use of Good use of Limited use of Little to no
advanced commenting commenting commenting with commenting with commenting
techniques with consistent techniques with appropriate information inconsistent block and/or poorly
Coding block bracing and indenting consistent block and consistent block bracing and/or implemented
Style style in addition to industry bracing and indenting bracing and indenting indenting style and indenting and
standard class and data type style in addition to style in addition to class and data type block bracing
naming conventions good class and data sound class and data naming conventions
type naming type naming
conventions conventions
Thorough and efficient problem Thorough problem Good problem solving Partial thought given to Programming
solving with additional solving with and algorithmic problem solving with problems not
algorithmic thinking and additional thinking displayed and little algorithmic solved, and core
Algorithmic pseudocode documentation algorithmic thinking pseudocode thinking or pseudocode requirements not
Thinking provided to support the and pseudocode documentation provided to support the met
program. All core requirements documentation provided to support program. Core
met with some exceeded provided to support the program. Most requirements partially
the program. All core core requirements met met
requirements met
Complex user input A range of user Appropriate user input Limited user input User not asked for
mechanisms implemented inputs are accepted with some accepted with no input
User Input with advanced data validation accepted with data validation data validation
techniques utilised consistent data techniques used
validation
A large range of data types used A range of Acceptable data types Some data types used in Inappropriate data
including advanced techniques completely used throughout the the program but not types used
such as resizable appropriate data program consistently the best throughout
Data implementations of arrays etc. types used showing data types program
Types an understanding of
all data types
covered
Extensive usage of a full range All selection types All selection types used Limited use of No selection tools
of selection statements used in an efficient in a limited way. Could selection statements used
Selection including nesting and manner be improved with but not all types used
implementation of user menus better type selection or
nesting etc.
Advanced use of iteration using a Appropriate types of A range of loops used but A single loop type used Loops not used in the
range of techniques to control loops used showing a not always the most throughout the program in program
Iteration program flow and duration and to good understanding appropriate type a limited way
initialise data types of
each type of loop
method
Extensive use of multiple Good use of Arrays used mostly One array implemented Arrays not
arrays showing advanced multiple arrays appropriate with fixed but implemented in the
Arrays initialisation and access showing dynamic initialisation parameters not the most appropriate program
methodologies initialisation type or not accessed
techniques correctly
Extensive use of classes and object Good use of objects Use of objects in a limited Objects instantiated in the No object-oriented
instantiation showing an displaying an ‘is a’ way with basic methods game do not have an ‘is a’ principles used in the
Object understanding of advanced OOP available relationship and/or are program
relationship to game
Oriented principles elements and not accessed
Programmi appropriate get and
ng set
methods for object
Principles attributes
Clearly defined game Clearly defined Defined game Game objective present No clear objective
objective that is challenging but game objective that is objective present but but defined to win the
Game achievable with more than one challenging but either too challenging not clear or achievable game
Objective alternate ending provided achievable or too easy to achieve
(no puzzle solving
required for example)
Deep, complex and engaging story Engaging and Interesting but very short Limited and shallow story No storyline
implemented showing exceptional entertaining story story with limited used in the game implemented in the
Creativity creative process and excellent with good documentation game scenario
documentation documentation
provided