Tree of Savior Forum

I checked my GPU load during terrible city framerate loss. Here's what I discovered

Not the 32%, but the total system CPU should go up all the way to 100% as the application asks for more calculations; which it doesn’t (was at 48% in my example).
My GPU was having a walk in the park too, at 35%.

In other words, the FPS drops aren’t caused by a lack of resources. The game might be waiting for something to happen before piping the next frame. Maybe some network response? Not sure.

1 Like

Question: You must have some kind of integrated graphics that you’re using then? Can you tell me what Intel integrated graphics it is? Perhaps something from the Intel HD3000 line?

The i5-6500 has the Intel HD Graphics 530. It’s WAY stronger than the 3000.

1 Like

So did the FPS not drop nearly as much when you limited cores in a crowded town?

15fps in Fedimian CH1 with both 2 and 4 cores, 10fps with 1 core.

Same 15fps if I set the task priority to realtime, so it’s not the OS not attributing enough resources to the process.

1 Like

Okay this is really interesting!!! You had a 25 FPS drop when you were in the field and you restricted to 1 core! But in the town you only had a 5 FPS drop when you restricted down to 1 core!

So basically there’s something blocking frame generation that’s related to either something in town or more players. My money is on more players.

EDIT: Another way to put it is that CPU cycles are even less important in crowded/town settings. This is highly suggestive of the CPU waiting for something to happen. Hence “blocking”.


I had water in my screen in the dungeon settings.
Maybe the water is rendered in the CPU (which is REALLY stupid)…

1 Like

Hmm… try the test on a map without water then… but I highly highly doubt that water is being rendered on the CPU. That’s just… well yeah…

Retesting where I am right now (Zeraha, right on the warp with Seir Rainforest; no other players or mobs)

4 cores: 60fps
1 core: 60fps; some drops to 56-ish

Having two to three on-screen mobs doesn’t change anything.

My first tests (the 35fps ones in the dungeon) had 4 other players, but no effects being rendered)

1 Like

I’m starting to think this frame drop is dependent on number of other players around you. So then it’s either something related to rendering those other players or networking…

EDIT: What if they didn’t implement asynchronous I/O with their netcode?

well currently I’m not sure why my fps drop, but I noticed a big drop when gold seller spam in chat. I’m running a Titan X… so hell for a game like this, I’m pretty sure my GPU is overkill at this point.

Hi. Went to Klaipeda ch1 and stood near the statue. No noticeable difference whether I limit the cores. Going from 15-21 fps if standing, I move it can dip to around 12 fps, but if I go to the right side where there are no players and stood there, I get around 41fps.

I did test both showing character names and turning it off, no noticeable difference.

This was done on low mode. I tried enabling all graphic settings like bloom etc, I get 14-18 fps on average standing near the statue and 30 fps on the area to the right where there are no players or npcs.

1 Like

I just found this article and I recall that ToS is using TCP:

https://www.roguevector.com/the-ios-of-game-netcode-4-blocking-and-non-blocking-sockets/

So I’m going to make a bit of a leap and say all the FPS issues are likely due to the TCP protocol this game is using! Those TCP sockets will block the thread that they occur in! And a blocked thread consumes no CPU cycles!

Hypothesis: Those idiots somehow have either their main game thread or graphics thread (maybe both?) at the mercy of their ■■■■■■■ TCP socket(s)!

2 Likes

Have you guys tried turning UI off?

Even crowded cities get decent framerate for me with UI off.

It’s the second korean title that i play where UI is a performance nightmare.(if anyone know Mabinogi Heroes,aka Vindictus,they did an UI revamp that solved a lot of fps drops)

It’s a game where UDP would not work, though.

Having the TCP thread separated from the other ones would cause a code nightmare too, as rendering is network-dependant (character positions etc).

But the framelate lag occurs even in non-city areas (example: guild battles, world boss battles)

The only reasonable commonality I can think of between guild battles, world boss battles, and towns are massive numbers players.

Well first off, is my hypothesis that the netcode at least is the most likely culprit of the frame drops something we can agree on? We should be able to agree that performance is likely not rate limited by GPU or CPU right?

EDIT: Maybe they’re using a TCP implementation with Nagle enabled? It’s a pretty noob move, but I wouldn’t put it past them at this point >_>

Limiting CPU or GPU usage would be beyond bad coding; it’d be a ■■■■ move.

Pretty sure it’s the netcode, yeah, but implementing Nagle’s is something game devs usually don’t do, especially when it’s not your first online game (IMC Korea is Granado Espada’s dev as well).

1 Like

Well… something is seriously wrong with their TCP implementation. The fact that people have reported massive framedrops from huge shout spam messages further supports that hypothesis because you usually want your chat system to be TCP based because you want messages to be in order…

The problem is that ToS may be a bit too fast paced for TCP (and the penalty for a dropped packet in TCP is extreme). The ideal solution is probably a hybrid of TCP for messages and UDP for movement/actions…

I found this interesting empirical study showing why TCP really sucks…: http://www.iis.sinica.edu.tw/~swc/pub/tcp_mmorpg.html

But basically this thread has been incredibly useful and I thank you @Maavy for bearing with me! This is kind of bad news though… guild wars, world boss battles, and towns will basically suck until imc decides to rewrite or make revisions to their netcode :frowning:

Thanks for the information!!

When you stand near the statue (and get 14-18 fps) how many players would you say are around you?

Also when you move to an area where there are no players or npcs are they completely off the screen (i.e. not visible)?