Tree of Savior Forum

Tree of Savior's Netcode and Client - Working against the players

I am sure everyone in the game has, at some point, been inconvenienced by this game’s awful netcode. The symptoms of it are:

  1. Using a skill, get stuck on animation, and the skill wasn’t actually released;
  2. Attacking a monster, get the hit animation, but no damage comes out. The monster was in front of you on your client, but server-side he was standing somewhere else;
  3. You knockback/knockdown someone. Instead of falling on their asses, they they run off in a random direction and walk back. By the time they did this motion, they’re already on their feet and away from you;
  4. A party member is invisible. His character got stuck somewhere in the map client-side for you, when in reality he’s still following the group. You see him attack and use skills, but no sprite is visible;
  5. In PvP, you’re being attacked by someone invisible. This is the same as above, they got stuck in one of the walls on your client, but in reality they’re chasing you and attacking and you cannot see them or fight back;

Above is a video where this happens quite a few times. Perhaps because that player’s ping was high, but he desync positions on my screen several times. If you ever see a Swordsman attacking thin air, this is what’s actually happening.

This problem is tied to the game’s netcode. Like all kMMOs, everything is optimized for people playing within Korea. It was made expecting players to have 20 ping or less. If you’ve ever watched a kTOS video, you’ve probably seen how much faster koreans are able to spam skills, use buffs, and even do auto-attacks. That, too, is because of the ping.

I doubt this will ever be fixed or improved in any way, but we CAN improve the way the Client handles information. The desyncs happen and it cannot be avoided, but the reason the client STAYS desynced entirely client-sided, and could be fixed, in order to mitigate most of the issues I listed.

How it works

A desync happens when there’s a conflict between where a player is standing. Server-side(which is what matters), the player is standing in one place, but on your screen(Client-side), the player is somewhere else. You see this quite a few times on my video: I knockdown the player, and he really was knocked down server-side, but his sprite on my screen keeps moving in whichever direction he intended to head.

This is here things get stupid. It takes a couple instants, but the client actually realizes this mistake. In most games, what usually happens is that the game client will instantly move him from his current positions(which is the incorrect one), straight to his actual correct position on the server-side of things. Instead, Tree of Savior’s client is DUMB AND STUPID, and makes him WALK BACK THE PATH BETWEEN HIS INCORRECT AND CORRECT LOCATIONS. That’s right, instead of fixing the issue as fast as possible, the desynced character manually walks back. This is the reason why, in Team Battle League, you see people walk into walls but attacking you from afar. Your client is trying to fix the desync, but because it tries to do this by manually walking the desynced character, it can never fix the problem.

The solution: Fix this awful design and teach the client that, when it detects a desync between client and server -side, it should instantly snap the character back to the correct position, instead of trying to pretend it never happened.

@STAFF_Max @STAFF_John @STAFF_Ethan @STAFF_Amy @STAFF_Ines

30 Likes

This post was flagged by the community and is temporarily hidden.

this is what they do with the exploiters and hook64

7 Likes

i thought everyone’s internet is more than good enough to handle this game

huehue

Someone actually posts a good thread.

First 3 responses are complete shitposting.

@thread
Your vid is a great example on how screwed melee classes are by practically everything the game throws at you.Don’t forget mounted classes aswell,these cause crazy desync with single target skills.

5 Likes

The thing that screw me up the most is when you cast a skill, nothing come out and you stand there for a good 3 seconds, can’t do anything, while others can still kill you. Of course it is more serious as a melee, but anyone would suffer the same thing.

4 Likes

sound like u dont get the reference.

korea has one of the BEST internet in the world. So their developer almost never bother with any good netcode, because their game always work great in korea. (and they are completely oblivious that other part of the world dont have such good internet infrastructure)

next time u hear about a korea online game, expect shitty netcode.

4 Likes

As much as we all want the game to improve it won’t happen due to IMC listening to us(iToS) unless… someone with good coding skills has enough boredom and time to get the game’s infrastructure and netcode rewrite it and send it off to IMC.

But heck, if they can already do such they’d better of open their own p.server, I’m sure that place will be more populated than this graveyard we call a game.

4 Likes

even that wont work.

the developer have to know enough to implement the code. Or they have to fly that guy over and sit down for several months to implement it (and they have to get rid of their korean internet)

and also game like this… u have to plan the netcode from the ground up at the start of the development.

if they want to fix netcode now, they literally have to redo probably more than 70% of the engine’s code.

unfortunately, this game’s netcode will never be fixed. u have more chance of ur own country’s network infrastructure upgrading to korean level than imc fixing this.

(korean programmer that know how to do proper netcode probably all retired by now lol)

White knights be like… Oh dont listen to this sh*t, the game is fine, we give more money to IMC plox

I’ve got it, i’ve played my share of shitty “net coded” korean games(Nexon is the devil i tell ya).

I’m just tired from the same people spamming useless ■■■■ daily, so my tolerance is at a new low. Your subsequent posts proved me wrong about judging your first one.

Also it’s just sad that when SIlute was in actual SA, and during the brief momments it worked fine, we had similar “game quality” to korean, skills were really fast and responsive compared to the actual ■■■■ we’ve got now.

People from NA are going to SIlute so they can destroy the SA ones throug latency alone.

This post was flagged by the community and is temporarily hidden.

Thank you very much for explaining this to the and devs and I hope they take notice of this serious issue.

hydrarium-member detected

I have been experiencing the animation stuck especially when I tried using skills that require channeling (Earth Wave, Doom Spike, Rush). It happens pretty often especially at PvP GvG.

I’ve seen ktos videos where their players get stuck in animation too.

2 Likes

are you trying to be @siete ?

2 Likes

Experienced this problem A LOT. Lost some glorious matches because of it. Really sad.

This desyncronisation problem got doubled when we need to use steam as a medium to connect tos.

Sometimes steam can go dumb and suddenly disconnect me from tos. Even state unable to retrieve connection from steam while i can load youtube in 720p

When i sent imc a support ticket, imc push blame to steam. Fine, so i sent agn to steam this time. Then, steam slap FAQ to my face

1 Like

I actually know who LoliPantsu is in game, he’s a good guy.
But well, we’re all suffering from the same thing Loli mentioned.