Infinity 27 - Developer Skills Bootcamp
One fantastic opportunity I was able to take part in was a “Developer Skills Bootcamp”, a training course aimed to teach people the specifics of Unreal Engine 5 (or UE5). Working for Infinity 27, I was given the chance to develop a feature for their upcoming game “Samsara”, a Souls-like fighting and exploration game wherein you seek to escape the titular Tibetan Buddhist cycle of death and rebirth. Tasked with creating a spell effect for the game, I created “Astral Dichotomy”:
Overview
The course was an excellent opportunity to learn Unreal Engine 5 development, especially since it involved developing for an actual real-world game project. Initial steps were simply being taught how to use Unreal Engine 5, usage of Blueprints, version control in Perforce, remote desktop control with Parsec, that we would be developing a spell for the game, etc.
Since the game already had a lot of spells that covered a great deal of utility the player might need, I had to carefully consider what I should make and how it could be of use in gameplay. However, limitations often allow for creativity, and with some thought I noticed that the game had a day/night cycle that didn’t seem to have much effect beyond visual flair. Therefore, it only seemed right to have the spell be influenced by this particular game system.
The spell itself is essentially two-in-one, with the effect changing depending on whether it’s day or night in the world. If it’s daytime, the spell will create a bright flash that affects enemies in a radius around you, making them flinch and lose their “poise” if strong enough to withstand it, or become stunned for a few moments if not. If it’s nighttime, the spell will instead summon a dark cloud that follows nearby enemies and slows them down if they become trapped inside. Both of these spells are designed to help manage large crowds of enemies, so if the player becomes overwhelmed they can use it help turn the tide of battle.

Creation of the spell went through a few phases, internally called “Levels of Fidelity”; this started with LOF0 for a basic prototype, LOF1 for a more complete version with placeholder visuals, and LOF2 for a visually improvements and optimisation. The programming was done on two levels, UE5’s own “Blueprint” visual scripting system, used for prototyping and higher-level functionality (example below. Note the stitch in the middle of the picture – I had to merge two images together to show just this one Blueprint!)…

…And later on C++ in Visual Studio; this was used for more optimised engine-level code once the spell’s functionality was in place. It was much faster, but not able to everything, therefore a lot of the spell’s behaviour still had to be done via Blueprints (see a snippet of some C++ code below).

Alongside programming, I had to design other parts: the spell’s visuals were created using UE5’s Shader Editor for materials and the Niagara visual effect editor – this allowed for some flexible, modifiable, and pleasing particle effects to be used for the spell’s visual feedback; sounds were made with supplied audio assets mixed together with the Audio Cue editor; Perforce/P4V was used for version control (pushing and pulling updates to assets/code); and various tools and techniques were used to manage the development process (Parsec for remote machine access, Hansoft for issue tracking, Miro for notes and idea tracking, Agile/Scrum methodology with daily standup meetings, etc). See below for additional development material:
Once the spell was in a good place, it was presented to the developers and received very well, gaining a 100% mark and granting me a Certificate in Interactive Real-time 3D. I’m very proud of what I managed to achieve in the month provided, and I’m currently waiting to complete a contract that will let me implement and finalise the spell for the full game.