Maybe a new icon or look or a new website
Streamed displacement maps for material variants.
When it comes to performance, making environments like forests with high detail models in huge size maps is still a tedious task to take on when it comes to making it run smooth on all clients without creating a custom rendering system. It seems that when graphics are at their highest, the client just decides to load everything in the game, even if it cant be seen (fog/density, even with opportunistic on)
I think implementing a minimum (and maybe a maximum?) ârender distanceâ in the Model class; If your character gets within a certain distance of a model, load it and keep it loaded until they get out of the set distances (or looks away) would work best for the capabilities of Streaming.
Camera points and cutscenes tend to bug out for me when using StreamingEnabled. It would be greatly appreciated if models load in at a set spot away from the player as well, along with streaming for terrain.
Not quite sure if this is related, but I would love the ability to create games with worlds so massive that extend past the âfloating pointâ, where instead of about a million blocks out it would be further. Could that have to do with streaming as well?
We seem to have ran into some problems with scalability and large player counts.
Using
Opportunistic
streaming puts a lot of pressure on the server when thereâs a lot of players loading and unloading chunks of the world.
Switching to LowMemory
eases this pressure off the server, but it has a few obvious problems:
- On devices with a high memory ceiling, itâs less likely parts of the world will be unloaded. Our map wasnât built super-well optimized because best practices were not well documented.
- Users with limited memory are able to keep hitting that memory ceiling more often than necessary.
Ideally there should be some kind of option that balances between these two extremes. Something like Opportunistic, but with two-way respect for balancing the performance of the server and client at scale.
If it already works like this⌠then I guess weâll probably have to look at more aggressive optimizations on our end? Ideally the server slowing down shouldnât be that big of a deal for the playability of our game. Thereâs just a lot of compromising balances that have to be made.
How many players is that? (also extra characters because devforums)
Can we set what this acts as by default?
Heck having a second version that prevents the model from loading at all into those that werenât added would allow creations of very precise custom map chunking systems, Iâm looking forward to a possible change like that!
I suggest STREAMING GROUPS
same way you can make collision groups make streaming groups
that have their own settings that override the things inside the group such as a custom range, who loads it, will it always be there
would be extremely handy to have
Streaming is honestly still a mess for large physics assemblies and can lead to high ping all over the place. Iâd really just like a way to stream only Terrain. Terrain is one of the few features you canât really write your own streaming system for. My game runs perfectly fine at large playercounts with streaming turned off, but the terrain load times become insanely long due to having multiple trying to load a massive-scale terrain object all at once during a map change. I think in general streamingâs âwe know better than youâ approach is annoying, Iâd rather manually toggle what IS streamed than have it decide on its own. Basically just give me a ReplicationService without the blackbox autostreaming stuff
@ffrostfall, @Reditect, @TwentyTwoPilots
Can I ask you all for specific reasons why you want to be able to tell different objects to Stream In at different radii? Is there some kind of âgameplay logicâ aspect to this, or are you specifically requesting these for visual reasons because you want to control when some things are visible?
For example, if you want something big far away to be Streamed In, would your use case be satisfied if we had a much higher quality âLevel of Detailâ Model that looks just as good as the full detail set of parts that make up the model?
The reason I am asking is because internally weâve been trying to separate the âvisualâ side of Streaming from the âStreaming Radiusâ. The purpose of things withing the âStreaming Radiusâ is to be available for the purpose of scripting and gameplay logic. This means when you need something to be visually present, but it is not crucial to gameplay logic (or script logic) we would want that scenario to be properly handled by a rendering LOD system long term.
We do recognize the current Model LOD system is limited today, but there are entire teams working on improving our solution to visualization of Streamed Out parts within the company.
LOD isnât even part of the equation for me.
I want to be able to stream unimportant props out of the game entirely at tighter radii to improve performance on low-end devices.
Iâd also like to keep things like roads or landscape streamed in at higher radii, partially for the visuals, but mostly to prevent players from driving into the void because the streaming system didnât prioritize the landscape as they were moving. Right now we keep all our roads streamed in permanently with a Persistent model, which is sort of overkill but because we have no way of prioritizing streaming roads, itâs the best we can do. Physics pause mode is not a solution here either, itâs disruptive, players hate it, and it hurts our session lengths when its enabled.
I want the ability to fine tune streaming more, I donât want to be stuck with black box solutions that offer no fine-tuning or optimization whatsoever.
If Iâve got a house on a mountain, and that house has a bed in it, someone whoâs 2K studs away will be able to see the mountain. But they certainly wonât notice the house, or the bed. However, if theyâre 1K studs away, they might be able to see the house, and the mountain. But they wonât be able to see the bed. If theyâre inside the house, then they can certainly see all of it.
We arenât asking for this because of visual reasons or gameplay reasons, we want to use StreamingEnabled in a way that gives us even more performance gains. A per-object streaming radius would give us the ability to do discount âocclusion-cullingâ. If we know that something in, say a house, isnât going to be seen at a certain range, then we can not have it rendered, therefore saving performance.
This is vital to improving performance on extremely large-scale maps, and Iâve seen many developers implement their own systems like this.
Also quick edit to say: Thank you so much for actually caring and the transparency. It means a lot.
Hey, Iâd say itâs mostly about visuals. Rocks, grass, and flowers. Many games have a system where small rocks are loaded into the word differently compared to other objects.
Iâm trying to reproduce a similar effect to Kao the Kangaroo or Spyro the Dragon.
If it helps, I can provide a video when time allows.
Something that isnât listed here is the ability to detect if a part is about to be streamed in or out. We also cannot determine the level of detail of a model calculated by the engine, and we cannot make our own adjustments to them according to the level of detail.
huh isnt streaming that you are live on aâŚ
you can know if a part is streamed in or out by using TagService.
Be able to chose which objects are Streaming In or Out would be really cool.
First of all for perfomance it would be a cool feature for low-device.
And i was thinking about maybe make NPCS server side (not sure if it would be laggy but i donât think so)
Yes, but thatâs not as performant as an RBXScriptSignal.
What do you mean ? CollectionService have event
CollectionService | Roblox Creator Documentation added
CollectionService | Roblox Creator Documentation removed