SWEN20003 Object Oriented Software Development
Object Oriented Software Development
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
SWEN20003 Object Oriented Software Development
Please read the complete specification before starting on the project, because there
are important instructions through to the end!
Overview
In this project, you will create a music arcade game called ShadowDance in the Java programming
language, continuing from your work in Project 1. We will provide a full working solution for
Project 1; you may use all or part of it, provided you add a comment explaining where you found
the code at the top of each file that uses the sample code.
This is an individual project. You may discuss it with other students, but all of the implementation must be your own work. By submitting the project you declare that you understand
the University’s policy on academic integrity and are aware of consequences of any infringement,
including the use of artificial intelligence.
You may use any platform and tools you wish to develop the game, but we recommend using IntelliJ
IDEA for Java development as this is what we will support in class.
Extensions & late submissions: If you need an extension for the project, please complete the
Extension form in the Projects module on Canvas. Make sure you explain your situation with
some supporting documentation such as a medical certificate, academic adjustment plan, wedding
invitation, etc. You will receive an email saying if the extension was approved or if we need more
information.
If you submit late (either with or without an extension), please complete the Late form in the
Projects module on Canvas. For both forms, you need to be logged in using your university
account. Please do not email any of the teaching team regarding extensions or late submissions.
All of this is explained again in more detail at the end of this specification.
There are two parts to this project, with different submission dates. The first task, Project
2A, requires that you produce a class design demonstrating how you plan to implement the game.
This should be submitted in the form of a UML diagram showing all the classes you plan to implement, the relationships (e.g. inheritance and associations) between them, and their attributes,
as well as their primary public methods. You do not need to show constructors, getters/setters,
dependency, composition or aggregation relationships. If you so choose, you may show the relationship on a separate page to the class members in the interest of neatness, but you must use correct
UML notation. Please submit as a PDF file only on Canvas.
1
SWEN20003 Object Oriented Software Development Project 2, 2023
The second task, Project 2B, is to complete the implementation of the game as described in the
rest of this specification. You do not need to strictly follow your class design from Project 2A;
you will likely find ways to improve the design as you implement it. Submission will be via GitLab
and you must make at least 5 commits throughout your project.
Game Overview
‘The aim is simple : the player has to hit the corresponding musical notes that appear on screen
in different lanes on time to score points. To win each level, you need to beat a target score. The
second level features a special lane that has special notes such as bomb, speed up, slow down
and double score. The third level includes enemies who try to steal notes from the lanes and a
guardian who will shoot projectiles at these enemies when a key is pressed. Can you beat the
target scores and win the game?”
The game features three levels : Level 1, Level 2 and Level 3. In Level 1, the notes will descend from the top vertically in the 4 lanes. The player has to press the corresponding arrow key
when the note overlaps with the stationary note symbol at the bottom. The accuracy of how close
the note was to the stationary note when the key was pressed, will determine the points given.
There will be hold notes that require the player to hold down the key. To finish the level, the
player needs to beat the target score of 150 when all the notes have fallen. If the player’s score is
lower, the game ends. You have already implemented Level 1 in Project 1 (the only change required
is to the start/end screens which is explained later).
Level 2 features the same game-play as above but the player now has to deal with additional features
such as a special lane that has special notes. Similar to a normal note, if the corresponding key is
pressed for the special note, its effect is applied (this is explained in detail later). To win the level,
the player must beat a score of 400.
Level 3 is the final level. It includes all of the above as well as extra features such as enemies and
a guardian. An enemy moves horizontally and it will steal notes from nearby lanes by colliding
with them. The guardian will shoot projectiles at the nearest enemy when the corresponding key
is pressed. To win the level, the player must beat a score of 350.
Note that the game does not need to be played progressively. You can choose which level to play
from the start screen and also at the end of each level.
An Important Note
Before you attempt the project or ask any questions about it on the discussion forum, it is crucial
that you read through this entire document thoroughly and carefully. We’ve covered every detail
below as best we can without making the document longer than it needs to be. Thus, if there is
any detail about the game you feel was unclear, try referring back to this project spec first, as it
can be easy to miss some things in a document of this size. And if your question is more to do on
how a feature should be implemented, first ask yourself: ‘How can I implement this in a way that
2
SWEN20003 Object Oriented Software Development Project 2, 2023
both satisfies the description given, and helps make the game easy and fun to play?’ More
often than not, the answer you come up with will be the answer we would give you!
Figure 1: Start Screen Screenshot
(a) Completed Level 2 Screenshot (b) Completed Level 3 Screenshot
Figure 2: Level Screenshots
Note : the actual positions of the entities in the levels we provide you may not be the same as in
these screenshots.