IP 24 25 Assignment2 Guidelines
IP 24 25 Assignment2 Guidelines
Introduction
For this assignment it is intended to develop a single player platformer game using the Unity game engine and the
C# programming language.
During the development, the coding standards and best practices of programming should be applied (the ones
available on Moodle).
Functionalities to Implement
All the necessary sprites to develop the requested functionalities were made by PixelFrog (cc0) and are available
inside the base project (available for download in the Moodle platform). This assignment must be developed using
the supplied base project. Note that Some assets are provided as prefabs
The level map is already built and the scene saved with the name “GameScene”. This is the only
allowed scene to be present in the project. The project will be evaluated by opening this
“GameScene” scene and no other.
Throughout the development of this project don’t use any FindXXX methods.
1. Input System
The input system to use must be the new input system. The base project already contains the new input system
package installed and the MyInputActions asset already setup with the corresponding C# generated class. The
project must use this class.
In the provided project there’s a prefab of the Player that you must use to develop the Player’s features.
• The player has 4 health points, represented by a health bar on top of the pirate sprite.
• The Health Bar Grows/Shrinks via the ‘width’ property on the Sprite Renderer component on the ‘Fill’ child
object in the provided prefab. This width takes in a float value between 0 and 1. (when at 1, it means the
player has 4HP (full health)). Note that the health bar is not an UI Element but made of regular gameobjects
in world space.
• When the player is damaged by a shark (see the Enemies chapter) the health bar is updated accordingly.
• Moves at 3m/s and has a Jump Force of 370N, these variables must be exposed in the inspector.
• When the player loses all its hp it explodes and removes itself from the scene. You must use the provided
explosion prefab.
• The player has an Idle and Running animation which are provided with the pirate prefab, use it
accordingly.
• While “Grounded”, the player can jump and pass-through platforms and land on top of them.
• Also, when “Grounded” the player can fall from platforms by passing through them and land on top of the
platform or ground right below it. The player cannot fall from the Ground located at the bottom of the map.
This “Fall” feature must be developed by the proper setup and use of collision layers.
Note: There are only two animations: “Idle” and “Walk”, no other animation should be implemented.
(Therefore do not add animations to any animator in any asset)
5. Potions
Potions are two small coloured objects which the player picks up allowing the player to collect their corresponding
gems.
• There are two kinds of potions: Red and Green, which match to their corresponding gems.
• When a potion is picked up, it reveals its matching gem colour for 10 seconds. (i.e.: Picking up the red
potion turns all red gems visible for 10 seconds).
• After a potion is picked up it disappears (deactivates) while the corresponding gems are visible, when this
time has passed it reappears (activates).
• It must be the potions to implement their Activate and Deactivate methods.
• There is only one potion per colour, in this case there is one green potion and one red potion.
• Collision detection with the Player must be detected (implemented) by the potions.
7. Manager
There can only be single manager in this entire project (this is important, or there will be a penalty if more than
one manager is used) and it must be a singleton.
This manager is responsible for the management of gems. Although it is possible to implement in other ways (such
as parenting), list(s) must be used to manage and provide the described features of Gems (e.g.: adding and
removing gems, iterating list(s) elements and tell them to Activate/Deactivate, etc.).
Every 20s (twenty seconds) the manager picks a random gem and replaces it with its counterpart.
(IE: A red gem is replaced by a green gem and vice-versa)
The random gem that is replaced can be visible or invisible, but the gem replacing it must start invisible
(deactivated).
8. Chest
The chest is an object located at the center of the map that opens when all the gems have been picked up. The
chest opening marks the successful end of the game. After that point the player becomes invulnerable and can no
longer be damaged by enemies.
9. Report
Besides the project, you must also deliver a report, in PDF format, with a detailed description of how the player falls
from a platform.
No other features should be described in the report.
The report should follow the supplied template.
Functionality Score
Player 10%
Sharks 10%
Potions 10%
Gems 10%
Chest 5%
Report 5%
Delivery Rules
The rules listed next must be respected for the project to be evaluated. Otherwise, the work won’t be accepted.
1. Delivery deadline of the 2nd assignment (1st and 2nd examination periods): 07-01-2025. The projects delivered
after the deadline won’t be accepted.
2. The project must be developed by groups of 2 students attending the same practical shift (the projects
developed by groups of more than 2 students won’t be accepted).
3. There can only be one scene in the project which is located in ‘Assets/Scenes’
4. The work must be developed using the base project available on moodle platform.
5. The developed work (Unity project + report) must be delivered through the moodle platform, using the link
available for that purpose. The project must not contain compilation errors or the implementation of non-
requested features according to the assignment.
6. The report should be delivered in pdf format.
7. All students must defend the delivered project so that they may be evaluated. The date of these discussions
(oral exam) is indicated in the evaluation calendar of the course.
8. The project must run and will be evaluated in the version 2022.3.45f1 of Unity’s editor.
9. Within the project to be delivered, you may delete the “Library” folder in order to be able to upload the
project to Moodle. (this folder is what causes projects to be +1 GBs, hence why you must delete it).
10. The zip file must only contain the Unity project and the PDF Report
11. The name of the delivered file must be composed of the students’ names (first name and surname) and
numbers of students who carried out the project as follows:
"NameSurname1_Number1_NameSurname2_Number2.(ZIP or RAR)"
1 Golden Skull
The golden skull is a pickup object that is hovering between and above the two highest platforms, when the player
picks up the skull (by overlapping with it) the following scenarios can happen:
a) Makes two (value defined in the Golden Skull) random visible gems (random pick of visible gems must be
implemented in the Manager) to be removed (removal must be implemented in the gem) from the level and
then gets destroyed (destruction must be implemented in the Golden Skull). If there’s only one visible gem in
the level that’s the only one removed.
(these gems being removed contribute to the player getting closer to winning the game!)
or
b) Does nothing and gets destroyed because all gems are invisible.
Functionality Score
Delivery Rules
The rules listed next must be respected for the project to be evaluated. Otherwise, the work won’t be accepted.
1. Delivery deadline of the 2nd assignment (3rd examination period): 31-01-2025. The projects delivered after the
deadline won’t be accepted.
2. The project must be developed by groups of 2 students (the projects developed by groups of more than 2
students won’t be accepted).
3. There can only be one scene in the project which is located in ‘Assets/Scenes’
4. The work must be developed using the base project available on moodle platform.
5. The developed work (Unity project + report) must be delivered through the moodle platform, using the link
available for that purpose. The project must not contain compilation errors or the implementation of non-
requested features according to the assignment.
6. The report should be delivered in pdf format.
7. All students must defend the delivered project so that they may be evaluated. The date of these discussions
(oral exam) is indicated in the evaluation calendar of the course.
8. The project must run and will be evaluated in the version 2022.3.45f1 of Unity’s editor.
9. Within the project to be delivered, you may delete the “Library” folder in order to be able to upload the
project to Moodle. (this folder is what causes projects to be +1 GBs, hence why you must delete it).
10. The zip file must only contain the Unity project and the PDF Report
11. The name of the delivered file must be composed of the students’ names (first name and surname) and
numbers of students who carried out the project as follows:
"NameSurname1_Number1_NameSurname2_Number2.(ZIP or RAR)"
When the player overlaps with the opened chest (and only when it is open) all sharks get destroyed (destruction
must be implemented in the Enemies) and display an explosion. You must use the provided explosion prefab.
The Chest must implement the collision detection with the Player.
*The explosion prefab is the same prefab used for the player character explosion
Criteria
The evaluation criteria for this assignment are the following.
Functionality Score
Delivery Rules
The rules listed next must be respected for the project to be evaluated. Otherwise, the work won’t be accepted.
1. Delivery deadline of the 2nd assignment (Special examination period): 15-02-2025. The projects delivered after
the deadline won’t be accepted.
2. The project must be developed by groups of 2 students (the projects developed by groups of more than 2
students won’t be accepted).
3. There can only be one scene in the project which is located in ‘Assets/Scenes’
4. The work must be developed using the base project available on moodle platform.
5. The developed work (Unity project + report) must be delivered through the moodle platform, using the link
available for that purpose. The project must not contain compilation errors or the implementation of non-
requested features according to the assignment.
6. The report should be delivered in pdf format.
Undergraduate in Games and Multimedia – Introduction to Programming – 2024/2025 10
7. All students must defend the delivered project so that they may be evaluated. The date of these discussions
(oral exam) is indicated in the evaluation calendar of the course.
8. The project must run and will be evaluated in the version 2022.3.45f1 of Unity’s editor.
9. Within the project to be delivered, you may delete the “Library” folder in order to be able to upload the
project to Moodle. (this folder is what causes projects to be +1 GBs, hence why you must delete it).
10. The zip file must only contain the Unity project and the PDF Report
11. The name of the delivered file must be composed of the students’ names (first name and surname) and
numbers of students who carried out the project as follows:
"NameSurname1_Number1_NameSurname2_Number2.(ZIP or RAR)"