How hard can it be for someone to learn the difference between a FPS drop and lag? He is having FPS drops due to many effects/calculations being made on CPU/GPU, hence he wrote his CPU and not his internet connection/modem. He is not getting disconnects just because a random guy discharged 40 monsters in a single shot.
People get FPS drops because PoE is single threaded and a single thread cannot do more cycles than physical CPU architecture allows it to. The game is not optimized at some parts so easy stuff could be very hard for CPU to handle. For example; consider this example as it can be applied to burning ground effect:
Create a 500px/500px wide red square on the screen.
If you do it with a fast algorithm, you cause almost no FPS drops.
If you do it like this though;
Set $i to 0
Place cursor on $i pixel on Y axis.
Create a 1px/1px red dot.
Make 500 copies of this red dot.
Place each red dot 1px right of the previous one.
Increase $i by 1
If $i equals 500, stop. Otherwise, repeat this.
The end user will see a 500x500 red square regardless, but you will cause alot of FPS drops because you wrote some crazy code with loads of time complexity. You will loop the same thing 500 * 500 times. You will create 250000 1x1 red dots which will take alot of memory. Your CPU and GPU will cry and users will beg for optimization.
This is exactly why stuff like burning ground causes major FPS drops. There are some unoptimized stuff going on. You see a basic, small flame effect on the ground, but the core generating is extremely crazy. To solve it, A GGG employee has to dig it and do something like this:
Make 500 copies of this red dot.
"- Hmm, why do we make 500 copies of this dot? Let's just use the same each time."
Yay, memory consumption decreased and FPS increased.
"- Hmm, the whole thing iterates 500 times... what if increase size of dots to 5px and decrease iteration count to 100?"
Yay, memory consumption decreased and FPS increased.
"- Hmm, 'Create a 5px/5px red dot' command runs 100 times because it is in the loop. What if we generate the red dot only once at the start and keep using it?"
Create a 5px/5px red dot and call it as "Sam".
Set $i to 0
Place cursor on $i pixel on Y axis.
Place Sam 100 times next to eachother
Yay, complexity decreased, memory consumption decreased and FPS increased.
"Hmm, we do this for every single burning ground effect on the map. What if we use the exact same ground effect on all places?" (Note: This would cause smoke effect on top of burning grounds to be exactly the same as others at any given time, because calculation would be made only once and not seperate for each burning ground effect on the camera)
Yay, FPS increased.
I tried to simplify it as much as I can but this is exactly how you optimize a game. This is why some extremely good looking games can be played at stable 60 FPS but PoE fails to keep 60 FPS if there is a tiny ground effect on the screen because other games are like:
Optimized game's developer: "Place this ground effect here and start the animation."
CPU:
- Placed the ground effect!
- Started the animation.
- All done, sir!
PoE is like...
Chris Wilson: "Place this ground effect here and start the animation."
CPU:
- .............................. Placed the ground effect!
- ............Started the animation.
- All done, sir!
- Animation is running because I need to generate a 1px smoke effect on top.
- Animation is running because I need to generate another 1px smoke effect. WTF?
- The first pixel should be 1px higher now. Let's move it!
- Second pixel should also be 1px higher now. Wow... let's do it too.
- WHAT? You want me to create another pixel? WOW. OK, Done.
- ...Player almost went to the Map boss but I'm still generating smoke pixels at the TP? ...Really?