Post by Xarious on Aug 21, 2016 13:01:15 GMT -5
This post is currently a bit outdated still and will be updated soon. Most recently viewed as of 2/27/24. For the most part, this is still correct, but there is still some stuff missing that needs adjusted. Will update as soon as possible!
So today, ladies and gentlemen, I am going to earn my PhD in JKA Block Techniques. The knowledge here is a compilation of all the greatest block-oriented minds in JKA. I'd cite LemonLime, Bekind, and RedLeader for their previous work on blocks and for teaching me all they knew, and I'd also thank Apocalypse, Bucky, and Dzon for helping with constant tests and updates to this.
Without their contributions, there would still be a lot that has yet to be discovered about how blocking functions within the game.
Section One - The JKA Physics Engine
In Jedi Academy, few may realize it, but there IS a focus on physics. First, lets evaluate the parts of a strike. When you first learn, it's generally like this:
1. Start of strike
2. The Part That Kills You
3. End of strike.
However, in advanced theories of blocking, there are 5 basic stages:
1. Beginning of the strike, where no damage is caused.
2. Still early in, and the start of damage begins, but starts off weak
3. Saber in full swing, this part still kills you.
4. Strike nearing an end, damage decreases
5. The strike resets, during this period people are generally open to be hit, and the saber causes no damage (and/or a single point of it, if any).
Now, in my theory, things stay relatively similar, but I believe this is a more accurate and up to date set of 8 stages:
1. Beginning of strike. No damage, no forward saber motion, saber ghosting*
2. Very early start of motion, parry stage**
3. Very early start of damage
4. Beginning of moderate damages
5. Mid-section. This is the point where the saber is directly in front of you, and deals maximum damage.
6. Slowing of damage, approximately the same as stage #3
7. Near-end of damage (at most, a few points of damage)
8. End of damage, reset phase. Saber does not ghost, and can still block during this phase.
The reason there are so many stages and differences in damage, is because each stage is based on the momentum of the swing. That is, how fast the saber is going at any given point in the swing. However, damage is not the only thing that is affected. Block power is determined by the stage of a strike as well. If two people collide at stage 4, there will just be a heavy block. If person A is in stage 3 and person B is in stage 4, and they collide, person B will either kill or knock back person A. We'll talk about knock backs a little further down.
Now, on top of that, the speed at which the person is moving is also taken into account. If I am running at someone during the swing, the speed I am traveling is added to the momentum of the swing. Note, that when I refer to 'speed' I refer to the rate at which the person is moving, not the saber. When i say momentum, I'm referring to the lightsaber itself. So if I am at walking speed, and my saber is in stage 4, and you are at running speed in the same stage, you have a higher likelihood of breaking through me because you have more total momentum in your swing. If that sounds complicated, it's about to get much worse.
Don't just take my word for it though. Here is a short section of the code and commits:
As you can see, this gets rather complicated, but it'll be explained in more detail as we go on.
* Keep in mind, if a saber is ghosting, that means it cannot be blocked, just as it cannot deal damage.
**The parry stage comes very quickly after the very start. If you are in this stage when another saber collides with yours, you will absolutely block them, but more importantly, if you hold attack, you will parry them.
Section Two - Stances & Saber Angles
So, the next thing you have to take into account is the stances. Luckily, these are pretty easy to get down. A simple chart can show how this works.
Strong > Staff > Duals > Medium > Fast
When these clash, the higher up the chart they are, the stronger they are. So, if someone uses medium against a staff, the staff will generally out block them. However, this does not mean that it isn't possible, under certain conditions, to still succeed. You can still use the parry stage of a swing to override this, and if your swing is in a more powerful stage (say, a fast style hit in stage 5 verses a strong style hit in stage 3) you can still overpower the hit.
Another thing to note is the speed chart. This... Is kind of confusing.
Offense Chart:
Running > Walking > Standing > Crouching
Defense Chart:
Crouching > Standing > Walking > Running
To explain, when you are attacking, you want more momentum. When you are defending, you want more stability. The less your saber is flailing about, the more stable you are. You also want angle. Generally, if you want to block while standing or walking, you'll want to be looking down so that it has more of a slope. However, when you're attacking, you want all the power you can gather to break through their blocking. Keep in mind, this only comes into play when we're talking about overwhelming the block power of the opponent, not when we're discussing parries.
You must also keep in mind that this is not a definitive chart. Just the action of running of standing or crouching alone will not give you some increased block power stat. Running and walking do matter to a degree, because the saber gains momentum, however in the case of standing vs crouching it is almost exclusively because the saber angle becomes drastically more likely to result in a block.
Section Three - The Parry
So why do we care about blocking? Well, aside from saving your life, you can also end someone else's. A parry is determined by a number of factors. It is, essentially, adding the momentum of an opponents' swing to your own momentum to create a fast, lethal attack. This means that the more total momentum your opponent's swing has, the more lethal your parry will be. Keep in mind though, the more momentum the opponents swing has, the harder it will be to block, which is increasing the risk of taking damage.
It is also important to note that parries require very, very careful timing. If you strike too soon, you'll mess up the block. Strike too late, and you wont get a parry, just a normal hit. You will know you have a parry because it is significantly faster than a normal strike. Now, here's the complex part... There are two different types of parries.
Standard Parry: A standard parry is when you attack at the very moment the block occurs. While this is harder to accomplish, because it requires timing your strike at the very second the collision happens, it is the fastest and most fatal way to take down an opponent.
Counter Parry: This parry takes place during Stage 2, the parry stage. I call this the parry stage not because it is the only stage you can parry in, but because it is an obscure stage during a swing where landing a hit will force a parry. There is a brief pause between idle time and Stage 2 (that is, Stage 1 where the saber is ghosting) where a parry does not occur. If one attacks at the same time as a block, a standard parry is engaged. If one attacks very slightly late of a block and makes it to Stage 2 as the block occurs, then a counter parry will be engaged. *
Delay parry: A delay parry is any parry that takes place post-block. In other words, if you block, and then immediately attack after, it will be a delay parry. In essence, a delay parry is no different than a standard parry. The only difference is, a delay parry will be (surprise surprise) delayed for a short moment before striking, but like any other delay swing, only this one will move much faster than normal once it occurs, simply because it is a parry.
Reset Parrying: You can also standard parry attacks during the reset of your swing, so long as you still have strikes you can chain. The game interprets the click during the reset as what is normally a delay, however, if it is done at the very moment of a collision, it uses that swing to form a standard parry. However, just like with delays, you need to still have strikes available in your chain to be able to utilize this.
* Note that it is possible that a standard parry and counter parry are identical, and it is merely latency and other client settings that impacts hit timing and produces this effect.
Section Four - Knockbacks & Overwhelms
To begin, I'd like to define "Knockback." A knockback is an indicator of who is winning during a blocking battle. It is, essentially, when the player is stunned and their saber is knocked to the side for a few moments (like one of those Mace Windu moments). This leaves you severely open. If you are being knocked back, that generally means you are losing and need to make distance quickly before your opponent can take advantage of it. If your opponent is being knocked back, that means you need to press the offensive and keep attacking.
What is an overwhelm, you ask? It's the name I've given to a particular tactic in bypassing blocks. While the chart in section two is accurate to block strength, a major issue for someone who is blocking in strong style is the slowness of the style. An overwhelm can occur when a significantly faster style is used (generally fanned) to attack the significantly slower style. While the strong style user will be able to block some of it and, yes, even parry it, if the opponent is given ample time to press the attack, they will be able to break through the block anyway. A great example is strong style verses staff. When a staff fans at a strong style user, even if that user is in the strongest defensive position, the staff will only get blocked once or twice before the overwhelm occurs, and the strong style user gets knocked back. This means that for someone to successfully parry a staff, they would have to get a quick block and parry off and then immediately remove themselves from the area, because of the dangers a staff presents when it comes to overwhelms.
A good note about knockbacks: they do not slow you down. You will move at normal speeds even if you are knocked back.
Speed Reset
One last thing about knockbacks and overwhelms: If you are holding attack during the initial collision, then you can release it after the collision for a free instant-reset. It is just one more reason to always want to hold the attack button during swings.
Lavitz Explanation - A Broad Concept / Real Use Video
Section Five - Wiggling & Spinning
When it comes to blocking, wiggling and spinning have odd distortions on the process. A wiggle causes more passes, which can cause more blocks. This means an increase in blocking and likelihood to block whenever a wiggle is added the the equation. This also means that small wiggles while moving will add to your overall defense, make blocks more likely, and make parries easier to obtain. Spins, on the other hand, are a very difficult thing to judge. Faster spinning means the strikes do not register as well. While this normally is avoided because of the damage reduction one suffers from spinning, and the lack of defense (remember, lack of registry also means lack of blocks and increased ghosting), it works reverse too. At the right speed, a spin can pass through a block and damage an opponent. This is ill-advised however, but it is important to note for those who aim to block someone who often spins. This is, of course, all relative to the server you're on, whether its 1.00 or 1.01, and other variables that naturally affect how spins register.
Section Six - Tactics in Blocking
Something to remember is that underhand strikes, such as AS or SD strikes, are harder to block, just like overheads, generally. But it all depends on the stage of the attack. If you block a swing in stages 3 or 4, it is far easier than stage 4. You also always want to follow the saber, not the person. A skilled blocker can parry a single strike multiple times. Even after a parry, if your saber continues to make contact with the enemy's, you can gain more blocks which allows for more parries. This includes during the knockback phase, which is why removing yourself from the situation is vital if you're against someone skilled in parrying, and why using it to your advantage can be the difference between a victory and a loss.
Also keep in mind, the sabers MUST make contact. Any twisting or turning necessary to cause the sabers to collide should be done to ensure you get a block. Even if you aren't looking for parries, the ends of your swings can often be used to save you from an incoming strike. For example, an SD swing will curve around over your head during the reset stage 8. If you were to turn yourself all the way around so your back is to the opponent, and ensure that the sabers clash when they attack, you will effectively block most, if not all, of the oncoming strike.
Section Seven - Game Versions & Server/Client Settings
The core differences between 1.00 and 1.01 are in the level of connectivity each provides. 1.00 is more likely to ghost than 1.01, which means things like overwhelms become significantly harder, as the 1.01 blocking allows for heavier styles to block lighter styles with ease. While the overall blocking system is unchanged, the stances chart from section two becomes critical, because, where in 1.00 you stand a chance of sliding through a staff's block with medium, or with overwhelming a strong style opponent with fast, it becomes much more difficult to do it in 1.01. This does not mean it cannot be done, it simply means that 1.01's system reacts faster and can pick up the blocking easier. This also means, however, that all blocking attempts will be twice as effective as they would be in 1.00, because the saber collisions are more likely to register.
Please note these differences are not necessarily specific to 1.00 vs 1.01. While server stability over all in the modern version is better, things such as sv_fps can impact the registry of hits to make it connect more or ghost more. On exceptionally low sv_fps, damage wont be dealt correctly, and swings will ghost eachother far more often, making blocking non-viable. On exceptionally high sv_fps, there is a greater chance to overwhelm stronger styles with weaker styles, due to the amount of hits being calculated all at once. This means that something such as fast vs staff would be very different depending on server-side settings (higher sv_fps giving better odds to the fast user). Client-side settings can also directly impact blocking. For example, low cl_maxpackets will reduce an individual's registry, making them ghost more and thereby less likely to be blocked. High cl_maxpackets will create a reversed effect. Generally speaking, staff users will strive for low packets setups so that they can reduce the blocks and prevent being overwhelmed, while still being able to block normally due to the increased block rate from the multisaber. Single saber users would benefit more from higher packets, since it would create more registry and allow for easier block-breaking.
Also good to note, 1.01 lacks sabergun (info on that can be found here) which means the chaotic dual and staff blocking effects will no longer be in play unlike in 1.00, making clean gameplay more feasible with them.
Section Eight - Vector-based Blocking
Now, with all the above in mind, this gets even more complex. See, not only does all that matter, but your actual facing direction matters too. In JKA, when the game attempts to determine your saber's location on the map, it does not do so with 100% accuracy. Depending on your facing direction, it may be more accurate or less accurate, as the server first checks to see if your saber is present within a given range and then determines if a collision takes place. The server frame rate will dramatically impact how accurately the server interprets the location of your saber. As mentioned in the previous section, a higher frame rate gives the server more data to work with when trying to figure out if a collision occurred, and thus provides more accurate and responsive blocking. This has its own drawbacks though. While lower server framerates result in unresponsiveness (less frames to check if sabers have blocked, and therefore things that should block often do not), higher server frame rates allow swings that pass through the saber prediction box, but do not actually collide, to result in unintended additional blocks.
In short, the result is that low sv_fps settings like 20 or 30 do not capture all instances where saber collision actually occurs, meaning there is a "ghosting" effect. In contrast, high sv_fps such as 40 and above have many more frames to register swing collision, which raises the chance for error when the server is trying to determine if a collision occurred, and thus you get strange blocks that happen even though the sabers never actually touched.
Section Nine - More Supporting Evidence and Citations
The primary purpose of this section is just to provide some evidence-based justification for the above as explained. Many people provide "teaching" that has more of a roleplay element to it than actual useful content, and it is my goal to ensure readers that all information provided is rooted strongly in research.
Example 1 - Priority cycle:
The following was taken from a debug log of a single swing. As you can see, the attack strength increases toward the middle of the swing. Now, while this doesn't look to correspond to an increase and fall-off of damage throughout the swing, I would point to the code referenced in section one to be evident that the momentum of the swing alone will also increase damage as well as priority. In other words, this is just the base strength before additional effects are factored.
Do also note that as your in-game character is moving (as is referenced in the offense/defense charts earlier in section two) their priority level will increase as well. While this example only shows a purely stationary swing, a swing where the player is in motion will actually have a higher attack strength value. This also means that lowjumping with a swing will increase priority of that swing due to the additional speed.
Example 2 - Damage Cycle:
The following are examples of damage scaling on 20 sv_fps verses 40 sv_fps, showing how the distribution over time differs but the end result of damage remains stable and similar. Keep in mind that even slight movement will impact these results, and the damages are not always exactly the same in every trial. Both the movement of the mouse (increasing saber momentum) and the movement of the character (additional speed/velocity) will alter the damage value.
Do note that that concentration of damage shifts. The sv_fps 40 damage is drastically more stable and consistent than sv_fps 20, making it more reliable. However, it is worth pointing out that there is almost a 100-point damage difference between the two, favoring sv_fps 40. Keep in mind however, that there are numerous other factors that may be at play which could interfere with testing, so the exact damage may vary.
Questions & Comments are a welcome thing to help improve this more. Blocking is a very complex thing, and any help I can get to improve our knowledge on the topic is great!
So today, ladies and gentlemen, I am going to earn my PhD in JKA Block Techniques. The knowledge here is a compilation of all the greatest block-oriented minds in JKA. I'd cite LemonLime, Bekind, and RedLeader for their previous work on blocks and for teaching me all they knew, and I'd also thank Apocalypse, Bucky, and Dzon for helping with constant tests and updates to this.
Without their contributions, there would still be a lot that has yet to be discovered about how blocking functions within the game.
Section One - The JKA Physics Engine
In Jedi Academy, few may realize it, but there IS a focus on physics. First, lets evaluate the parts of a strike. When you first learn, it's generally like this:
1. Start of strike
2. The Part That Kills You
3. End of strike.
However, in advanced theories of blocking, there are 5 basic stages:
1. Beginning of the strike, where no damage is caused.
2. Still early in, and the start of damage begins, but starts off weak
3. Saber in full swing, this part still kills you.
4. Strike nearing an end, damage decreases
5. The strike resets, during this period people are generally open to be hit, and the saber causes no damage (and/or a single point of it, if any).
Now, in my theory, things stay relatively similar, but I believe this is a more accurate and up to date set of 8 stages:
1. Beginning of strike. No damage, no forward saber motion, saber ghosting*
2. Very early start of motion, parry stage**
3. Very early start of damage
4. Beginning of moderate damages
5. Mid-section. This is the point where the saber is directly in front of you, and deals maximum damage.
6. Slowing of damage, approximately the same as stage #3
7. Near-end of damage (at most, a few points of damage)
8. End of damage, reset phase. Saber does not ghost, and can still block during this phase.
The reason there are so many stages and differences in damage, is because each stage is based on the momentum of the swing. That is, how fast the saber is going at any given point in the swing. However, damage is not the only thing that is affected. Block power is determined by the stage of a strike as well. If two people collide at stage 4, there will just be a heavy block. If person A is in stage 3 and person B is in stage 4, and they collide, person B will either kill or knock back person A. We'll talk about knock backs a little further down.
Now, on top of that, the speed at which the person is moving is also taken into account. If I am running at someone during the swing, the speed I am traveling is added to the momentum of the swing. Note, that when I refer to 'speed' I refer to the rate at which the person is moving, not the saber. When i say momentum, I'm referring to the lightsaber itself. So if I am at walking speed, and my saber is in stage 4, and you are at running speed in the same stage, you have a higher likelihood of breaking through me because you have more total momentum in your swing. If that sounds complicated, it's about to get much worse.
Don't just take my word for it though. Here is a short section of the code and commits:
//This function gets the attack power which is used to decide broken parries,
//knockaways, and numerous other things. It is not directly related to the
//actual amount of damage done, however. -rww
static QINLINE int G_SaberAttackPower(gentity_t *ent, qboolean attacking)
//knockaways, and numerous other things. It is not directly related to the
//actual amount of damage done, however. -rww
static QINLINE int G_SaberAttackPower(gentity_t *ent, qboolean attacking)
if (attacking)
{ //the attacker gets a boost to help penetrate defense.
//General boost up so the individual levels make a bigger difference.
baseLevel *= 2;
baseLevel++;
//Get the "speed" of the swing, roughly, and add more power
//to the attack based on it.
if (ent->client->lastSaberStorageTime >= (level.time-50) &&
ent->client->olderIsValid)
{
vec3_t vSub;
int swingDist;
int toleranceAmt;
//We want different "tolerance" levels for adding in the distance of the last swing
//to the base power level depending on which stance we are using. Otherwise fast
//would have more advantage than it should since the animations are all much faster.
switch (ent->client->ps.fd.saberAnimLevel)
{ //the attacker gets a boost to help penetrate defense.
//General boost up so the individual levels make a bigger difference.
baseLevel *= 2;
baseLevel++;
//Get the "speed" of the swing, roughly, and add more power
//to the attack based on it.
if (ent->client->lastSaberStorageTime >= (level.time-50) &&
ent->client->olderIsValid)
{
vec3_t vSub;
int swingDist;
int toleranceAmt;
//We want different "tolerance" levels for adding in the distance of the last swing
//to the base power level depending on which stance we are using. Otherwise fast
//would have more advantage than it should since the animations are all much faster.
switch (ent->client->ps.fd.saberAnimLevel)
As you can see, this gets rather complicated, but it'll be explained in more detail as we go on.
* Keep in mind, if a saber is ghosting, that means it cannot be blocked, just as it cannot deal damage.
**The parry stage comes very quickly after the very start. If you are in this stage when another saber collides with yours, you will absolutely block them, but more importantly, if you hold attack, you will parry them.
Section Two - Stances & Saber Angles
So, the next thing you have to take into account is the stances. Luckily, these are pretty easy to get down. A simple chart can show how this works.
Strong > Staff > Duals > Medium > Fast
When these clash, the higher up the chart they are, the stronger they are. So, if someone uses medium against a staff, the staff will generally out block them. However, this does not mean that it isn't possible, under certain conditions, to still succeed. You can still use the parry stage of a swing to override this, and if your swing is in a more powerful stage (say, a fast style hit in stage 5 verses a strong style hit in stage 3) you can still overpower the hit.
Another thing to note is the speed chart. This... Is kind of confusing.
Offense Chart:
Running > Walking > Standing > Crouching
Defense Chart:
Crouching > Standing > Walking > Running
To explain, when you are attacking, you want more momentum. When you are defending, you want more stability. The less your saber is flailing about, the more stable you are. You also want angle. Generally, if you want to block while standing or walking, you'll want to be looking down so that it has more of a slope. However, when you're attacking, you want all the power you can gather to break through their blocking. Keep in mind, this only comes into play when we're talking about overwhelming the block power of the opponent, not when we're discussing parries.
You must also keep in mind that this is not a definitive chart. Just the action of running of standing or crouching alone will not give you some increased block power stat. Running and walking do matter to a degree, because the saber gains momentum, however in the case of standing vs crouching it is almost exclusively because the saber angle becomes drastically more likely to result in a block.
Section Three - The Parry
So why do we care about blocking? Well, aside from saving your life, you can also end someone else's. A parry is determined by a number of factors. It is, essentially, adding the momentum of an opponents' swing to your own momentum to create a fast, lethal attack. This means that the more total momentum your opponent's swing has, the more lethal your parry will be. Keep in mind though, the more momentum the opponents swing has, the harder it will be to block, which is increasing the risk of taking damage.
It is also important to note that parries require very, very careful timing. If you strike too soon, you'll mess up the block. Strike too late, and you wont get a parry, just a normal hit. You will know you have a parry because it is significantly faster than a normal strike. Now, here's the complex part... There are two different types of parries.
Standard Parry: A standard parry is when you attack at the very moment the block occurs. While this is harder to accomplish, because it requires timing your strike at the very second the collision happens, it is the fastest and most fatal way to take down an opponent.
Counter Parry: This parry takes place during Stage 2, the parry stage. I call this the parry stage not because it is the only stage you can parry in, but because it is an obscure stage during a swing where landing a hit will force a parry. There is a brief pause between idle time and Stage 2 (that is, Stage 1 where the saber is ghosting) where a parry does not occur. If one attacks at the same time as a block, a standard parry is engaged. If one attacks very slightly late of a block and makes it to Stage 2 as the block occurs, then a counter parry will be engaged. *
Delay parry: A delay parry is any parry that takes place post-block. In other words, if you block, and then immediately attack after, it will be a delay parry. In essence, a delay parry is no different than a standard parry. The only difference is, a delay parry will be (surprise surprise) delayed for a short moment before striking, but like any other delay swing, only this one will move much faster than normal once it occurs, simply because it is a parry.
Reset Parrying: You can also standard parry attacks during the reset of your swing, so long as you still have strikes you can chain. The game interprets the click during the reset as what is normally a delay, however, if it is done at the very moment of a collision, it uses that swing to form a standard parry. However, just like with delays, you need to still have strikes available in your chain to be able to utilize this.
* Note that it is possible that a standard parry and counter parry are identical, and it is merely latency and other client settings that impacts hit timing and produces this effect.
Section Four - Knockbacks & Overwhelms
To begin, I'd like to define "Knockback." A knockback is an indicator of who is winning during a blocking battle. It is, essentially, when the player is stunned and their saber is knocked to the side for a few moments (like one of those Mace Windu moments). This leaves you severely open. If you are being knocked back, that generally means you are losing and need to make distance quickly before your opponent can take advantage of it. If your opponent is being knocked back, that means you need to press the offensive and keep attacking.
What is an overwhelm, you ask? It's the name I've given to a particular tactic in bypassing blocks. While the chart in section two is accurate to block strength, a major issue for someone who is blocking in strong style is the slowness of the style. An overwhelm can occur when a significantly faster style is used (generally fanned) to attack the significantly slower style. While the strong style user will be able to block some of it and, yes, even parry it, if the opponent is given ample time to press the attack, they will be able to break through the block anyway. A great example is strong style verses staff. When a staff fans at a strong style user, even if that user is in the strongest defensive position, the staff will only get blocked once or twice before the overwhelm occurs, and the strong style user gets knocked back. This means that for someone to successfully parry a staff, they would have to get a quick block and parry off and then immediately remove themselves from the area, because of the dangers a staff presents when it comes to overwhelms.
A good note about knockbacks: they do not slow you down. You will move at normal speeds even if you are knocked back.
Speed Reset
One last thing about knockbacks and overwhelms: If you are holding attack during the initial collision, then you can release it after the collision for a free instant-reset. It is just one more reason to always want to hold the attack button during swings.
Lavitz Explanation - A Broad Concept / Real Use Video
Section Five - Wiggling & Spinning
When it comes to blocking, wiggling and spinning have odd distortions on the process. A wiggle causes more passes, which can cause more blocks. This means an increase in blocking and likelihood to block whenever a wiggle is added the the equation. This also means that small wiggles while moving will add to your overall defense, make blocks more likely, and make parries easier to obtain. Spins, on the other hand, are a very difficult thing to judge. Faster spinning means the strikes do not register as well. While this normally is avoided because of the damage reduction one suffers from spinning, and the lack of defense (remember, lack of registry also means lack of blocks and increased ghosting), it works reverse too. At the right speed, a spin can pass through a block and damage an opponent. This is ill-advised however, but it is important to note for those who aim to block someone who often spins. This is, of course, all relative to the server you're on, whether its 1.00 or 1.01, and other variables that naturally affect how spins register.
Section Six - Tactics in Blocking
Something to remember is that underhand strikes, such as AS or SD strikes, are harder to block, just like overheads, generally. But it all depends on the stage of the attack. If you block a swing in stages 3 or 4, it is far easier than stage 4. You also always want to follow the saber, not the person. A skilled blocker can parry a single strike multiple times. Even after a parry, if your saber continues to make contact with the enemy's, you can gain more blocks which allows for more parries. This includes during the knockback phase, which is why removing yourself from the situation is vital if you're against someone skilled in parrying, and why using it to your advantage can be the difference between a victory and a loss.
Also keep in mind, the sabers MUST make contact. Any twisting or turning necessary to cause the sabers to collide should be done to ensure you get a block. Even if you aren't looking for parries, the ends of your swings can often be used to save you from an incoming strike. For example, an SD swing will curve around over your head during the reset stage 8. If you were to turn yourself all the way around so your back is to the opponent, and ensure that the sabers clash when they attack, you will effectively block most, if not all, of the oncoming strike.
Section Seven - Game Versions & Server/Client Settings
The core differences between 1.00 and 1.01 are in the level of connectivity each provides. 1.00 is more likely to ghost than 1.01, which means things like overwhelms become significantly harder, as the 1.01 blocking allows for heavier styles to block lighter styles with ease. While the overall blocking system is unchanged, the stances chart from section two becomes critical, because, where in 1.00 you stand a chance of sliding through a staff's block with medium, or with overwhelming a strong style opponent with fast, it becomes much more difficult to do it in 1.01. This does not mean it cannot be done, it simply means that 1.01's system reacts faster and can pick up the blocking easier. This also means, however, that all blocking attempts will be twice as effective as they would be in 1.00, because the saber collisions are more likely to register.
Please note these differences are not necessarily specific to 1.00 vs 1.01. While server stability over all in the modern version is better, things such as sv_fps can impact the registry of hits to make it connect more or ghost more. On exceptionally low sv_fps, damage wont be dealt correctly, and swings will ghost eachother far more often, making blocking non-viable. On exceptionally high sv_fps, there is a greater chance to overwhelm stronger styles with weaker styles, due to the amount of hits being calculated all at once. This means that something such as fast vs staff would be very different depending on server-side settings (higher sv_fps giving better odds to the fast user). Client-side settings can also directly impact blocking. For example, low cl_maxpackets will reduce an individual's registry, making them ghost more and thereby less likely to be blocked. High cl_maxpackets will create a reversed effect. Generally speaking, staff users will strive for low packets setups so that they can reduce the blocks and prevent being overwhelmed, while still being able to block normally due to the increased block rate from the multisaber. Single saber users would benefit more from higher packets, since it would create more registry and allow for easier block-breaking.
Also good to note, 1.01 lacks sabergun (info on that can be found here) which means the chaotic dual and staff blocking effects will no longer be in play unlike in 1.00, making clean gameplay more feasible with them.
Section Eight - Vector-based Blocking
Now, with all the above in mind, this gets even more complex. See, not only does all that matter, but your actual facing direction matters too. In JKA, when the game attempts to determine your saber's location on the map, it does not do so with 100% accuracy. Depending on your facing direction, it may be more accurate or less accurate, as the server first checks to see if your saber is present within a given range and then determines if a collision takes place. The server frame rate will dramatically impact how accurately the server interprets the location of your saber. As mentioned in the previous section, a higher frame rate gives the server more data to work with when trying to figure out if a collision occurred, and thus provides more accurate and responsive blocking. This has its own drawbacks though. While lower server framerates result in unresponsiveness (less frames to check if sabers have blocked, and therefore things that should block often do not), higher server frame rates allow swings that pass through the saber prediction box, but do not actually collide, to result in unintended additional blocks.
In short, the result is that low sv_fps settings like 20 or 30 do not capture all instances where saber collision actually occurs, meaning there is a "ghosting" effect. In contrast, high sv_fps such as 40 and above have many more frames to register swing collision, which raises the chance for error when the server is trying to determine if a collision occurred, and thus you get strange blocks that happen even though the sabers never actually touched.
Section Nine - More Supporting Evidence and Citations
The primary purpose of this section is just to provide some evidence-based justification for the above as explained. Many people provide "teaching" that has more of a roleplay element to it than actual useful content, and it is my goal to ensure readers that all information provided is rooted strongly in research.
Example 1 - Priority cycle:
The following was taken from a debug log of a single swing. As you can see, the attack strength increases toward the middle of the swing. Now, while this doesn't look to correspond to an increase and fall-off of damage throughout the swing, I would point to the code referenced in section one to be evident that the momentum of the swing alone will also increase damage as well as priority. In other words, this is just the base strength before additional effects are factored.
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 7
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Client 1: ATT STR: 6
Example 2 - Damage Cycle:
The following are examples of damage scaling on 20 sv_fps verses 40 sv_fps, showing how the distribution over time differs but the end result of damage remains stable and similar. Keep in mind that even slight movement will impact these results, and the damages are not always exactly the same in every trial. Both the movement of the mouse (increasing saber momentum) and the movement of the character (additional speed/velocity) will alter the damage value.
SV_FPS 20, Right (D) Swing
>>>>
CL 0 SABER DMG: 7
CL 0 SABER DMG: 5
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 11
CL 0 SABER DMG: 13
CL 0 SABER DMG: 5
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 11
CL 0 SABER DMG: 13
CL 0 SABER DMG: 3
CL 0 SABER DMG: 3
CL 0 SABER DMG: 3
CL 0 SABER DMG: 3
CL 0 SABER DMG: 3
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 8
CL 0 SABER DMG: 11
CL 0 SABER DMG: 14
CL 0 SABER DMG: 17
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 10
CL 0 SABER DMG: 13
CL 0 SABER DMG: 15
CL 0 SABER DMG: 18
CL 0 SABER DMG: 4
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 10
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 11
CL 0 SABER DMG: 14
CL 0 SABER DMG: 16
CL 0 SABER DMG: 19
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 10
CL 0 SABER DMG: 11
CL 0 SABER DMG: 12
Total Damage: 410
>>>>
CL 0 SABER DMG: 7
CL 0 SABER DMG: 5
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 11
CL 0 SABER DMG: 13
CL 0 SABER DMG: 5
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 11
CL 0 SABER DMG: 13
CL 0 SABER DMG: 3
CL 0 SABER DMG: 3
CL 0 SABER DMG: 3
CL 0 SABER DMG: 3
CL 0 SABER DMG: 3
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 8
CL 0 SABER DMG: 11
CL 0 SABER DMG: 14
CL 0 SABER DMG: 17
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 10
CL 0 SABER DMG: 13
CL 0 SABER DMG: 15
CL 0 SABER DMG: 18
CL 0 SABER DMG: 4
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 10
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 11
CL 0 SABER DMG: 14
CL 0 SABER DMG: 16
CL 0 SABER DMG: 19
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 10
CL 0 SABER DMG: 11
CL 0 SABER DMG: 12
Total Damage: 410
SV_FPS 40, Right (D) Swing.
>>>
CL 0 SABER DMG: 7
CL 0 SABER DMG: 5
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 12
CL 0 SABER DMG: 14
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 8
CL 0 SABER DMG: 9
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 3
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 2
CL 0 SABER DMG: 4
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 11
CL 0 SABER DMG: 3
CL 0 SABER DMG: 5
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 10
CL 0 SABER DMG: 12
CL 0 SABER DMG: 4
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 12
CL 0 SABER DMG: 14
CL 0 SABER DMG: 16
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 10
CL 0 SABER DMG: 3
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 9
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 6
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 6
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 7
CL 0 SABER DMG: 4
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
Total Damage: 509
>>>
CL 0 SABER DMG: 7
CL 0 SABER DMG: 5
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 12
CL 0 SABER DMG: 14
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 8
CL 0 SABER DMG: 9
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 3
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 2
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 2
CL 0 SABER DMG: 4
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 11
CL 0 SABER DMG: 3
CL 0 SABER DMG: 5
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 10
CL 0 SABER DMG: 12
CL 0 SABER DMG: 4
CL 0 SABER DMG: 7
CL 0 SABER DMG: 9
CL 0 SABER DMG: 12
CL 0 SABER DMG: 14
CL 0 SABER DMG: 16
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 10
CL 0 SABER DMG: 3
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 8
CL 0 SABER DMG: 9
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 6
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 6
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 3
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
CL 0 SABER DMG: 7
CL 0 SABER DMG: 4
CL 0 SABER DMG: 4
CL 0 SABER DMG: 5
CL 0 SABER DMG: 6
CL 0 SABER DMG: 6
CL 0 SABER DMG: 7
Total Damage: 509
Do note that that concentration of damage shifts. The sv_fps 40 damage is drastically more stable and consistent than sv_fps 20, making it more reliable. However, it is worth pointing out that there is almost a 100-point damage difference between the two, favoring sv_fps 40. Keep in mind however, that there are numerous other factors that may be at play which could interfere with testing, so the exact damage may vary.
Questions & Comments are a welcome thing to help improve this more. Blocking is a very complex thing, and any help I can get to improve our knowledge on the topic is great!