During my A-Levels, I was required to develop a project that accounted for 20% of my final grade. Throughout the process, I explored several ideas, including a platform exploration game featuring different areas for the player to navigate.
At the time, I came across a video by aarthificial showcasing a custom Unity frame-by-frame animation engine. Since Unity was not permitted for my project, I decided to create my own version of a frame-by-frame animation system within the framework I was allowed to use.
Although I ultimately chose a different concept for the final graded project, this experience allowed me to experiment with and build a functional animation system from scratch.
The system was built in C#, as that was the required language for the coursework project. I developed it as a separate framework library, allowing it to be easily imported as a reference or released independently from the final project.
The animation system allows developers to define animations as a list of image file paths, as shown in the example below:
_player_idle = new Animation(new List<string>
{
@"./Images/Normal/Idle/idle1.png",
@"./Images/Normal/Idle/idle2.png",
@"./Images/Normal/Idle/idle3.png",
@"./Images/Normal/Idle/idle4.png",
@"./Images/Normal/Idle/idle5.png",
@"./Images/Normal/Idle/idle6.png"
}, PlayerBox);
_animator.Add(_player_idle);The framework also supports multiple animations, enabling the animator to switch between them dynamically.