-Added a cart item so that you can view items that you decided to refuse or postponed for later
-Updated combat system references
-I corrected the theses
1. Introduction
1.1 Brief description
A combat system is a system containing a set of capabilities and limitations that allows the product to simulate a combat encounter as part of the gameplay.
First of all, it is worth noting that part of the combat system described in this document is the basis that allows you to create different styles of combat, tied to certain types of weapons and having different tempos and typical patterns of actions. Which will allow players to find their own style.
The animations are different. Animations for each preset should reflect the essence of the preset used (an ax should cut and a sword should stab, a warrior with a spear should use the advantage of distance, and a warrior armed with a dual weapon should rely on speed and accuracy).
The system should create the ability to implement dynamic combat, regardless of the selected weapon. (sword/bow/magic, etc.)
Does not contain lethal counterattacks and other methods of quick execution in most cases.
Should work with different types of input.
Combo attacks.
Special attacks.
Strong connection with the Skill tree - most of the special attacks/improvements and combos can be learned in skill three.
The ability to use an enemy's attacks against him.
The ability to control the movement of opponents on the battlefield.
Fights shouldn't be too long.
Humanoid opponents should not differ much from the GG in terms of capabilities in most cases.
Boss/miniboss fights should not be too drawn out by numbers and have the potential to become boring.
1.4 Terminology
Complex input is a key combination that consists of several simultaneous key presses. Hold, Double-click, Shift, Alt + Letter for example.
Attack type - attack presets with certain inputs.
1.4.1 Gameplay actions
Attacks
Block
Jump, parkour, dodge
Movement
Dialogue
Interaction with interactive objects
Using consumables
Steal
Parry
1.5 Links
2. Description
2.1 Basic operations
Attacks - Actions aimed at causing damage to characters, used to perform combos:
Light attack - High speed of preparation and recovery, compensated by low damage. Fast-playing animations allow you to carry out a large number of attacks and increase the tempo of the battle.
Heavy attack - Unlike a light attack, the attack and recovery speed is lower, but the damage is greater.
Evasion is an action that allows you to quickly change the character’s current position in the world. Designed for the character to avoid damage, control distance and gain a tactical advantage in battle.
2.1.1 Block
Block - blocks part of the damage dealt from the frontal direction.
2.2 Special attacks
2.2.3 Charged attack
When you hold the [Light Attack] input, after a quarter of a second the attack begins to charge. Every second the initial damage scales. The more you press, the greater the damage scale (there is a limit), it breaks through the block when it reaches N coefficient. scale.
While charging a strike, you cannot move.
When creating an animation, you need to visualize the blow being charged enough to break through the block.
2.2.4 Running attack
When you press one of the basic attacks while sprinting, a different animation plays; the attack animation while running does not stop the character, as during normal movement.
2.2.5 Dash attack
When you press [Forward] + [Dodge] + [Light Attack] , the dash attack animation plays. Used to quickly close the distance with an attack.
2.3 Parry
When you press the [Heavy Attack] input during a certain period of frames of the enemy's attack animation, it interrupts the enemy's attack. The player character plays the parry animation, the enemy plays the parry animation.
Gives an advantage over the enemy in the form of a stun-lock on him.
What types of attacks can be parried: light and heavy attacks.
Weapon Types: Any type of weapon can parry any other type.
Parry
2.3.1 Riposte
Critical hit after parrying. The damage animation plays automatically.
Gives an advantage over the enemy in the form of a stun-lock on him and a strike with critical damage.
A sequence of specific types of attacks. The combo continues when you press attack at the end of the animation. The final attack in the sequence is a finisher, which has a long uncut recovery animation.
When a combo is successfully completed, a special finisher is played, which gives certain effects (buffs, increased damage, debuffs, etc.).
If you click on an attack that does not correspond to the continuation of the combo, an unplanned finisher is played (without special properties, but has a long uncut animation).
The threat marker is a kind of combat compass and helps the player navigate the battlefield. It is an invisible horizontal disk around the character. All opponents are marked on the marker as a visible sector.
White pointer - points to an NPC in aggro towards the player, but out of sight.
Red pointer - points to the NPC who is attacking the player, in and out of sight.
The player constantly experiences a lack of time to make decisions in battle.
He enters the battle and begins to pin down the enemy using combo attacks.
If the enemy gains an advantage, the player can nullify it with special attacks. If the player cannot quickly regain the advantage, he will be forced to defend himself with blocks and dodges and either wait for the moment when the enemy stops his onslaught, or try to catch him in one of the attacks, parrying it in order to seize the initiative.
4. Visual component
We need sets of animations for various combined and special attacks
Each of which will correspond to its own weapon and a specific set of attacks and blocks.
5. Connection with the rest of the game
Skill tree - unlocking actions through learning skills.
Movement - movement is different in battle
AI - the behavior of bots in and out of battle is different
Items - the type of weapon in your hand determines your fighting style
6. Balance
*Link to Google Sheets*
7. Sound
Technical Specifications for Sound Designers
8. Technical implementation
8.1 States
8.1.1 Battle mode
The player enters this state when an enemy NPC attacks him.
The condition is removed if all NPCs in the aggro die or remove aggro themselves through planned events.
In this state:
Fighting stance:
Combat IDLE animation of a character holding a weapon or fists.
The character's speed changes from “Movement speed outside of combat” to “Movement speed in combat” .
Sprint speed changes from “Sprint speed outside of combat” to “Sprint speed in combat” .
In battle, when you press sprint, the character leaves combat locomotion and plays the running animation.
Save mode not available (Quick, manual save, auto save):
Exceptions are event saves (Usually during key stages of the plot, where battles take place one after another).
You cannot interact with objects and the environment using the interaction button:
Notes
Interactive objects
Can't interact with NPCs
Start a dialogue
Trade
8.1.2 Toolkit for HD by state
Movement speed in battle
Sprint speed in battle
Events for NPCs and triggers:
Login to agri.
Exit from agra.
8.1.3 Limitation of use
You cannot use combat actions (attacks, displacements, blocks, parries, cutting attacks) when:
Non-cancellable parts of animation
Damage Dealing Animation
Parkour, dodge, jump
Playing animation of taking damage
Dialogue
Open menu
Blocking status (stun)
Death
Being in the air
8.2 Target
8.2.0 The target is triggered by:
The closest enemy to the player in radius
Based on the maximum viewing angle of the camera (visual area).
8.2.1 Take the camera to Target
When entering combat mode, the player can target an enemy. When you click on Mouse3, the camera locks onto the enemy and the player enters targeting mode.
In targeted mode:
The character goes into combat movement (combat locomotion), where the character, when moving to any side, looks towards the enemy.
The camera changes its position and smoothly moves to the specified N (Offset).
The target is triggered on the enemy closest to the player in radius and maximum camera angle (visual area).
When you press the camera capture button again, camera capture is canceled.
8.2.3 Auto-Change Target
When auto-changing/cancelling a target, the camera exits target mode and the character goes into peaceful movement.
Automatic target change occurs if:
The player will move more than N away from the target.
Another character enters between the player and the target.
Target is dying.
The target goes out of sight (an NPC will go behind a large object, for example).
8.2.4 Change to key
The target changes to the button:
Change target to trail.
Mouse Wheel Up
Change target to previous.
Mouse Wheel Down
If prev. died or he is now gone or was not there, then the next shift is triggered.
The target changes to the next closest target after the first one.
8.2.5 Changing the camera target with the mouse
To change the target with the mouse, you need to have the camera's target mode set. If you pull the mouse (camera) in a direction greater than a certain intensity N (resist the target), the target changes. In which direction they pulled, the target changes to the nearest one.
8.2.6 Combat locomotion
When targeted, the character switches from "Peaceful Movement" to "Combat Locomotion" .
Combat locomotion - The character is turned towards the enemy and moves on 4 sides without taking his eyes off him.
Tools:
Animations for combat locomotion in combat:
Weapon type.
Type of movement.
Running, walking, simple walking, jumping.
Animations for each of them.
8.3 Actions
8.3.1 Attack
Attacks are actions aimed at causing damage to characters and are used to perform combos.
The attack animationis divided into three stages:
The swing is an interruptible part of the animation. Can be interrupted by blocking, jumping, or dodging.
Moment of damage - uninterruptible part
Recovery - Can be interrupted by blocking, jumping, or dodging.
Тайминг на след. удар в комбо
Additionally:
When swinging, you can cancel the attack by dodging, rolling, or jumping.
During the damage phase, all gameplay actions are blocked.
The damage inflicting stage consists of the moment of inflicting damage and an uncut section of the animation.
After the damage phase ends and until the animation ends, the character can:
Continue the combo, dodge, jump, block.
You need the value of the flight impulse when receiving damage.
Most likely not on the dependence of the damage, as the damage of a large monster can be small, but visually it flies a long distance.
When playing the next attack, the character turns towards the direction of the camera.
Attack Animation Builder:
Does the block instantly break through?
Sets the value of the consciousness scale to maximum.
Is the attack parriable?
Damage multiplier
The multiplier is multiplied by the damage of a certain type of attack in the weapon’s power supply (that is, for which type of attack the animation is attached, the damage is multiplied by that).
List of effects applied when hitting an enemy with an attack
Effect (imposed statuses, additional damage, healing, changing character parameters).
Target of the effect (on the enemy, on yourself).
Basic attack types:
Attack type - attack preset with a specific input.
Light attack
Heavy Attack
8.3.2 Charged attack
When holding the [Light Attack] input, after a quarter of a second the character begins to charge an attack and cannot move. After the input is released, a strike is made.
The charged attack animation is divided into three stages:
Staging is the part of animation that is interrupted.
Holding is a looping part of the animation interrupted by dodging, jumping, or blocking.
If yes, this action cannot be used until it is unlocked. Dynamic data can be changed, for example, through skilltree.
Minimum damage multiplier (from which charging starts)
Current damage multiplier
Max. time during which the multiplier is charged
Dynamic variable stat.
Multiplier per second
Dynamic variable stat.
Multiplier threshold at which an attack can break through a block
Dynamic variable stat.
Cancels a charged attack when damaged
Dynamic variable stat.
Minimum damage at which a charged attack is canceled
Dynamic variable stat.
8.3.3 Running attack
When you reach maximum movement speed while sprinting, when you click on one of the basic attacks, another attack animation is played.
The attack animationis divided into three stages:
The swing is an uninterrupted part of the animation.
Moment of damage - uninterruptible part
Recovery - Can be interrupted by blocking, jumping, or dodging.
Additionally:
The attack animation while running does not stop the character, as during normal movement.
At the stage of causing damage and swinging, all gameplay actions are blocked.
Constructor:
Values from attack constructor
Blocking use
If yes, this action cannot be used until it is unlocked. Dynamic data can be changed, for example, through skilltree.
Separate animation for each type of attack (light and heavy), type of weapon.
8.3.4 Dash attack
When you press [Forward] + [Dodge] + [Light Attack] , the dash attack animation plays.
The attack animationis divided into three stages:
The jerk and swing are an uninterrupted part of the animation.
Moment of damage - uninterruptible part
Recovery - Can be interrupted by blocking, jumping, or dodging.
Additionally:
The distance and speed of the dash depends on the animation.
The multiplier is multiplied by light attack damage.
At the stage of causing damage and swinging, all gameplay actions are blocked.
Constructor:
Values from attack constructor
Blocking use
If yes, this action cannot be used until it is unlocked. Dynamic data can be changed, for example, through skilltree.
Separate animation for each type of weapon.
Damage multiplier
8.3.5 Evasion
Performed with a complex input - WASD + [Dodge] (to dodge in the selected direction). When pressed without direction, a backward evasion is performed (the forward vector is taken from the character’s face).
The dodge animation is divided into 3 parts:
Beginning - preparation for a dash (uninterrupted by character actions)
Movement - looping motion animation is interrupted by certain actions of the hero
Stop - completion of a dash (uninterrupted by character actions)
Evasion Constructor:
Blocking use
If yes, this action cannot be used until it is unlocked. Dynamic changes, you can change it, for example, through skilltree.
Character's evasion distance
Dynamic variable stat.
Character Evasion Speed
Dynamic variable stat.
Pak dodge animation (Start, movement, end)
Invulnerability footage
Blocking use
If yes, this action cannot be used until it is unlocked. Dynamic changes, you can change it, for example, through skilltree.
Duration of invulnerability frames
8.3.6 Block
A defensive technique, if successfully executed, allows you to reduce part of the damage coming from the frontal direction ( N degrees in both directions from the forward vector).
This is done by holding the [Block] button.
Block animation is divided into 3 stages:
Staging is an uninterrupted part of animation
Hold - a looping part of the animation interrupted by the following actions:
attacks using the block button in their input
dodge, jump
transition to the vacation stage
Vacation - animation interrupted by character actions
Additionally:
During the block (all three stages) you can move.
Movement in a block is N% slower than Speed in combat .
You cannot sprint in a block.
Damage is blocked: while setting and holding a block, damage comes from the front. Then the block is considered successful and does not impose a stunlock.
If a block is placed, but the damage passes through an unblockable zone, the character receives full damage and gets a stunlock.
Until the animation of releasing the block and/or playing any other animation other than holding the block ends, it is impossible to place a new block.
Block constructor:
Animation of setting, holding, releasing for each type of weapon
Width of the frontal zone
Percentage of damage blocked (weapon/shield BP)
Percentage of movement speed cut off
8.3.7 Parry
When you press the [Heavy Attack] input during a certain period of frames of the enemy's attack animation, it interrupts the enemy's attack. Opponents must look at each other, the enemy's attack must be within the radius and parry distance .
If a parry is successful, the player character plays the parry animation, and the enemy plays the parry animation.
Область парирования
Parry constructor:
Blocking use
If yes, this action cannot be used until it is unlocked. Dynamic data can be changed, for example, through skilltree.
Animations for each weapon type
on the player character
stunlock on a parried character
Parry area - N degrees from character's face
Max. parry distance
Overlay effects
Effect (imposed statuses, additional damage, healing, changing character parameters)
Target of the effect (on the enemy, on yourself.)
Additionally:
When playing a parry, the player is invulnerable to damage.
Parrying occurs when there is an enemy in the Parry Area, he makes an attack and the moment of impact is at the moment 1 minimum unit before the damage is dealt and up to -N% from this moment.
When parrying, the player character turns towards the opponent being parried.
If the character is attacked by several opponents at the same time, parries the attack that started first: one attack is parried, the second is not.
Information about which attack is parried is included in the attack animation.
8.3.8 Riposte
After parrying, the attack animation plays automatically.
Parry constructor:
Blocking use
If yes, this action cannot be used until it is unlocked. Dynamic data can be changed, for example, through skilltree.
Attack animation for each weapon type
Damage multiplier on heavy attack damage
Overlay effects
Effect (imposed statuses, additional damage, healing, changing character parameters)
Target of the effect (on the enemy, on yourself.)
Dynamic variable stat.
8.4 Combo constructor
Possibility to exhibit:
Weapon type
Animation sequences based on certain attack types
Condition before attack. What event must occur before the attack can be executed?
Sprint, dodge, block (holding moment)
Combo blocking
Certain attacks in combos can be blocked.
Dynamic variable stat. You can unlock it, for example, in Skilltree.
Unplanned finisher animations for each attack type
If you click on an attack that does not correspond to the continuation of the combo, an unplanned finisher is played.
For example, the player has access to the combo L+L+L (and nothing else).
If he presses L+L and then not L, but P (an attack that does not correspond to the continuation of the combo), then an unplanned finisher will be lost.
If he successfully performs a combo by pressing L+L+L, the end animation will be a special finisher. (The differences between unplanned and special are in the description paragraph)
When receiving damage from an enemy, it loses control (stun-lock) and the animation of receiving damage is played.
The animation played depends on the percentage subtracted from the max. HP. For example, a character has max. 100 HP, received 10 HP damage, this is 10%: in the interval 1-50% another animation is played, and in 51-100% another animation is played.
Those. implementation: The ability to perform all gameplay actions until the animation of taking damage ends is disabled.
Character BP:
Stanlock animation
Weapon Types
The ability to set the animation for a certain period of the percentage of HP taken away (damage received)
The time during which the character is invulnerable to stun-locks (and playing the animation of receiving damage), after receiving the first stun-lock.
Example: A player receives a stun-lock after receiving damage. Within N seconds after the first stun-lock, even if the player receives damage during these N seconds, he will not receive the stun-lock (and play the animation of taking damage).
Additionally:
If a character receives damage while in the air/landes, the animation of receiving damage will be played rather than landing/flying.
8.5.3 Threat marker
During battle, a horizontal disk appears around the character.
White pointer - points to an NPC in aggro towards the player, but out of sight.
The pointer to the enemy disappears if he returns to view or dies.
Red pointer - points to the NPC who is attacking the player, in and out of sight.
After stopping the attack/being hit by an attack, the color returns to white (if the enemy is out of sight, if in sight, the indicator disappears).
Example
8.5.4 Finishers
Finishing off - animations of killing an enemy NPC, which can go in a bunch of tearing off limbs.
Terms of Use:
When you press attack, if the enemy NPC has less than N% HP, the finishing move will trigger with a M% chance.
When riposting or parrying, if the enemy NPC has less than N% HP, the finishing move will work with a 100% chance.
Additionally:
When the finishing move is played, the player is invulnerable to damage.
Finishing Constructor:
Blocking use
If yes, this action cannot be used until it is unlocked. Dynamic changes, you can change it, for example, through skilltree.
The threshold of the percentage of HP at which the chance of triggering will appear.
Dynamic variable stat.
Trigger chance.
Max. finishing distance.
Finishing radius.
Finishing type.
Weapon type.
Finisher animation.
Animation of what is being achieved.
Socket offset for editing the correctness of animation playback.
Maximum distance to a socket in a plane.
11. List of features for the next iteration
1. Rework the parry-block system. Rework timings, interaction with combat dance, the ability to use several actions in parallel. (block on the left, attack on the right at the same time).
2. Perhaps we will add a system for directing attacks of NPCs (or NPCs and ggs) and dodges of the player and NPCs, long-range refs Infinity Blade, For Honor. It is not yet clear what it will look like in its final form, nor whether we will add it.
3.Animations-combos of different actions. You will need to add a system for customization - which actions can be applied after which, which animations will be triggered. This will require a complete reworking of the combat system, as now it involves light, heavy, parry calculations.
4. Connection of different types of combat through transitional combos. For example, after an attack in miles, you can click on change stance and then a special attack will be played, which starts from miles and ends in range, while smoothly transferring the player to ranged combat.
5.Complete redesign of the camera. Writing your own plugin or selecting a more suitable one that we can flexibly customize.
6.Introduction of a system of magic builds.
7.Introduction of a system of skills and ultimates.
In connection with the global points above, additional ones may be needed, which are currently difficult to predict.