[1.0.2.0] Too many objects in one Visibility Volume cause extreme lag

In the Resort map I turned the old Game World Ports area into a mall with a few stores. There’s a couple hundred objects in there (almost none are Workshop items), and creating this area caused the framerate to permanently drop a bit even while somewhere else in the condo for myself and others. If it matters, I have about 5k objects in my condo total, very few Workshop items, and all my Canvas data is compressed and I try to stay under 1mb for each.

Anyway, I was looking forward to Visibility Volumes so I could section off that area in hopes of it improving the framerate, however it makes things even worse.

Placing a large Visibility Volume over the area causes clients to have extreme lag even when everyone is outside of the volume, to the point that I can see them teleporting around while moving. If I instead use multiple smaller volumes to cover the same area the lag goes away, but that’s really not ideal because that means constant visible pop-in while walking around that area.

Steps to Reproduce

  • Place a Visibility Volume over an area with many objects (200+)
  • Clients should now be experiencing lag even while no one is inside the volume
  • Replace the larger volume with multiple smaller ones, each handling no more than maybe 100 objects
  • Clients shouldn’t experience any lag even though the same amount of area is being covered by Visibility Volumes

What I expected to happen

Visibility Volumes shouldn’t be causing added stress/performance drop, especially if no one is even inside the volume.

What happened

Laggy wacky fun time.


Notes / Media

Here is 7min video of my friend and I testing the Visibility Volume until they’d start experiencing lag. You can skip to about halfway when we found that placing multiple smaller volumes over the same area was fine (excluding that doing this would cause a ton of very visible pop-in).

4 Likes

This (or at least something very similar) happens with the Hide/Unhide IO functions, too. Before Visibility Volumes, I made a way to unhide thousands of items at a time for a workshop Ball Race map hoping it’d increase performance, and it did for me as the host, but any clients on the server would have like single digit framerates.

3 Likes

I actually think I’ve just run into this same issue in my condo.

I have buttons set up so I can toggle between Halloween and Christmas decorations, and at some point over the last month I guess I connected too many objects to one Relay to All Module because now no one can connect to my condo. Like they can join and walk around for a few seconds, but once it finishes loading all condo objects they get disconnected.

The only solution I’ve found is completely deleting the Relay to All Module that’s for Christmas decorations. I don’t know of any way to see specifically how many connections are on it (that should really be listed somewhere in that UI) but I’m guessing I have about 500 in there.

Sadly I don’t really know what to do and it’s kinda completely killed my interest in playing the game since I primarily would work on my condo every day.

I really don’t want to have to re-do connecting all of that back to a new module, and I don’t even know how I’ll avoid it happening again. Maybe if I split them up into two or three modules rather than just one? And if I try to remove individual objects from the connections tab one-by-one it crashes my own game as soon as I try removing one.

:disappointed_face:

2 Likes

Think its a connections issue. The game really doesn’t like other players joining in and mapping the connections on their end I think. My project in particular (more detail below if you actually care about what monstrosity I work on) had to be scrapped completely because I couldn’t get a second player in a server with nothing else in it to test it with.

I had connected an obscene amount logic gates to create chess, which essentially ran off a digital computer (Most of these gates made up the RAM, which had 3072 in just toggle switches acting as single bit memory, and like 400ish ANDs to build the multiplexers for that RAM. )
Before someone says surely there is a better way to do this, yes there is but I was trying to evade the 48mS delay on math circuits by doing it with binary and an ALU instead. But this was like only the third version at a fully functional chessboard.

Anyhow I imagine just large amounts of I/O just does not transfer over very well.

1 Like