Is physics data not sent if outside the streaming radius? I noticed that the default setting still renders player characters and therefore the physics for parts associated with them. Does this remove that?
If a client has the part then physics data is sent for it. Otherwise the client would get out of sync. When parts are streamed out the physics updates for the part stops.
Lets say for example there is a 100 player server and 90 players are outside the streaming radius. Are the physics data for all 99 players (excluding the local player) still being sent? I feel like that would be a big performance hit for large world games. Does the physics service handle this instead and just reduce the update frequency of players further away from the local player?
I feel like it is unnecessary to render characters and physics for players so far away, especially for larger scale games where players are spread out.
This is one of the motivations for allowing opportunistic stream out behavior.
The physics system can adapt update rates as it needs to however, independent of this feature.
Is there an ETA on when this will be re-enabled? Could really use it for a game with super high part counts
What do you think about developers being able to enable and disable replication for any instance they want, per player, through an API?
Such that developers are able to write code like this:
when this will be re-enabled?
I wait this feature for update my games
Hey, I couldn’t find any other appropriate place to post this due to a lack of permissions, so I’ll do so here:
Currently, using streaming is extremely cumbersome due to the single fact that there is no good way to seamlessly hide assets that are far away. Atmosphere.Offset
quite frankly looks ugly, mainly due to the fact that the color is not spread out but rather fades into a darker shade the further away it is from the sun - a workaround would be to set Atmosphere.Haze
to 0
, but this is also implausible due to the fact that Haze
affects how objects are rendered even up close:
Haze
set to 1:
Haze
set to 0:There is a lot more white fog which looks very out of place and unnatural.
My current propositions to address this would be:
-
allow for us to make a “fog ring” which surrounds the player and fully blocks out looking further - whilst providing for customizability to let us determine how high the fog ring can go - because currently, you already can implement a fog ring by using an inverted mesh sphere & then scaling it up, but the issue with this is that it also blocks out the whole sky as a side effect, which is unwanted.
-
Allow for us to generate impostor meshes without using streaming - I.e., keep the impostor meshes, but do not unload/load the map - thanks to the fog, the transition between the impostor meshes should be more or less seamless, and at the same time performance-saving.
Isn’t there any other way? doing that will require me to edit whole 2 scripts
Any news of when this feature is coming back? My game desperately needs it!
Unfortunately there are a few prerequisite fixes that must be rolled out before this feature can be reenabled. It will be at least several weeks before it can possibly be turned back on. Sorry for the delay.
Thanks for the update, much needed!
I don’t wanna stress the awesome team behind that but, will it be come back until this year or more like next year ?!
Because with my game in reaching kinda the border of FPS that roblox can give me
(but for some reason only on PC, Mobile doesn’t lag)
Also it lags after i loaded all the map ingame, and with this insane Streaming Out Behavior Feature all my pain goes away
This direction is where the big city is located what we can’t see because of fog.
(Note: Streaming Enabled is on, i converted most of the bricks into one etc.)
Is there any update on when this feature can be re-enabled?
Due to the other fixes that this feature is dependent on at this point it looks very unlikely we will be able to turn this back on in 2021 unfortunately. We are working on this as quickly as possible, but there are some tricky interdependencies.
As soon as I heard this changes, I combined 9 of my areas in one massive open world map. The result in doing so decrease performance, but it made the game more immersive. I had to remove lots of detail to upkeep the performance. I hope this feature come back soon.
This was really nice while it lasted. Will be waiting.
Would this stream enabled behavior behave similar to chunk loading after being re-enabled? If I were to narrow down questions:
-
Will we be looking at a more extensive culling operation similar to unity and UE4 or will we be looking at the entirety of the chunk being loaded?
-
Will players outside of the stream radius technically exist in full (parts limbs and all that), or will players outside of the stream radius be empty in the workspace? I’m aware of the character limbs motor bug and the reason of this behavior being disabled.
-
Will this impact any forms of projectile replication from player A to player B, assuming that it is rendered on the server side and two players are outside each other’s stream radius?
What i can tell you from my short experience with this insane feature is, if you going far away form an object and its in “Streaming Mesh” mode than things will be looking like this in the picture.
If the obejct is not in “Streaming Mesh” i will be kinda deleted from the view of the client, but if you go back to it the LOD goes away and the mesh goes in its Normal Mesh shape. (also works for Models)
But i really helps alot with FPS and the Client Memory, thats why im still excited about this feature !!!
So ya its like a chunk loader.
I’m more worried about culling operation than simply just unloading.
You see, games powered by UE and some Unity games as well as bigger sandbox games such as GTA have some form of backface or frustum culling, and they do it well. Those games really focus on not rendering in what doesn’t need to be rendered even within the client’s stream radius, and I’m wondering if ROBLOX would do the same.
ROBLOX’s stream enabled, as far as my research goes (including when this beta feature was enabled, but I didn’t get a chance to set up an experiment) was that the full/semi-full/all six sides geometry of the asset is loaded even when outside of the streaming radius, regardless setting LOD to streaming mesh and whatnot, which is extremely inconvenient considering the triangles are still loaded into the client’s memory. Sure, I’ll get a lower amount of triangles, but all sides of triangles are still loaded in and physics data is still there, doesn’t really hit a dent optimization speaking.
I’m more or less aware that it is sort of like chunk-loading, though I really want to see if any forms of advanced culling will be implemented for assets outside of the chunk.
By the way,
CloneTrooper had put together a visualizer of frustum culling in his studio, you can see how some assets are still loaded even when you can’t really see it. That’s the part I’m worried about with the new behavior. I hope it is stabilized and work like a charm, but I’ll have to see.