

Weapon Creation
​​
-
Learning to code in Unreal C++
-
Creating a Dynamic, Easy to change system on the guns
-
Weapon Gambling Mechanics
Role:
-
Technical Lead
-
Mechanics Programmer
-
Combat Programmer
In my final year project, I've been assigned as technical lead to direct on how the game will be structured and how each of the programmers will collaborate with each other.
For this project, we conclude on using Unreal Engine as it holds a lot of functions and bases for us to use to create an FPS game and we want to utilize that to be able to quickly prototype the game.
The guns are created initially to have all its values to be easily changed and tweaked for designers, and for the gambling mechanics that will be changed over and over.
Gambling mechanics were changed all the time to better suit the flow of the game, but that also required me to made sure my code was not dependent on anything else to make sure it still worked even when a specific part of the code is missing.

Testing explosions within the game

Overall, I was really happy to be able to create something quite dynamic for the designers to fine tune and let the players play with the gambling.
Having fun with the shotgun code
Ricochet Mechanic
​​
-
Thread Safe Arrays
-
Identifying and finding actors through sphere traces
-
Understanding and Utilizing TArray in Unreal
The Railgun within Mindslayer utilizes the same basis of the other guns code but it's bullet is totally different from the others. In short, the bullet creates a sphere and finds the closest target to it.
The bullet has to also somehow create it's own bullets towards the closest actor. I wanted a small delay in each ricochet to let player's see the ricochet in front of them, but doing that also means I had to create multiple checks so that the program doesn't upon finding an actor that has disappear within that delay explodes the game.

Testing Out Railgun with an uncapped ricochet bounce
Combat Mechanics
​​
-
Melee Dash Attack
-
This was done so that player's that are too far to enemies would lunge forward until they hit them.
-
- Weird Gambling Mechanics
- The Automatic gun in the game would flip flop around 2 modes which would require me to programmed in if the bullet hits the upper part or bottom part of the body.
- The Shotgun would also flip flop between 3 firing modes which had me adding damage values and resetting them and firing another type of bullet.

Tutorial Stage where you're force to press F to melee


Automatic and Shotgun's Ability


Other things I worked on
​
-
Level Transition Effect​
-
Score System
-
Identifies how enemies are defeated and adds a multiplier
-
Also Showing the player's grade at the end of the level
-
-
​Save System
-
Saving guns over the tutorial to level 1 and 2
-
Saving high-score of each level
-
-
Fans​
-
Using Unreal to generate LOD for the game
-
UI for guns
Challenges Faced
​
-
Understanding a new ecosystem, that being Unreal Engine
-
Coming to deal with the problems of dealing with projectiles and logic in a 3D space.
-
Managing and structuring how our teams code will be connected to each others.
-
Creating "Safe Arrays", because Unreal arrays are not safe thread.
-
Finding and understanding documentation for C++ in Unreal Engine.​
-
Working with C++ to blueprints workflow
My mentor and being able to read the source code for Unreal Engine has helped me a lot throughout facing these challenges. Dealing with the array problem had me deal with my misunderstanding of pointers and how useful they can be in making code that isn't dependent on others. Unreal Engine has forced me to code in a more cautions way to prevent any crashes or lag spikes in my future games.
Overall Thoughts
​
I had an amazing time working and hanging out with Kolo Mee Studio. They are an amazing team and I couldn't ask for a better one. I will definitely remember Mindslayer as I start my journey into game dev, learning to appreciate the process as much as the final product. I am grateful to meet and learn about so many things while making this game.