Assignment 3 CSSE1001/7030
1. Introduction
This assignment provides you the opportunity to apply concepts taught throughout the course to extend the functionality of a basic 2d sandbox game, in the style of Minecraft & Terraria.
The main concepts involved are Graphical User Interfaces (GUIs) and object-oriented programming. The assignment tasks are to add features to the game, as described in the requirements below.
You are encouraged to review some similar games, to better understand how this type of game is played, and for inspiration on advanced features. It is better to do this after reading through this document in its entirety.
Because this assignment deals with multiple files, while not required, you may wish to investigate a more sophisticated IDE. A popular option is PyCharm, which is free for students. VS Code, which is also free, is another common option. Please note that these tools have significantly more complex user-interfaces than IDLE, so you may find them a little overwhelming if you are only familiar with IDLE.
The archive
a3_files.zip
contains all the necessary files to start this assignment. A significant amount of support code has
been supplied so that you begin with a simple application that is almost working.
The main assignment file is
app.py , which contains an incomplete implementation of
Ninedraft , the top-level GUI
application class. The other files are support code which must not be edited. must be edited for some tasks.
crafting.py
is an exception to this rule, as it
Initially, you do not need to understand much of the provided code, but as you progress through the tasks, you will need to
understand more of this code. You should add code to functionality.
app.py
and modify
Ninedraft
to implement the necessary
You are permitted to create additional files to simplify the separation of tasks (i.e. task1.py, task2.py, etc.), although this is not
required. If you do this,
app.py
must be the entry point to your application (i.e. running it will run your assignment).
Physics is implemented in the game using the Pymunk library. You will need to install this library in order to implement your
tasks for this assignment. Pymunk can be installed by running the included setup.py .
This assignment is broken down into three main tasks:
For CSSE7030 students only, there is an extra task that involves doing independent research. In general, as the tasks progress, they are less clearly prescribed and increase in difficulty.
CSSE1001 students will be marked out of 20 and CSSE7030 students will be marked out of 26 based on the following breakdown. Tasks may be attempted in any order, but it is recommended to follow this breakdown, top-down, completing as much as possible of each task before moving on to the next.
9 marks
App Class 1 mark
Basic Features
Mouse Controls 2 marks
StatusView Class 2 marks
Basic Items 1.5 marks
Keyboard Controls 1 mark
File Menu & Dialogs 1.5 marks
Task 2
Intermediate Features
More Items 2 mark
Crafting 3.5 marks
CraftingTableBlock 1.5 marks
Task 3
Advanced Features
Mobs 2 marks
Furnace 2 marks
arks
Post-Graduate Task
Independent Research
Arrow Movement 4 marks
Interaction with Blocks 2 marks
For each task, marks will scaled according to the following breakdown.
Code is readable. Appropriate and meaningful identifier names have been used. Simple and clear code structure. Repeated code has been avoided.
15%
Code has been simplified where appropriate and is not overly convoluted. 10%
Documented clearly and concisely, without excessive or extraneous comments. 15%
Functionality Components are functional, without major bugs or unhandled exceptions.
Assessed through user testing/playing, not automated testing.