Fight System
I've been working on the fight system for the last 3 months and have remade it from scratch 4 times. Sleeping Dogs, Mad Max, and RDR2 are my biggest inspirations for the melee combat. My idea is to make it feel less arcadey/beat 'em up and more realistic, with importance given to strategy. It makes the fights lengthy, but let's see once I get more feedback in demo/beta, I will make necessary changes.
In the fight system, there are a few stages:
1.Approach
2.Attack
3.Block/Dodge
4.Hit
5.Disengage
6.Knockout
The fight system is based on the distance and direction to the target. If the target is not in eyesight or is too far, pressing the attack key won't have any effect, as it doesn't make sense for the character to swing in the air. You will notice a small placeholder animation when this happens.

When the character is in the attack zone, if he is too close and in the front direction, the player will push. Or, he will make the character look towards you and then attack the player.


Attack: There are uppercuts, punches to the gut, jabs, hooks, and a few kicks that the player can perform. Based on the distance and direction, the player will play that attack animation. One important part is that I've tried to avoid the sliding thing. If you play similar fighting games, usually the game slides both characters to make them stand at the exact position and then plays the animation. It makes sense, but what I've done is that rather than sliding, the player will walk to that position and then attack his target. Also, I'm using IK for attacks, so even if the distance is greater or there is a change in direction, IK will try to ensure the attack hits the target body part.

Block: For each attack, there are block animations for the player. They are time-based. I've added an outline that changes color so the player can perfect block, but I've removed it and added a block stance instead. The block stance will block any upcoming attack, but it consumes stamina. You can also block attacks, although some are hard to block, like jabs, but they are time-based and not impossible.

While playing against AI, I noticed that it is extremely difficult to block the AI's attacks as they are time-based. To make it easier, I've added an indicator. Now, you will notice that there's an outline around the AI when it tries to attack the player. The outline has different colors at different stages of the attack, which will help players block attacks more effectively

Dodging: I have implemented dodging mechanics. Some attacks, like quick jabs, are hard to block. For such attacks, dodging is the perfect solution. After a successful dodge, the player can also perform a counter-attack.

There are still many things which I can add in the fight system but I feel like this is a solid foundation for now on which I can build upon during early access. Big problem is with animations as I need to create them manually so plan is to hire animator to fix these animations during EA. Also I'm trying to post dev update every day or two on Discord so you can keep track of current progress.
In the fight system, there are a few stages:
1.Approach
2.Attack
3.Block/Dodge
4.Hit
5.Disengage
6.Knockout
The fight system is based on the distance and direction to the target. If the target is not in eyesight or is too far, pressing the attack key won't have any effect, as it doesn't make sense for the character to swing in the air. You will notice a small placeholder animation when this happens.

When the character is in the attack zone, if he is too close and in the front direction, the player will push. Or, he will make the character look towards you and then attack the player.


Attack: There are uppercuts, punches to the gut, jabs, hooks, and a few kicks that the player can perform. Based on the distance and direction, the player will play that attack animation. One important part is that I've tried to avoid the sliding thing. If you play similar fighting games, usually the game slides both characters to make them stand at the exact position and then plays the animation. It makes sense, but what I've done is that rather than sliding, the player will walk to that position and then attack his target. Also, I'm using IK for attacks, so even if the distance is greater or there is a change in direction, IK will try to ensure the attack hits the target body part.

Block: For each attack, there are block animations for the player. They are time-based. I've added an outline that changes color so the player can perfect block, but I've removed it and added a block stance instead. The block stance will block any upcoming attack, but it consumes stamina. You can also block attacks, although some are hard to block, like jabs, but they are time-based and not impossible.

While playing against AI, I noticed that it is extremely difficult to block the AI's attacks as they are time-based. To make it easier, I've added an indicator. Now, you will notice that there's an outline around the AI when it tries to attack the player. The outline has different colors at different stages of the attack, which will help players block attacks more effectively

Dodging: I have implemented dodging mechanics. Some attacks, like quick jabs, are hard to block. For such attacks, dodging is the perfect solution. After a successful dodge, the player can also perform a counter-attack.

There are still many things which I can add in the fight system but I feel like this is a solid foundation for now on which I can build upon during early access. Big problem is with animations as I need to create them manually so plan is to hire animator to fix these animations during EA. Also I'm trying to post dev update every day or two on Discord so you can keep track of current progress.