0% found this document useful (0 votes)
16 views11 pages

IP 24 25 Assignment2 Guidelines

The project involves developing a single-player platformer game using Unity and C#, focusing on coding standards and best practices. Key functionalities include player movement, enemy behavior, item collection, and a game manager, with specific requirements for input systems, camera usage, and asset management. Deliverables include the Unity project and a PDF report detailing player mechanics, with strict deadlines and evaluation criteria outlined for different examination periods.

Uploaded by

121469
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views11 pages

IP 24 25 Assignment2 Guidelines

The project involves developing a single-player platformer game using Unity and C#, focusing on coding standards and best practices. Key functionalities include player movement, enemy behavior, item collection, and a game manager, with specific requirements for input systems, camera usage, and asset management. Deliverables include the Unity project and a PDF report detailing player mechanics, with strict deadlines and evaluation criteria outlined for different examination periods.

Uploaded by

121469
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Department of Computer Engineering

Games and Multimedia – Introduction to Programming


Professors: Ricardo Antunes, Samuel Martins
Project Description – 2 nd Project

First, Second, Third a n d S p e c i a l Examination Periods


(For the 3 rd and Special examination periods please read last sections)

Estimated date to publish the grades (1 st and 2 nd examination periods): 24-01-2025

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.

Undergraduate in Games and Multimedia – Introduction to Programming – 2024/2025 1


2. Camera
For this assignment it is mandatory to use the Cinemachine package. The base project already contains the
Cinemachine package installed. You must ensure that the main camera follows the player around and is
constrained within the bounds of the map (as opposed to having a static camera overlooking the entire map, which
is not what is intended).

Figure 1: Entire Level Map

Figure 2: Visible game area rendered by the main camera

Undergraduate in Games and Multimedia – Introduction to Programming – 2024/2025 2


3. Player
The player is represented by a pirate. The user should be able to move the pirate horizontally, jump and fall. See
the MyInputActions asset to check the keyboard keys already bound to these actions.

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)

Figure 3: Representation of the player and his health bar

Figure 4: Representation of the explosion (provided as prefab)

Undergraduate in Games and Multimedia – Introduction to Programming – 2024/2025 3


4. Sharks
Enemies are represented by Sharks. This project has a fixed amount of 2 sharks (this cannot be changed) that stand
idle on the lower corners of the map.
• Each shark can detect the player in an 8-meter range.
• Upon detection the shark will enter a frenzy for 10 seconds. During this 10 second frenzy the shark will run
forward until detecting a wall, which it will turn around and keep running.
• When moving during a frenzy, the shark moves at 3m/s (three meters per second).
• After 10 seconds the shark stops and remains idle until detecting the player which starts the frenzy again.
• When a shark overlaps with the player pirate, it deals 1 HP of damage to the player (this must be noticeable
in the health bar mentioned above on the Player chapter).
• Sharks Attempt to detect the player every second.
• Sharks Attempts to detect the walls every 0.1 seconds (ten times per second).
*Walls are on a collision layer named ‘Wall’
• The sharks cannot physically collide with each other or the player but can overlap.

Figure 5: Representation of a shark enemy

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.

Figure 6: Representation of the green and red potions

Undergraduate in Games and Multimedia – Introduction to Programming – 2024/2025 4


6. Gems
Gems are small coloured objects which the player picks up to win the game.
• There are two colours of gems: red and green.
• When the game starts, gems deactivate themselves and do not collide with the player (until activated by
the potion). It must be the gems to implement their Activate and Deactivate methods.
• When gems are revealed (activated) by their respective potion, they become visible and can be picked up
by the player.
• The provided project already has some gems added to the scene, but it must be possible to add/remove
gems to/from the scene and run the game. The only requirement should be the user to drag and drop gems
onto the scene area (or delete gems from the scene). There should be no code change or Inspector field
assignments or parenting.
• When all gems are picked up the Chest opens.
• Both gems are provided as prefabs.

Figure 7: Representation of the green and red gems

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.

Undergraduate in Games and Multimedia – Introduction to Programming – 2024/2025 5


Figure 8: Representation of the chest

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.

Undergraduate in Games and Multimedia – Introduction to Programming – 2024/2025 6


Criteria
The evaluation criteria for this assignment are the following.

Functionality Score

Input System 2.5%

Cinemachine Camera 2.5%

Player 10%

Sharks 10%

Potions 10%

Gems 10%

Gems Manager 45%

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)"

Undergraduate in Games and Multimedia – Introduction to Programming – 2024/2025 7


Third Examination Period
For the third examination period, all the features of the first/second examination periods are the same, plus the
following must be implemented.

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.

Figure 9: Representation of the Golden Skull

Undergraduate in Games and Multimedia – Introduction to Programming – 2024/2025 8


Criteria
The evaluation criteria for this assignment are the following.

Functionality Score

First/Second examination periods Criteria 70%

Golden Skull feature 30%

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)"

Undergraduate in Games and Multimedia – Introduction to Programming – 2024/2025 9


Special Examination Period
For the special examination period all the features of the third examination period are the same, plus the following
must be implemented.

1 Shark Explosions When Chest Opens


Besides opening when the player picks up all gems, the chest also allows the player to explode the two existing
enemy sharks.

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

Figure 1: Representation of the explosion (provided as prefab)

Criteria
The evaluation criteria for this assignment are the following.

Functionality Score

Third examination period Criteria 70%

Sharks Explosion feature 30%

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)"

Undergraduate in Games and Multimedia – Introduction to Programming – 2024/2025 11

You might also like