CPT306 Individual Project Coursework Assignment Specification
General Instructions
- One copy of this assignment should be handed via the module Learning Mall page at no later than the time and date shown above, unless an extension has been authorized by the module leader.
- Before submission, each student must complete the module coursework submission form obtainable from the module Learning Mall page. This assignment is being marked by student name and id. Please ensure that you complete the correct coursework submission form.
- Format of the coursework assignment submission: A ZIP file submitted via the Learning Mall module page containing the deliverables outlined in the “What to Submit” section of the coursework assignment specification.
- Use of unfair means: You are reminded of the University’s Code of Practice on the Use of Unfair Means and that the work you submit for assignment should contain no section copied in whole or in part from any other source unless where explicitly acknowledged by means of proper citation.
- Late penalties: The penalty is a loss of 5% marks per day for work submitted late. Work that is 5 or more days late will automatically be graded as FAIL, and no re-submission will be allowed.
The story so far…
In the year of 3040s, you are in a Space Fighter, positioned in the geostationary orbit, assigned the job of collecting and grouping ionised particles into the solar power system of the international space station. Unexpectedly, space debris is mixed with ionised particles.
Scenario
You have been tasked with destroying the space debris and grouping the associated ionised particles into the storage area. The complete implementation of the game should look like the following illustrative image (see Figure 1).
Figure 1: Illustrative image of the complete implementation of the game, including details of the game elements/components.
Game Play
The player should be able to direct the Space Fighter by easily moving in the dark grey coloured Play Area (See Figure 1 above). The black barriers should block the motion of the Space Fighter toward both the Flow and Storage Areas. Thus, a collision with the black barriers will stop the motion of the Space Fighter.
Ionised particles (red, green, and blue) and debris (grey) should fall down toward the Play Area in a random sequence. The player should be able to destroy the debris and manipulate the ionised particles by pushing each one sideways using the Space Fighter, with the aim of creating a vertical line or a horizontal line of three same-coloured ionised particles or three different-coloured isonised particles with red-green-blue order (short as RGB order), as shown in Figure 2. When such a same-coloured vertical/horizontal line or different-coloured horizontal line is created, it disappears, and any particles or debris above the disappeared line should fall. At the same time, the player gets certain scores.
Figure 2: (1) An example of creating a horizontal line of three same-coloured ionised particles. (2) Aimed vertical lines with three same-coloured IPs. (3) Aimed horizontal lines with three samecoloured IPs. (4) Aimed horizontal lines with three different-coloured IPs.
The left-click on the Start button in the start menu begins the game (more will be explained in the Game Menu section), and a timer starts counting up from 0.
The player will win the game when s/he successfully reaches 100 points. As shown in Figure 3, the player will lose when (1) the storage area is filled with non-lined ionised particles, (2) the storage area is filled with more than 5 debris, or (3) the Space Fighter is destroyed because two particles/debris are overlaying it.
Figure 3: Examples of the situations when the player loses the game.
Implementation
You are required to write your own code to implement the game using Unity and C#. The resources for the game should be created by you, including ionised particles, debris, Space Fighter, notification messages, and user interfaces. However, your implementation should follow the specifications below.
Play, Flow, and Storage Areas The following measurements in Table 1 should be used to implement the Flow, Play, and Storage Areas in your game (see Figure 1).
Location | Height (Capable of storing) | Width (Capable of storing) |
---|---|---|
Play Area | 3 particles (vertically lined) | 5 particles (horizontally lined) |
Storage Area | 5 particles (vertically lined) | 5 particles (horizontally lined) |
Flow Area | 4 particles (vertically lined) | 5 particles (horizontally lined) |
Table 1: Specification of Flow, Play, and Storage Areas
Space Fighter
The Space Fighter should appear at the centre of the Play Area when the game starts (see Figure 1). The black barriers must block the movement of the Space Fighter. The Space Fighter must be a circle, and the size must be 1.5 times the particle size. Your own design of the Space Fighter is also required. For example, you may attach a text symbol or a picture of the Space Fighter or add some visual effects to the Space Fighter’s movement.
Control
The player should be able to play the game using the following keyboard and mouse controls: Control | Function |
---|---|
Left-click (mouse) | Interacts with the menu items |
Right arrow | Moves Space Fighter toward the right side |
Left arrow | Moves Space Fighter toward the left side |
Up arrow | Moves Space Fighter upwards |
Down arrow | Moves Space Fighter downwards |
Spacebar | Pauses/resumes the entire game |
Table 2: Specification of Player Controls
Ionised Particles, and Debris
The ionised particles are represented in red, green, and blue, while the debris is characterized in grey using the RGB codes listed in Table 3.
The ionised particles/debris should start falling from the top-centre (as shown in Figure 1) of the flow area in a random sequence when the game is started. One important condition is that the same-coloured particles should not be immediately followed. The particles/debris should fall at a delay of 2 seconds. In other words, for every 2 seconds, new particles/debris should start to fall in the mentioned location. The ratio between the moving speed of Space Fighter (for all directions) and the falling speed of the ionized particles/debris is 3:2. Please adjust the speeds to ensure moderate game difficulty.
The ionised particles should be pushed freely by the Space Fighter. The upper 1/8 surface of the Space Fighter can be used to destroy debris, while other areas will only push the debris (see Figure 4). You are encouraged to specify this area on the Space Fighter.
Name | Colour | RGB |
---|---|---|
Debris | Grey | 128, 128, 128 |
Ionised Particle Red | Red | 255, 0, 0 |
Ionised Particle Green | Green | 0, 255, 0 |
Ionised Particle Blue | Blue | 0, 0, 255 |
Table 3: Specification of Debris and Ionised Particles
Figure 4: To destroy the debris or push the debris.
Scoring
The scoring formula for the game should be built by counting the number of debris destroyed and by grouping same-coloured ionised particles together.
Description | Scores |
---|---|
Destroy a single debris | 5 points |
Group 3 same-coloured particles in a vertical line | 10 points |
Group 3 same-coloured particles in a horizontal line | 10 points |
Group 3 different-coloured particles in a horizontal line in RGB order | 15 points |
Table 4: Specification of Scoring
Scores 5 points 10 points 10 points 15 points
Heads-up display (HUD)
There is at least one, at most two heads-up display (HUD) areas to be implemented to provide the following required information listed in Table 5. The HUD(s) must be at the top or at the bottom of the interfaces, that is, above the flow area or below the storage area. Figure 1 shows an example of having two HUDs. You can decide the number of HUDs and its (their) position, but make sure the required elements are included.
Description DH: the number of debris hit IPG: the number of ionized particle groups allocated S: scores achieved T: playtime R: the number of red particle groups allocated (vertical/horizontal lines) G: the number of green particle groups allocated (vertical/horizontal lines) B: the number of blue particle groups allocated (vertical/horizontal lines) RGB: the number of horizontal particle groups allocated (horizontal lines) Table 5: Specification of the elements in heads-up displays
Notification Messages
The win and lose messages should be displayed as a pop-up display message while freezing the game window (Flow, Play, Storage Areas, and HUD area). There should be a Restart button below the popup display (see the next section). Table 6 shows the four different messages that should be implemented with the specified text colour.
Reason | Message | Text Colour |
---|---|---|
To Win | Congratulations! You Won! | Yellow |
To Lose – by filling with non-lined ionised particles | Opps! Ionised particles are not successfully lined in the storage! | Orange |
To Lose – by filling with more than 5 debris | Opps! Debris are filled in the storage! | Black |
To Lose – Space Fighter has been destroyed because 2 particles/debris are overlaying it | Opps! Space Fighter has been destroyed! | Red |
Table 6: Specification of the elements in heads-up displays
Game Menus
At the beginning of the game, a start menu should be displayed. The start menu must have a Start button to start the game, a Help button to describe the game rule, an Acknowledge button to show who developed the game, and a Quit button to quit the game. When you pause the game, a pause menu with a Resume button to resume the game and a Restart button to restart the game should be given. When the game is finished, the pop-up display should also have a Restart button to replay the game. All the menus and buttons mentioned above should be interactable and functional. All other designs to the game menus are welcomed but will not be counted in the mark.