Streaming Enabled by Default for All Templates

I believe in its current state, this was not a good change. The documentation and API available are quite lackluster and this will only confuse a big portion of the current developers since a lot of people don’t know how to even use streaming enabled. My biggest gripe with streaming in its current form is the fact we can’t manually control streaming through an API like Streaming:RequestObjectStreamIn or Streaming:RequestObjectStreamOut

118 Likes

Streaming enabled is a good feature and all but honestly I prefer not having it on by default.
The way streaming works doesn’t really fit my coding and game design style and breaks stuff so I prefer writing my own streaming system if I must.

If we could have a toggle in setting where it can be always on/off by user choice I’d appreciate that a lot.

48 Likes

You’ll use Streaming and be happy.

I’m sorry but i still cannot believe in the current model for streaming is any good.

Not too sure about this… My “massive world” crashes on server start with streaming and it only has 15k parts :confused:

Still, personally i would appreciate (and would actually need) a more manual approach to streaming rather than some magic “server does it all for you, don’t worry about it” kind of approach. I would personally want to be able to stream assets in and out directly from disk with my own code as this way, not only the actual asset streaming could be more efficient, faster and more performant (Server dosen’t have to do anything, and usually even standard hard disks are easily over 15x faster than the average internet connection along with the fact that developers will be able to adapt said streaming to function properly with their own games rather than developers needing to adapt their code to some roblox magic feature that isnt even that great in the first place). Would also appreciate to be able to download said assets to disk on a prior place before actually using said assets in the required places. Still right now, i don’t think leaving it On by default is a good idea by any means and i sure do hope it will not get forcefully enabled on all roblox games in the future.

45 Likes

As with what some Developers earlier said, there is a chance this might break games both present and in the future.

If this would still stay as an optional feature, then it would be much easier for new Developers to find and opt-out their game from Streaming Enabled.

30 Likes

I think the same, last time Roblox enabled something on all games it broke most games and they had to remove it (Adaptive Timestepping) But at least this is only in the templates.

22 Likes

Exactly. Amen brother. But the word Request will be interpreted by Roblox as “ok, we’ll maybe™ replicate it in/out, no promises!”

I’ve mentioned my problems I have with streaming in numerous other posts.

24 Likes

Good to see. Recent improvements have made it easier to work with streaming so I don’t think people will have that too much trouble figuring it out.

I still regret though that we have no way to pass a new created part from the server directly to a client (e.g. through a remote function). You need to pass back instructions for the client to find the instance itself, and this gets sloppy because you need to use the instance name to use WaitForChild, but instance names are not unique. We need API for waiting for these parts - my current solutions for this are to pass back the part’s name as a GUID and its parent, or to tag the part and add an ID attribute and let a client-side system register when it streams in/out and handle ID lookup.

Feels like Roblox should be able to handle datamodel level instance GUIDs and their lookup for me. Roblox might even already be tracking some of this internally.

23 Likes

Does this include the baseplate? I don’t want streaming on all of my games, because it doesn’t work with scripts.

16 Likes

it would be nice to have an extra feature where you can stream out specific models, my use case would be for optimization purposes where I would want certain detailed instances not streamed in by a player, similar to how PersistentPerPlayer works but for streaming out models

13 Likes

This is a welcome change. Streaming enabled should be the default, most game genres out there don’t need the whole map loaded.

You can still disable SE.

15 Likes

I like this change, before i did not know what streaming was but now I do! Idk if my experience had streaming enabled, but if it doesn’t I will be sure to enable it! Overall I think this is a good update so uses on older and lower-end devices can play in an experience smoothly!

13 Likes

Doesn’t make it not annoying to disable every time. I’d like a setting to toggle this instead of being forced into it.

17 Likes

There is a setting. It’s under the workspace and it takes 2 seconds to change. Why do you need a setting for the setting? That’d mean doubling the amount of templates + a very beginner unfriendly experience…

18 Likes

One of the first steps of creating massive worlds would be allowing devs to upload heavier places. Right now the publish would just fail if that place file is too heavy or has too many voxel.

21 Likes

Anyone sold on streaming from these 3 bullet points clearly has been mislead into believing that streaming doesn’t come with downsides.

Downsides

As some devs know, streaming is not all peaches and cream. Roblox, ever since streaming left beta, has been intentionally turning a blind eye to these downsides and has made zero progress towards ameliorating them.

Streaming is presented as a “one size fits all” solution

  • This is a flawed assumption on Roblox’s part owing to the fact that their very platform is built around “Powering Imagination”. Streaming can be thought of as a glove; inherently, it doesn’t fit everyone like a glove. You’ll never hear the devs of uncreative cookie cutter games complaining about streaming not quite suiting them/their game.

The developer has next to zero control over streaming

  • When it comes to control, you as the developer, at runtime, have… none. In edit mode, it offers about as much control as a light dimmer, maybe even less. At runtime, you are simply at the mercy of streaming, a backseat passenger, never the driver— a hard pill to swallow for anyone creative.

A codebase needs to be redesigned to work after toggling streaming on/off

  • This somewhat parallels with the “zero control” point, nevertheless if you have a game in development for some amount of time and you (or another dev) wants to adopt streaming, the scripter(s) is going to have to halt development to convert the codebase (mainly the client side) into being “tolerant” of streaming enable. So that leaves the scripter(s) with 2 obvious choices + a bonus choice:
    A: get a fat migraine
    B: quit
    C: Choice A and later Choice B

22 Likes

Update:
I have a Capture The Flag game and when enabled streaming it made everything invisible.

11 Likes

Doubling templates? I’m talking about a Studio setting. Just a simple “StreamingEnabled by default” setting is all I’m asking for.

16 Likes

It just makes more sense to use streaming. Most big games (GTA, Red Dead) use some sort of streaming to create their massive worlds.

13 Likes

Thats true, though most points everyone has here is that the streaming system we have is… not exactly great while games like GTA and Red Dead have streaming systems fully built from the ground up, designed for said games to work perfectly. On roblox this is sadly not the case.

15 Likes

It’s not great but it sure helps with creating bigger games, even smoother experiences. I’m sure there will be a big improvement to streaming in the future.

12 Likes