Sign Up

Just Guarding and Latency

Anything Onigiri related!

Just Guarding and Latency

Postby Yvona » 02 Nov 2015, 12:34

Yes, the one thing everyone has notice, especially recently, is just guarding lag. Sometimes it's easy, sometimes it's not. Everyone knows having latency makes just guarding a nightmare, but how does the server handle it? The below is just from our own experiment and sniffing, the actual server results rests in CS's hands.

Well my friend decided to do some sniffing with the packets and dig into the client to find some interesting info. Now for the basics:

Basics
1. Your character running and basic attack/guard is actually done by the client! Yes, all that running around you do is client sided. Every one second or 1000, you actually update your position to the server and the server holds that up. This is also why when you're lagging or disconnecting, you can still run around except when doing specific things like opening the menu or using skills.
2. The MONSTER attack pattern is done client sided. What it means is that the server sends the attack and animation packet and it'll perform the whole thing. This is why when you suddenly lag or dc, the monster finishes its ATTACK animation instead of stopping midway because it's done by the client.
In this sense, you just guarding an attack is actually done by the client too! So even if you lag, if you guard during the proper attack of the animation, you'll send the correct timing to the server (though the just guard animation won't play without the server sending a success back). Basically your client says you guarded at the right animation to the server and the server verifies it.

Wait, doesn't that mean that it makes just attack even easier?!

Well, we'll explain Cyberstep or we shall now call Cybertroll from hereon now, why the server is a sadist.

First off, remember basic #1? Yes, it means your position is updated every second, meaning that if you lag really really behind, the game actually records your "actual" position to be further back where you used to be than where you are "client sided". This determines when if you get attacked or your attack lands.

So that means when you run away and make a proper position to "just guard" the fireballs in a row, the server may think you may be closer to the guard and register it as an attack, which is why sometimes the fireball "Explodes" prematurely before it even reaches you.

Now, for the #2 basic. Your client sends that you guarded at xx time during xx attack, and it pretty much registers as a "success". The server goes "hey pretty cool" and sends it back the just guard animation and the OK.

What happens when you lag? If #1's position problem didn't screw you over, #2 will. What #2 will do is that when you send that you just guarded it, the server will take that info... and toss it away if you lag.

Yes, server's timing and dictates if you just guarded properly. In fact, when it sends a monster attack packet, it also keeps track of the "timing frame" on the server side to determine if the success of just guarding works.

Which means, if the client's packet for just guarding comes after the predetermined time the server judges it takes to just guard it, it discards the information and register it as the enemy's successful attack.

Yes, even if you just guard perfectly client wise, if it takes too long for the server to actually say it's "good", it gets ignored. Cybertroll at its finest.

Why did they do it this way? Most likely they wanted it for a security reasons, in order to ensure that even if you mod the client to keep telling the server you guarded everything (anyone in the field will know that if you let the client do most of the work, it can be exploited), but they want to run it as "server as king", in other words, monsters have inherent advantage that if two conflicting information arrived, the server defaults that monster attack was a success instead of resolving itself why a JG packet came in late.

Short Story: Cybertroll ruins your day. Unless you have a good connection to the server, we will never be able to do what JP does.
Last edited by Yvona on 02 Nov 2015, 13:05, edited 1 time in total.
Yvona
 
Posts: 80
Joined: 08 Dec 2014, 21:11

Re: Just Guarding and Latency: Screw the rules, I say no!

Postby Ryxa » 02 Nov 2015, 12:38

I'm pretty sure anyone with a basic understanding of how networking works could have figured this out stuff works without messing with packets and potentially flagging yourself for a ban. =x
Last edited by Ryxa on 02 Nov 2015, 12:45, edited 1 time in total.
Ryxa|Lvl:115|Wiki Admin (Inactive now)|http://onigiri.wikia.com/wiki/Onigiri_Wiki
-----
You can contact me here: https://discord.gg/DQrykRW
-----
Playing Closers. Quit Onigiri. Feel free to PM, though I 99% won't check.
User avatar
Ryxa
 
Posts: 565
Joined: 05 Jun 2014, 02:12
Location: Somewhere in the middle of nowhere

Re: Just Guarding and Latency: Screw the rules, I say no!

Postby SupremeTentacle » 02 Nov 2015, 12:41

Based on certain uh... methods that should not really be discussed anywhere with a record, I can conclude that your status is updated far more than once per second. If you don't believe me, try tracking your computer's outgoing and incoming internet packets while the game is up.

The monster's attacks are actually server sided. It simply plays the full animation on your end, which gives it the appearance of being client sided.

All damage done to the player is server sided, and unfortunately, this means Just-guarding is server sided as well.

However, you only see attacks once the server sends these to you, but you have to guard with server-sided timing.

The way I see it, the server does not toss away any information, it simply registers your actions late.

The only way to fix this would be to calculate the damage taken on the player's end as opposed to the server's end. The problem here is that this would leave the game more open to hackers, as it's really easy to make a client sided hack that the server would not be able to pick up.
Selling all of my gear for ~40% of its market value!
~4 lv. 108 to 115 weapons remaining
Some skill card 7's, ougi, orna'd maga and other stuff too!
User avatar
SupremeTentacle
 
Posts: 1446
Joined: 04 Jun 2014, 11:30
Location: North South Canada

Re: Just Guarding and Latency: Screw the rules, I say no!

Postby Yvona » 02 Nov 2015, 13:07

SupremeTentacle wrote:Based on certain uh... methods that should not really be discussed anywhere with a record, I can conclude that your status is updated far more than once per second. If you don't believe me, try tracking your computer's outgoing and incoming internet packets while the game is up.

The monster's attacks are actually server sided. It simply plays the full animation on your end, which gives it the appearance of being client sided.

All damage done to the player is server sided, and unfortunately, this means Just-guarding is server sided as well.

However, you only see attacks once the server sends these to you, but you have to guard with server-sided timing.

The way I see it, the server does not toss away any information, it simply registers your actions late.

The only way to fix this would be to calculate the damage taken on the player's end as opposed to the server's end. The problem here is that this would leave the game more open to hackers, as it's really easy to make a client sided hack that the server would not be able to pick up.

Thanks for clarifying and ya... Client side does have its own risks like in other games
Yvona
 
Posts: 80
Joined: 08 Dec 2014, 21:11

Re: Just Guarding and Latency

Postby Jakiro » 05 Nov 2015, 21:25

20 Ping, still dies 8-) WITH STYLE!
Back for now... Getting back up to speed with this Garg stuffs.
Also taking the liberty to spam knowledge into the forums.

Yosh!tsune [Lvl 115 Swords] ~ May come back one day...
___________ [Lvl 115 Swords] ~ Not telling you the username
Jakiro
 
Posts: 185
Joined: 15 Aug 2015, 14:10


Return to General Discussion

Who is online

Users browsing this forum: No registered users and 34 guests