Pre-January
Prior to this point, I strongly lacked motivation – I was unhappy with the lack of content in our lectures, I didn’t know any c++ and I hadn’t touched the unreal editor in quite a long time. However, I resolved to learn c++ quickly to make up for this and produce a basic game skeleton by the deadline.
During September to December, I practiced creating basic python code for video and audio file manipulation using the tool FFMPEG. Although the code is basic, it’s useful for converting various video resolutions and audio qualities without any bitrate loss.

I also experimented with a segment of code for scroll normalisation in a rhythm game; it uses a while loop to iterate between the standardised bpm of a song compared to its natural fluctuations when it hasn’t been recorded with a metronome, and produces a rhythm game chart that hides this aspect from the player.

Vertical Game Jam
I collaborated with a team to create the game Trash Master. I attempted to help out with the weapon mechanics programming but, since we had an abundance of coders and most were more experienced than me, I opted to design audio for the game instead. I created a small folder containing the game’s SFX and iconic music track (Kevin MacLeod – Ace’s High). Unfortunately, due to an oversight where I thought I had already shared this folder with the team prior to the deadline day, the version uploaded online does not contain any of my files. The demo included with my submission has some of them edited into a revised version.
January
I received the book Unreal Engine C++: The Ultimate Developer’s Handbook by Stephen Seth Ulibarri for Christmas. This uses a beginner friendly approach, first showing you how to use basic unreal engine functionality before teaching you C++ isolated and then integrating it into unreal coding. This week, I decided I would use the first 3 chapters to refresh my unreal engine knowledge before diving into C++.
Chapter 1
To start this chapter, I installed Visual Studio 2022 to prepare for coding in C++. I created a basic unreal project and re-familiarised myself with the camera controls. I found out multiple object selection can be achieved through holding control, as well as some camera control bindings accessible through the alt key that I was not aware of in year 1.
I then revised basic 3d vector mathematics, which is a useful skill to use when translating objects and will be vital when coding in C++ directly.
Chapter 2
I revised the concept of classes and their organisation; any parent classes can have child classes derived from them that inherit their properties. Objects of a derived type are also objects of their parents’ type. I added a bench mesh to a basic actor blueprint to practice attaching components to actors. I then added a simple variable to this blueprint, as well as some code that edits its vertical offset relative to FirstVariable.

Chapter 3
I revised the creation of material instances, as well as assigning them various properties via vectors. I created one FirstMaterial class that three instances derive from, giving them different shades and varying degrees of shine. These include public parameters that make these values easy to edit and reuse on the fly.

I then learned how various forms of lighting can be utilised; my year 1 project only included a basic point light in the first room, as well as the default sky light settings. Using the knowledge I gained, I could implement a basic flashlight with two radial cones of different intensity into a game, or edit the sky settings to create a new ambience.
GDD Summary
My game is intended to replicate the same style of gameplay as 4-lane rhythm games minus the music. The player controls a cat character with one paw per lane. Enemies appear in the form of loveable animals that you have to swat away. Tuna can be collected for extra points and attacking a laser pointer will result in one of 9 lives being lost. Survival is endless; enemies spawn and move faster over time and gain new movement patterns that must be predicted.