Unnecessary network traffic as potential source of lag in Haven #5994

Open
opened 2024-01-15 23:46:59 +00:00 by whosit · 31 comments
Member

Many people are having problems when spawning at Haven. Some mobile devices timeout. Some player's desktops "can't handle it" too.

Sometimes I have similar problems while on a laptop + wifi connection: Haven mapblocks load slowly, opening chests on my plot takes 20+ seconds, harvesting crops in my basement with a scythe makes them stick around for a while, etc.

One strange thing I noticed while comparing lag on my wired PC VS a laptop on wifi: chat messages sent from the laptop would instantly appear on the desktop, but echo message (basically showing what I sent in chat) - would appear many seconds later.
Maybe this suggests that router (or something?) gets overloaded with incoming packets?

I filtered minetest traffic with wireshark and here's the plot:
session_one.png

Seems like there may be some spammy mods working at spam. Trying to look into dumps, I often see strings:

  • !abritorch_spark.png^[multiply:red (torches near arena?)
  • yl_speak_up_mask_cape.png^[combine:32x64:56,20=blank.png ... there's a giant string
  • petz_sleep_particle.png
  • nether_particle.png^[colorize:#800080:alpha
  • The large increase in traffic at the end seems to contain stuff related to miocenes.

The giant spikes are "signs updates". They happen all at once and send massive texture combinations for each letter of the text. They come all at once in groups of 500-600 packets (see numbers "200/675" etc) :

Screenshot 2024-01-16 024122.png

To try this out yourself, install wireshark, then get minetest.lua from minetest sources, put it into C:\Program Files\Wireshark\plugins, and press ctrl+shift+L to reload the plugins.
You can see your graph in statistics/IO Graphs. To filter minetest-specific packets enter (minetest) && !(minetest.control.type == 0) into the filter field.
I won't go into further detail how to use wireshark, but if anyone needs more instructions, I may expand this.

Also note that the graph is bytes/second, but if I set it to packets/second the shape stays the same - basically, packets are generally small, but the quantity differs.

Many people are having problems when spawning at Haven. Some mobile devices timeout. Some player's desktops "can't handle it" too. Sometimes I have similar problems while on a laptop + wifi connection: Haven mapblocks load slowly, opening chests on my plot takes 20+ seconds, harvesting crops in my basement with a scythe makes them stick around for a while, etc. One strange thing I noticed while comparing lag on my wired PC VS a laptop on wifi: chat messages sent from the laptop would instantly appear on the desktop, but echo message (basically showing what I sent in chat) - would appear many seconds later. Maybe this suggests that router (or something?) gets overloaded with incoming packets? I filtered minetest traffic with wireshark and here's the plot: ![session_one.png](/attachments/8ca2f738-3f76-4593-a02d-d80067afc7ba) Seems like there may be some spammy mods working at spam. Trying to look into dumps, I often see strings: - `!abritorch_spark.png^[multiply:red` (torches near arena?) - `yl_speak_up_mask_cape.png^[combine:32x64:56,20=blank.png` ... there's a giant string - `petz_sleep_particle.png` - `nether_particle.png^[colorize:#800080:alpha` - The large increase in traffic at the end seems to contain stuff related to miocenes. The giant spikes are "signs updates". They happen all at once and send massive texture combinations for each letter of the text. They come all at once in groups of 500-600 packets (see numbers "200/675" etc) : ![Screenshot 2024-01-16 024122.png](/attachments/3d8d49c2-fddd-42f1-923c-4ef09bd5d0ff) To try this out yourself, install wireshark, then get [minetest.lua](https://github.com/minetest/minetest/blob/master/util/wireshark/minetest.lua) from minetest sources, put it into `C:\Program Files\Wireshark\plugins`, and press `ctrl+shift+L` to reload the plugins. You can see your graph in `statistics/IO Graphs`. To filter minetest-specific packets enter `(minetest) && !(minetest.control.type == 0)` into the filter field. I won't go into further detail how to use wireshark, but if anyone needs more instructions, I may expand this. Also note that the graph is `bytes/second`, but if I set it to `packets/second` the shape stays the same - basically, packets are generally small, but the quantity differs.
whosit added the
3. source/lag
label 2024-01-15 23:47:18 +00:00

Lag in Haven has been one of the biggest issues I've had while playing on the server, and I swear there was already a bug report about this very issue.
A lot of people I remember chalked it up to the plots in Haven having tons and tons of signs.

Lag in Haven has been one of the biggest issues I've had while playing on the server, and I swear there was already a bug report about this very issue. A lot of people I remember chalked it up to the plots in Haven having tons and tons of signs.
Member

i've run similar analysis before. yes. signs, itemframes, and smartshops are the biggest contributors to this. i'm pretty sure we've already got an open issue.

i've run similar analysis before. yes. signs, itemframes, and smartshops are the biggest contributors to this. i'm pretty sure we've already got an open issue.
Author
Member

Sorry, I was sure there must be an open issue, but decided to dump this here before I forgot :p

Sorry, I was sure there must be an open issue, but decided to dump this here before I forgot :p
Author
Member

Seems like abritorch_spark.png spam comes from doing minetest.add_particlespawner inside of ABM with 1 second intervals...
This is probably bad? Spamming particle generators for every torch every second?

(just go look at how many torches there are at the arena)

Seems like `abritorch_spark.png` spam comes from doing `minetest.add_particlespawner` inside of ABM with 1 second intervals... This is probably bad? Spamming particle generators for every torch every second? (just go look at how many torches there are at the arena)
Author
Member

Also my attempt at reducing signs load on the client (cpu/network vs memory tradeoff):
https://gitea.your-land.de/whosit/waypoint_compass/wiki/Haven-texture-caching

Also my attempt at reducing signs load on the client (cpu/network vs memory tradeoff): https://gitea.your-land.de/whosit/waypoint_compass/wiki/Haven-texture-caching
Author
Member

Found the original issue:
#5234

Found the original issue: https://gitea.your-land.de/your-land/bugtracker/issues/5234

Seems like there may be some spammy mods working at spam. Trying to look into dumps, I often see strings: .....

In your next wireshark session keep an eye on the "leads" mod 😉
Has been a while and I hope they reduced it but was also pretty spammy in my last session 😆

> Seems like there may be some spammy mods working at spam. Trying to look into dumps, I often see strings: ..... In your next wireshark session keep an eye on the "leads" mod 😉 Has been a while and I hope they reduced it but was also pretty spammy in my last session 😆
Author
Member

I wonder how MT decides to send updates about entities?

Why NPCs update textures constantly? Ok, NPCs are "animated" - they rotate and stuff, maybe bones can rotate. But why texture names get sent constantly?

Constant updates would need to be sent for leads attached to mobs (this is where SSCSM would save the day), but do static leads also spam?

I wonder how MT decides to send updates about entities? Why NPCs update textures constantly? Ok, NPCs are "animated" - they rotate and stuff, maybe bones can rotate. But why texture names get sent constantly? Constant updates would need to be sent for leads attached to mobs (this is where SSCSM would save the day), but do static leads also spam?

Constant updates would need to be sent for leads attached to mobs (this is where SSCSM would save the day), but do static leads also spam?

Just looked it up that was back in November.
Sure if they are attached to something moving they need to update but back then I got 13 ACTIVE_OBJECT_MESSAGES per second for one lead between 2 fence posts in a simple MTG+leads test world.

> Constant updates would need to be sent for leads attached to mobs (this is where SSCSM would save the day), but do static leads also spam? Just looked it up that was back in November. Sure if they are attached to something moving they need to update but back then I got 13 ACTIVE_OBJECT_MESSAGES per second for one lead between 2 fence posts in a simple MTG+leads test world.
Author
Member

After a quick glance through code, seems like leads just don't care if both attached objects are static and always update their pos?
89322baf5c/leads.lua (L91)

After a quick glance through code, seems like leads just don't care if both attached objects are static and always update their pos? https://gitea.your-land.de/your-land/leads/src/commit/89322baf5c6c6a564bdc7454b0f5dd31b6812deb/leads.lua#L91

between the two issues, do we use this issue and close the other one, keep both open, or close this issue and move to the other one?

between the two issues, do we use this issue and close the other one, keep both open, or close this issue and move to the other one?
Author
Member

between the two issues, do we use this issue and close the other one, keep both open, or close this issue and move to the other one?

I was thinking maybe this one could be purely about network issues and other one could be general (since there's a different issue of FPS lag too).

But I'm ok with whatever other staff members decide.

> between the two issues, do we use this issue and close the other one, keep both open, or close this issue and move to the other one? I was thinking maybe this one could be purely about network issues and other one could be general (since there's a different issue of FPS lag too). But I'm ok with whatever other staff members decide.

between the two issues, do we use this issue and close the other one, keep both open, or close this issue and move to the other one?

I would say keep both open but rename this one.
#-5234 is more specific about lag in just Haven
#-this one is more about general unnecessary stuff mods do which results in network traffic, Haven is just the best testing ground because basically any node/entity available (within city rules) is used there at the same time and rarely unloaded which results in constantly used server ressources.

> between the two issues, do we use this issue and close the other one, keep both open, or close this issue and move to the other one? I would say keep both open but rename this one. #-5234 is more specific about lag in just Haven #-this one is more about general unnecessary stuff mods do which results in network traffic, Haven is just the best testing ground because basically any node/entity available (within city rules) is used there at the same time and rarely unloaded which results in constantly used server ressources.

After a quick glance through code, seems like leads just don't care if both attached objects are static and always update their pos?
89322baf5c/leads.lua (L91)

I guess you are talking about on_step (codeberg cause YL repo´s are private) then yesh, it never checks if there even was a change

> After a quick glance through code, seems like leads just don't care if both attached objects are static and always update their pos? > https://gitea.your-land.de/your-land/leads/src/commit/89322baf5c6c6a564bdc7454b0f5dd31b6812deb/leads.lua#L91 > I guess you are talking about [on_step](https://codeberg.org/SilverSandstone/leads/src/branch/main/leads.lua#L131) (codeberg cause YL repo´s are private) then yesh, it never checks if there even was a change
whosit changed title from Haven lag to Unnecessary network traffic as potential source of lag in Haven 2024-01-16 14:58:40 +00:00
Member

I can't contribute any new insights yet.

Haven used to be terribly slow for me on my old machine - the old CPU was too slow to decode incomming packages in time. Now it seems the line gets overwhelmed by packages and my network connection is too slow to handle Haven - while the newer CPU can handle it easily. I constantly run around not-loaded blocks when trying to walk from spawn to the sailship.

Some of the packet senders whosit identified are particles. I'd expect them to just send the information that there are to be particles? That alone shouldn't be too bad. Perhaps too many of those sums up.

That the NPC also contribute worries me. I'll have to look into that and see if I can do anything on the NPC side (they're mobs_redo based). An NPC standing in a torch would constantly try to jump to get out of it, start sweating and eventually die (thus at least eliminating the lag problem). Perhaps there are other mechanisms I'm currently unaware of.

Signs and other things - do they really need to update so often?

I can't contribute any new insights yet. Haven used to be terribly slow for me on my old machine - the old CPU was too slow to decode incomming packages in time. Now it seems the line gets overwhelmed by packages and my network connection is too slow to handle Haven - while the newer CPU can handle it easily. I constantly run around not-loaded blocks when trying to walk from spawn to the sailship. Some of the packet senders whosit identified are particles. I'd expect them to just send the information that there are to be particles? That alone shouldn't be too bad. Perhaps too many of those sums up. That the NPC also contribute worries me. I'll have to look into that and see if I can do anything on the NPC side (they're mobs_redo based). An NPC standing in a torch would constantly try to jump to get out of it, start sweating and eventually die (thus at least eliminating the lag problem). Perhaps there are other mechanisms I'm currently unaware of. Signs and other things - do they really need to update so often?
Author
Member

Some of the packet senders whosit identified are particles. I'd expect them to just send the information that there are to be particles? That alone shouldn't be too bad. Perhaps too many of those sums up.

Torches near arena send 202 packets per second, 2 packets per torch (554 and 245 bytes per packet = 80k bytes per second).
Ideally they should set up particle generator with the right parameters only once, and client should generate particles without any traffic from the server.

I would just comment out this ABM that creates new particle spawners each second:
aca469cc46/torches.lua (L137)
Not sure if the particle spawners persist in mapblocks or how to create them "on load" if they do not persist...

Signs and other things - do they really need to update so often?

They don't do it often, but they do it after a long time all at the same time - those spikes are massive compared to background traffic (comparable to loading a bunch of new mapblocks, I guess).

> Some of the packet senders whosit identified are particles. I'd expect them to just send the information that there are to be particles? That alone shouldn't be too bad. Perhaps too many of those sums up. Torches near arena send 202 packets per second, 2 packets per torch (554 and 245 bytes per packet = 80k bytes per second). Ideally they should set up particle generator with the right parameters only once, and client should generate particles without any traffic from the server. I would just comment out this ABM that creates new particle spawners each second: https://gitea.your-land.de/your-land/abritorch/src/commit/aca469cc46ed8f421dad0353ed67aebccdf8091b/torches.lua#L137 Not sure if the particle spawners persist in mapblocks or how to create them "on load" if they do not persist... > Signs and other things - do they really need to update so often? They don't do it often, but they do it after a long time all at the same time - those spikes are massive compared to background traffic (comparable to loading a bunch of new mapblocks, I guess).
Member

Regarding the NPC and all mobs_redo based mobs: If I see that correctly, they do each call do_env_damage() once per second - and that calls update_tag(). Perhaps that is where some of the packages from the NPC come from.

I've disabled this mechanism for the NPC (not for mobs in general; the Miocene are still affected). We don't want to have the NPC burn in torches or die trough flowers or crystals anyway.

Would be great if that could be tested. The yl_speak_up repository is updated.

Regarding the NPC and all mobs_redo based mobs: If I see that correctly, they do each call do_env_damage() once per second - and that calls update_tag(). Perhaps that is where some of the packages from the NPC come from. I've disabled this mechanism for the NPC (not for mobs in general; the Miocene are still affected). We don't want to have the NPC burn in torches or die trough flowers or crystals anyway. Would be great if that could be tested. The yl_speak_up repository is updated.
Author
Member

I did more running around Haven with new filters, to library, to arena, to post office, then to the harbor and turned to look back. Here are the results:

signs_peaks.png

Basically, every time you turn to look towards signs, MT re-sends you all the visible entities and texture modifier strings for them...
(magenta and red are signs - mostly what peaks are made of)

yl_speak_up just makes constant background level, not even visible here.

I did more running around Haven with new filters, to library, to arena, to post office, then to the harbor and turned to look back. Here are the results: ![signs_peaks.png](/attachments/b2eabd57-5f7b-43cb-829a-46c0e96f0b7d) Basically, every time you turn to look towards signs, MT re-sends you all the visible entities and texture modifier strings for them... (magenta and red are signs - mostly what peaks are made of) yl_speak_up just makes constant background level, not even visible here.
Member

so, i've mentioned this somewhere but i can't dig up the reference, but i think the solution might be to make signs (and node-bound-entities more generally) only appear when a player is close to them (this is non-trivial but i have ideas). but this will require heavy ABMs and a lot of get_objects_inside_radius calls, which could end up being significantly worse for the server performance. but that might be something we do to help out clients.

so, i've mentioned this *somewhere* but i can't dig up the reference, but i think the solution might be to make signs (and node-bound-entities more generally) only appear when a player is close to them (this is non-trivial but i have ideas). but this will require heavy ABMs and a lot of `get_objects_inside_radius` calls, which could end up being significantly worse for the server performance. but that might be something we do to help out clients.
Author
Member

I have a radical suggestion of converting all the never-changing signs in Haven (that show the way to airport, etc) to nodes with pre-rendered textures. It will eat up some node IDs, but maybe some day, a better way to write text on nodes will be available.... This will get rid of some entities at least - which also would make get_objects_inside_radius() calls faster :p

I have a radical suggestion of converting all the never-changing signs in Haven (that show the way to airport, etc) to _nodes_ with pre-rendered textures. It will eat up some node IDs, but maybe some day, a better way to write text on nodes will be available.... This will get rid of some entities at least - which also would make `get_objects_inside_radius()` calls faster :p
Author
Member

so, i've mentioned this somewhere but i can't dig up the reference, but i think the solution might be to make signs (and node-bound-entities more generally) only appear when a player is close to them (this is non-trivial but i have ideas). but this will require heavy ABMs and a lot of get_objects_inside_radius calls, which could end up being significantly worse for the server performance. but that might be something we do to help out clients.

#5234 (comment) ?

> so, i've mentioned this *somewhere* but i can't dig up the reference, but i think the solution might be to make signs (and node-bound-entities more generally) only appear when a player is close to them (this is non-trivial but i have ideas). but this will require heavy ABMs and a lot of `get_objects_inside_radius` calls, which could end up being significantly worse for the server performance. but that might be something we do to help out clients. https://gitea.your-land.de/your-land/bugtracker/issues/5234#issuecomment-62943 ?
Author
Member

I've made this PR for torches: https://github.com/mt-mods/abritorch/pull/6
It's not the main problem, but it annoys me :)

I've made this PR for torches: https://github.com/mt-mods/abritorch/pull/6 It's not the main problem, but it annoys me :)
Author
Member

Seems like I misunderstood how particle spawners work and had to close that PR.

My simplest suggestion for now is to just disable particle spawners for abriflame torches.

Or spawn a particle spawner lasting 10 secords, every 10 seconds and also somehow stagger them.

Seems like I misunderstood how particle spawners work and had to close that PR. My simplest suggestion for now is to just disable particle spawners for abriflame torches. Or spawn a particle spawner lasting 10 secords, every 10 seconds and also somehow stagger them.
Member

My simplest suggestion for now is to just disable particle spawners for abriflame torches.

turning this change into a server setting might better provide us with some relief, but i don't think particles are YL's biggest issue. the biggest issue is signs - textures built out of a composite of hundreds of individual textures, on the fly, and (mostly?) all done on a CPU and not a GPU.

> My simplest suggestion for now is to just disable particle spawners for abriflame torches. turning this change into a server setting might better provide us with some relief, but i don't think particles are YL's biggest issue. the biggest issue is signs - textures built out of a composite of hundreds of individual textures, on the fly, and (mostly?) all done on a CPU and not a GPU.
Author
Member

NPC and miocene once per second ticking (re-sending of properties via AO_CMD_SET_PROPERTIES packets) is caused by this code:
https://gitea.your-land.de/your-land/mobs_redo/src/branch/master/api.lua#L3480
Which seems to call update_tag() even if nothing is changed...

Should be possible to get rid of that tick...

NPC and miocene once per second ticking (re-sending of properties via `AO_CMD_SET_PROPERTIES` packets) is caused by this code: https://gitea.your-land.de/your-land/mobs_redo/src/branch/master/api.lua#L3480 Which seems to call `update_tag()` even if nothing is changed... Should be possible to get rid of that tick...
Member

whosit wrote:

Should be possible to get rid of that tick...

That function seems to be pretty new. When I found out about it (an NPC died due to torches), I investigated, found that function - and overloaded it with a dummy function for the NPC. No idea if the version on YL is current enough for that.

This too frequent call to update_tag() may also worsen the situation for me in Voice attacks. So far I had no way to measure it. When there are hundreds of Scouts out there, each packet not sent counts...but that doesn't affect Haven directly.

flux wrote:

biggest issue is signs - textures built out of a composite of hundreds of individual textures, on the fly, and (mostly?) all done on a CPU and not a GPU.

Sounds indeed like a lot of network traffic :-/

How can we reduce the usage of signs in Haven? As for storage systems, they might build up a formspec and show players what's in which chest when clicked on a node that creates a suitable formspec on the fly. Kind of a storage overview.

whosit wrote: > Should be possible to get rid of that tick... That function seems to be pretty new. When I found out about it (an NPC died due to torches), I investigated, found that function - and overloaded it with a dummy function for the NPC. No idea if the version on YL is current enough for that. This too frequent call to update_tag() may also worsen the situation for me in Voice attacks. So far I had no way to measure it. When there are hundreds of Scouts out there, each packet not sent counts...but that doesn't affect Haven directly. flux wrote: > biggest issue is signs - textures built out of a composite of hundreds of individual textures, on the fly, and (mostly?) all done on a CPU and not a GPU. Sounds indeed like a lot of network traffic :-/ How can we reduce the usage of signs in Haven? As for storage systems, they might build up a formspec and show players what's in which chest when clicked on a node that creates a suitable formspec on the fly. Kind of a storage overview.
Member

How can we reduce the usage of signs in Haven?

books and posters are much better than the signs that let you put in hundreds of characters. but then again, they're not a panacea - the post office is a prime example of there just being far too many signs in one place. perhaps we can make a "sign" that only has an infotext instead of an entity? the minetest_game signs originally only did that, but signs_lib overrides them. on blocky we ended up creating dupes of the original mtg signs. but they're impossible to read from a distance, and finding an individual mailbox by ID or player name would become quite difficult without them.

> How can we reduce the usage of signs in Haven? books and posters are much better than the signs that let you put in hundreds of characters. but then again, they're not a panacea - the post office is a prime example of there just being far too many signs in one place. perhaps we can make a "sign" that only has an infotext instead of an entity? the minetest_game signs originally only did that, but signs_lib overrides them. on blocky we ended up creating dupes of the original mtg signs. but they're impossible to read from a distance, and finding an individual mailbox by ID or player name would become quite difficult without them.

Stupid question: Do more characters in signs cause more issues or is it the number of signposts, regardless the content?

Stupid question: Do more characters in signs cause more issues or is it the number of signposts, regardless the content?
Author
Member

Stupid question: Do more characters in signs cause more issues or is it the number of signposts, regardless the content?

This is how texture combinators for signs look:

"[combine:291x102:99,0=signs_lib_color_16px_0.png:99,0=signs_lib_font_16px_50.png:109,0=signs_lib_font_16px_61.png:117,0=signs_lib_font_16px_6e.png:126,0=signs_lib_font_16px_64.png:135,0=signs_lib_font_16px_61.png:143,0=signs_lib_font_16px_47.png:155,0=signs_lib_font_16px_69.png:159,0=signs_lib_font_16px_72.png:165,0=signs_lib_font_16px_6c.png:169,0=sign"

where :126,0=signs_lib_font_16px_64.png is image containing one letter.

Unicode fonts looks like this (middle of it):

"signs_lib_uni00.png\^[sheet\:16x16\:13,4:109,34=signs_lib_uni00.png\^[sheet\:16x16\:9,6:117,34=signs_lib_uni00.png\^[sheet\:16x16\:14,6:125,34=signs_lib_uni00.png\^[sheet\:16x16\:5,6:133,34=signs_lib_uni00.png\^[sheet\:16x16\:7,5:141,34=signs_lib_uni00.png\^[sheet\:16x16\:15,6:149,34=signs_lib_uni00.png\^[sheet\:16x16\:2,7:157,34=signs_lib_uni00.png\^[sheet\:16x16\:12,6:165,34=signs_lib_uni00.png\^[sheet\:16x16\:4,6:173,34=signs_lib_uni00.png\^[sheet\:16x16\:3,7:181,34=signs_lib_font_"

For unicode ^[sheet\:16x16\:9,6:117,34=signs_lib_uni00.png is one letter - they use single texture with many characters and cut it in parts with sheet.

This both inflates paket size (see first post in this issue, where AO update is split into 675 packets, each packet 554 bytes) and needs to be processed to generate actual texture GPU can draw. This processing causes significant stuttering on my PC (but thankfully only once, at least they are cached).

So, yes, number of characters makes it worse.

> Stupid question: Do more characters in signs cause more issues or is it the number of signposts, regardless the content? This is how texture combinators for signs look: ```C "[combine:291x102:99,0=signs_lib_color_16px_0.png:99,0=signs_lib_font_16px_50.png:109,0=signs_lib_font_16px_61.png:117,0=signs_lib_font_16px_6e.png:126,0=signs_lib_font_16px_64.png:135,0=signs_lib_font_16px_61.png:143,0=signs_lib_font_16px_47.png:155,0=signs_lib_font_16px_69.png:159,0=signs_lib_font_16px_72.png:165,0=signs_lib_font_16px_6c.png:169,0=sign" ``` where `:126,0=signs_lib_font_16px_64.png` is image containing one letter. Unicode fonts looks like this (middle of it): ```C "signs_lib_uni00.png\^[sheet\:16x16\:13,4:109,34=signs_lib_uni00.png\^[sheet\:16x16\:9,6:117,34=signs_lib_uni00.png\^[sheet\:16x16\:14,6:125,34=signs_lib_uni00.png\^[sheet\:16x16\:5,6:133,34=signs_lib_uni00.png\^[sheet\:16x16\:7,5:141,34=signs_lib_uni00.png\^[sheet\:16x16\:15,6:149,34=signs_lib_uni00.png\^[sheet\:16x16\:2,7:157,34=signs_lib_uni00.png\^[sheet\:16x16\:12,6:165,34=signs_lib_uni00.png\^[sheet\:16x16\:4,6:173,34=signs_lib_uni00.png\^[sheet\:16x16\:3,7:181,34=signs_lib_font_" ``` For unicode `^[sheet\:16x16\:9,6:117,34=signs_lib_uni00.png` is one letter - they use single texture with many characters and cut it in parts with `sheet`. This both inflates paket size (see first post in this issue, where AO update is split into 675 packets, each packet 554 bytes) and needs to be processed to generate actual texture GPU can draw. This processing causes significant stuttering on my PC (but thankfully only once, at least they are cached). So, yes, number of characters makes it worse.
Author
Member

Hopefully this will reduce at least some of the mobs_redo entities spam:
#6150

Hopefully this will reduce at least some of the mobs_redo entities spam: https://gitea.your-land.de/your-land/bugtracker/issues/6150

That's what my client logs says:

2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (238,34) for [combine
2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (225,51) for [combine
2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (217,68) for [combine
2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (251,85) for [combine
2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (7,118) for [combine
2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (135,118) for [combine
2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (151,0) for [combine

2024-02-29 15:53:50: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (499,34) for [combine
2024-02-29 15:53:50: WARNING[Main]: collisionMoveSimple: maximum step interval exceeded, lost movement details!
2024-02-29 15:53:50: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (256,17) for [combine

There are about 400 of those if I enter Merchant's Quarter. There seems to be an attempt to fix this: https://github.com/mt-mods/signs_lib/pull/25

That's what my client logs says: 2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (238,34) for [combine 2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (225,51) for [combine 2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (217,68) for [combine 2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (251,85) for [combine 2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (7,118) for [combine 2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (135,118) for [combine 2024-02-29 15:51:55: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (151,0) for [combine 2024-02-29 15:53:50: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (499,34) for [combine 2024-02-29 15:53:50: WARNING[Main]: collisionMoveSimple: maximum step interval exceeded, lost movement details! 2024-02-29 15:53:50: WARNING[Main]: generateImagePart(): Skipping "signs_lib_color_16px_n.png" as it's out-of-bounds (256,17) for [combine There are about 400 of those if I enter Merchant's Quarter. There seems to be an attempt to fix this: https://github.com/mt-mods/signs_lib/pull/25
Sign in to join this conversation.
No Milestone
No project
No Assignees
6 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: your-land/bugtracker#5994
No description provided.