

PROJECT IMPACT
This is 3D Fighting Game that brings new elements such as Direction and Locational Damage as a factor in combat. Which changes how fighting games are traditionally played. Focusing on spacing, timing and setups but performing this actions in a simple method
The enemy AI in this game built from the ground up, I did not opt to use the systems Intricate detection systems because the game mode is only limited to a traditional 1 vs 1.
Code is still streamlined to a blueprint codebase instead of behavior trees to have manual control over complex decisions such as enemy feinting, different phases of combat such as standup or ground and pound states as well as decisions on when to perform finishers and what direction to block in
SPLIT SCREEN IMPLEMENTATION
Like siege, I created a new controller class that would be independent of any player character. In doing this, the controller is able to possess different types of character Classes while maintaining its original variables from a game mode and It’s begin play events.
Using this feature is also necessary as you can control multiple characters in the game, and easy implementation of character swapping can be done instead of creating a component to swap modular parts every time a new choice is selected at run time
Additional Properties
Injury based damage system
Utilizing the same module as SIEGE
Streamlined AI transversal loop
CHARACTER TRAITS & SPECIALIZATION
Parry response time and proficiency varies because of the character trait
I Implemented a locational damage system instead of the tradition 0-100 hit point system for vitality to add depth to the fighting game. However, locations are divided mainly to 3 main parts to streamline this feature and not overload the gameplay with redundant variables.
Depending on Character Classes, I also implemented a system to give uniqueness to each fighter, where they are durable in certain areas but weak in others.
This allows us to have different ways to approach the fight and not just do thesame tactic over and over.
KNOCK DOWNS DUE TO SUSTAINED INJURY
For Enemy AI, there is only one necessary state since it is an arena or skirmish game,
Idling, Unaggressive, Searching modes were unnecessary, this greatly trimmed down any
possible code bloat that could occur, allowing for more characters on screen.
Only one phase was needed and only one loop to worry about, which is to transverse on assigned points on the map, but once the detection timer sensed the closest enemy actor returning a hit in it’s trace, then it prioritizes and heads over to the detected target actor.
I implemented a chance based algorithm for all the AI, to easily iterate the different types of enemies and characters.
With this method, even with modifying behaviors, such as agile, quick but volatile enemies compared to slow but durable enemies, differentiation these when coding them would only require to modify frequency and chance values.
Each fighter is one of the three main traits.
- Agile: Fast attack speeds, low stamina requirements, weak in the core/torso area
- Technical: Moderate attack speed and stamina, fast momentum increase but weak against power attacks and in the head area
- Vanguard: Slow attack speed and high dodge stamina consumption but durable, weak in the leg area
Implementation of these traits were done via the mentioned chance based module.
For Blocking and AI Dodging chances, like siege, a trace system called per annotation interface is also used. Attack animations have a “signal annotation” which sends a collision sphere to enemy targets in the near range, again, using a chance based system, this allows AI to Identify the direction and have a chance on if the AI can block the incoming attack but also, with this game’s feint mechanic, the trace system helps by having a chance to miss, creating an artificial misdirection that emulates “setting up attacks or combos” like in actual sparring or hand to hand combat.