Video:

Description:

This project is my introduction to C++ in Unreal Engine.

I tried to look as much as possible for documentations, forums, and tutorials to understand its basis.

While doing this, I set myself a constraint, do everything in C++.

So even latent event are handle in C++ even that I know that it's easier with blueprint.

My aim with that was to learn as much as possible and it helped me to understand how to manage delay and specific timers.

Realisation:

First of all, I tried to understand how Enhanced Input Plugin works by setting up all the necessary buttons.

Then, I thought about a system to handle each note individually so they could be self-managed.

That's why I came up with a subclass of the notes that, at spawn, will initialize themselves with the desired input and start a timer

to check if the correct input is pressed within the time window.

The spawn system was handled by a Note Manager, which, upon spawning, shared it with the UI to display the notes and play the correct animation.

Conclusion:

This project was a great introduction to C++ and taught me a lot on class structures and how to handle multiple instances.

It also gave me a better understanding of Delays & Timers and how they were managed by the C++ in Blueprint,

and made my use the UMG system to build links between my code and the User Interface.

This experience gave me a great practice in developing subclass that can manage themselves, helping to prevent any bugs, avoid unnecessary references,

and possible memory leaks.