


Amalga is a third-person shooter mech game. Transform from a combat mode, outfitted with a variety of guns for shooting down a multitude of enemies and bosses, into a flying machine of incredible speeds. Zooming through levels while maneuvering through challenging courses.

Summary
This game was made for my final capstone project with a small group of 6 people over the course of four months. Over that period of time the idea was conceived, prototyped, expanded upon and finalized to be the project of Amalga. In this project I took on a role as a mainly Systems and Technical designer working on things such as the socket-design boss behaviour tree, AI pathing and behaviours, Level and menu transitioning, saving and loading data, and more. I also like the other designers created my own level within the game creating a large open space for our players to freely roam as well as an Wyrm who weaved in and out of asteroids trying to attack the player character.
In Depth
Role
This game is one that I developed with some of my fellow students. I am mainly worked as a tech designer/system designer for this game. I developed a lot of the systems, designer tools, and tech that the player doesn't really see. I also worked as a level designer and created one of the games levels.
Game Framework
This game was constructed in Unity using C# scripting.
Game Timeline
The game was created in 4 months from January 2018 and until April 2018
AI
I created the boss behaviour tree that runs a variety of behaviours that are created by our designers. These behaviours inherit from a base class I made that has adjustable attributes, like distance to the player, if they can see them, or environmental ques, which dictate when the behviours can be used. The tree will find all the behaviours on the boss, categorize them accordingly, and run a random behaviour that meets the current conditions when a new one is picked allowing for varied gameplay.
I made a 3D node base pathfinding system that our AI can use. Since this is a flying mech game, using Unity's navmesh wasn't and option. I created an A* pathfinding system that will find the optimal path in the most efficient amount of time. This path can be used by multiple AI at the same time with no latency.
I created all the basic enemies with in the game. These range from simple ones like the kamikaze enemies that charge the player and detonate to more advanced enemies like gun bots that wander a round and fire at the player and utilize different gun types.
I created a unique boss that was utilized in the level that I designed. This boss is a massive Dragon that flies in and out of the walls trying to smash into the player, as well as shooting fire balls, launching spikes, and leaving explosives.
System Design
I created a base gun script that can be used to make a variety of guns, just by changing values such as fire rate, damage, or firing type. We used this script to design most of our guns in the game with only a few needing to inherit and override.
I worked with a fellow designer to perfect our saving and loading system. Any data, such as purchases, player levels, level completion, is saved this way so that way the player can set down the game and pick it up later. This is accomplished by creating a new file of a data class, and dumping all of the information onto there. A binary formatter then serializes the file making it uneditable until we deserialize it to read the information.
Settings for this game are saved with this saving/loading system, but are applied across the whole game. Things like volume, fullscreen, and quality settings are some of these settings.
Unity's Input Manager doesn't allow for rebinding keys, so we created a new Key Bind Manager. I figured out how to create functions that mimicked the functions of Unity's Input manager. Functions like get specific assigned button that the player set in the key binding menu, or getting axis values for movement.
Level Design
I created one of the levels in the game called the Forgotten Outpost. This level has the player reactivate an abandoned asteroid mining facility to find where a robotic dragon is nesting. The space is more open to allow for more flying as opposed to the more cramped nature of the other levels.
UI/UX Design
I created the cursor for the game. This cursor has a few moving parts to help it seem more sci-fi and a part of the world by simulating a hologram. It tilts left and right when the player moves the cursor, to help ease the movement of the cursor around the screen.
I designed the indicator system our game uses. There are indicators on the screen to show where certain items of importance, like enemies or waypoints, are in relation to the player. The designers can put the component on any object, and designate the sprite and color of the indicator for when the object is on screen and off screen.
Debugging
I have tested problems, and come up with solutions for a lot of features in this game. For example, I helped fix the aiming system, camera control, player movement, menu malfunctions, level glitches, progression systems, gun systems, and more.


