Vanquisher
Background
-
Made in Unity using C#​
​
-
Team was comprised of 5 programmers
​​
-
​Wanted to learn more about how to make a melee combat game​
​
-
Inspirations were Batman Arkham Knight, Shadow of War, Ghost of Tsushima, and Dark Souls
Player Movement
-
Created script to manage player controls ​
​
-
Player rotates and moves in the direction of input
​
-
Used Unity's Base Character Controller​
​
-
​Used Animation Blend tree for locomotion animations ​
Base Player Locomotion

Player Movement Blend Tree
Camera
-
Cinemachine Plugin
-
Used built-in 3rd person camera
​ -
Used 2 cameras
-
Out of combat​
-
In combat
-
-
Player Combat
-
The game is focused on the combat so the pillars reflect what the combat should be​
Main Pillars of Game
​
-
Power​
-
Feel Powerful​
-
-
Style
-
Look Cool​
-
-
Flow
-
Seamless Transition Between Attacks​​​
-
Combat Philosophy
-
​​​Original concept
-
The higher combo the better finishers the player could use​
-
i.e. If player combo was 30+ then an AoE finisher could wipe entire group of enemies​
-
-
Didn't work well as enemies felt tank-y and players wanted to use their finishers right away
-
Because of these problems and not having time to test more we decided to have finisher points to decide which finishers to spend on​​​
-
​
-
​Finisher points
-
As the player attacks and defeats enemies they gain finisher points that they can spent on finishers​
-
Each finisher has their own cost so players must choose wisely on which finisher to use​
-
Player Abilities
-
Main Attacks
-
Base​
-
Heavy
-
-
Dodge/Parry
​ -
Roll
-
Finishers
-
Basic ​
-
Healing
-
Grapple
-
Area-of-Effect
-

Player Animation Graph

Finisher Sub State Machine
Basic Attack
-
Simple Attack
-
Moderate damage
-
Have 3 attack combo
-
A counter keeps track of current animation
-
resets after 3
-
Base Attack Combo Example

Base Attack Sub State Machine
Heavy Attack
-
Stuns enemies
-
Minor damage.
Heavy Attack Combo Example

Heavy Attack Sub State Machine
Dodge/Parry
-
Dodge
-
avoid attacks​
-
-
Parry​
-
When the time is right
-
Counter Attack​ Enemy
-
Dodge/Parry Example
Finishers
Basic Finisher
-
Instant kill for basic enemies
-
Has 4 unique animations
Base Finisher Examples
Healing Finisher
-
Heals the player
Healing Finisher Example
Grapple Finisher
-
Grabs enemy from far away
Grapple Finisher Example
AoE Finisher
-
Instantly kills basic enemies
-
Some damage to brutes​
Area-of-Effect Finisher Example
Roll Ability
-
Avoid incoming damage​
Roll Ability Example
Challenges​​​
Attacking
-
Problem:
-
Get Player sliding towards enemies when attacking
-
Player body doesn't have Collision when attacking
-
-
Plan of Attack:
-
Use DoTween plugin
-
Uses animation to move
-
Works very well.
-
no collision.
-
-
Make system to lerp one object to another
-
Implement ActionList
-
Uses Transform to move
-
Works well.
-
No collision. ​
-
-
Question: Why doesn't collision work?
-
Remember: Using Unity's Character Controller
-
Collision only works with the Move function
-
-
3. Implement Move function into Lerp system
-
Works the same as before. ​​
-
Has Collision.
​​​​​​​​​​​​​​​​​​
Enemy Targeting
-
Problem:
-
​Player can't target the enemy they want to target​
-
-
Plan of Attack:
-
Sphere cast in direction of input
-
Inconsistent​
-
Can't target closer enemies
-
-
Add sphere around player​​​
-
Solves some cases for closer enemies
-
-
Set target based on enemy attacks​
-
Helps solve closer enemies case ​
-
-
Add ray cast between the player and casted sphere​
-
Solves most cases for mid range enemies​
-
-
Overall was good enough to call good
-
solves most cases for short, mid, long range enemies​​​
-
​
* Should've used dot product and weighted the
enemies based on a cost but wasn't aware of how
useful the dot product was at the time. ​
​
​​​​​​​​​​​​​​​​​​