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.