Project Type Solo
Duration 6w
Focus Design
Software UE4
The Modular Armor Prototype was a 1 semester project focusing on designing a unique mechanic or game system and implementing it into engine as a playable prototype.
Everything was designed from the ground up from the bare basics of movement to armor passthrough values and integrity, for example. An additional test level designed to showcase each feature of the prototype was also implemented.
All design and programming is my own. A few assets used (animations and skysphere) were acquired from free-to-use sources.
The main parts of this prototype's design are broken down into sections below. Each section is then explored in more depth, and a few snippets of the design doc are are provided.
There are more aspects to this prototype's design, so I highly recommend you have a look through the full Technical Design Document right here.
The entire level was designed and built from scratch. Starting from a simple concept sketch, taken to a finalised, fully planned out, meshed and lit level.
Pickups resources are intentionally scarce to give the player just enough resources to get through each section.
Significant thought was put into the movement and feel. Every parameter was considered individually.
There are 5 weapons and two throwables, each have unique characteristics and armor penetration and damage values.
Weapon damage valued were balanced on a weapons table.
Health, damage values, and movement patterns were the focus here.
Description
This is the player character's actual armor. If it's damaged, it'll need to be manually repaired.
Incoming damage, will damage both the armor and the body, as the armor can't absorb all of it. Incoming damage is first reduced depending on its incident angle, the remainder is further divided into armor and body damage depending on the type of weapon that caused it.
For example, if the incoming projectile has a damage value of 120, an armor penetration rating of 75%, and an incident angle of 45 degrees, then due to the angle of incidence, the resulting damage value would become 60. From there, 75% of 60 is 45, so 45 points of damage would be dealt to the player’s body, and the remaining 25%, or 15 points would be dealt to the armor.
[incident angle feature not yet implemented]
Overview Table
[feature cut – only the light armor set has been implemented]
There are three unique sets of armor. This table breaks them down for an easy overview, showing advantages and disadvantages.
Description
This armor set is light allowing for higher movement speed, but it has overall lower integrity and is typically paired with smaller capacity, faster shields.
Armor Stats
-Max Shield Capacity - 80
-Movement Speed – 550
Armor Components
The body is the player character’s actual body, underneath all the shields and armor. It has a base constitution of 100 hit points. Unlike the shield, the body does not regen – it is static. Damage to the body must be healed at a medstation. If body HP reaches 0, the player dies and must respawn
Any incoming to the player triggers this event. Every time the player is damaged the system will: first assign the incoming physical damage and shield damage to local variables, and trigger damage effects (in this case a camera shake).
It will check if the shield is on. If so, it damages the shield with the weapon's shield damage rating. If the shield is off, it instead damages the body (HP) with the weapon's physical damage rating. If the results in death, the "Death" function is called, otherwise it calls additional hit effects.
The Shield System works sort of like that of the "Halo" series. It absorbs all damage until it's capacity reaches 0, at which point it will be disabled and let incoming damage through. When hit, it will take a small moment before it begins regenerating again.
On initialization, or after incoming damage, the shield regen loop is started which gets the system ready to start regening.
Before activating the shield, there is a "Shield Regen Delay", after which the shield is activated. There is then a loop that will check if the shield is at full capacity. If not, it will keep looping at the rate of shield regen until its and stop itself thereafter.
The regen will only occur as long as the character has not taken damage for a set amount of time. The regen loop is interrupted if damage is taken.
The armor damage system is lengthy but fairly simple nonetheless.
In a nutshell, if the character is hit when the shield is down, the incoming damage is divided into physical body damage (damage that passed through the armor) and armor integrity damage (damage it did to the armor piece it hit). The ratio for the two is dependent on the armor piercing rating of the damage causer (the weapon used to shoot the character.
This first part is doing just that; taking the incoming damage and dividing it into Armor and Body damage, and assigning them to local variables.
Then, it checks if the shield is on, and if so the total incoming damage is instead redirected to the shield.
It checks if the armor piece hit is broken, and if so redirects all the damage to the player instead. If it isn't broken, it damages the armor by the armor damage calculated earlier, checking it breaks
And lastly, it damages the player, with the body damage calculated at the start.
You can contact me at alannah.morrison7@gmail.com, I'll get back to you as soon as possible. Alternatively, I can also be found on the following platforms: