[DEPRECATED] StreamX - Reduce lag and prevent map cloning

This is in the test game from earlier.

And, a core i5 10600KF (4.10GHz base speed), and a GTX 1660 Super.

I should say that performance will vary on your specs, not everybody will get 600+ FPS. Not sure what GPU @Crcoli737 has for his example.

For this example I am using a Radeon 5700 XT.

1 Like

Like to state my mind on StreamX.

I thank @Crcoli737 for giving us the opportunity to allow us to test this out in our game.
Our game is lots of meshes and many parts which created many lag spikes / low fps for low-end users. With this system, we not only got to increase our fps but it brought many old players back as they enjoyed the game but couldn’t deal with the fps drops. We have also asked our community about any fps boosts and they all have reacted by speaking about how they are definitely seeing a boost in their fps.

~ Ash

4 Likes

Nearly all the things you have mentioned can be adjusted using the streaming throttle and update delay settings in the server side script.

Yes but RAM is a very expensive thing to use up for part streaming. All of our servers have up to 25 gigabit internet links and high speed nVME SSDs for part storage.

1 Like

I don’t think you understand the point I was trying to make.

Performance can be improved by simultaneously using two streaming providers, StreamX for streaming large number of parts and Streaming Enabled for less lag of the parts rendering in and out.

And some of the time, Streaming Enabled isn’t always enough to reduce or remove lag. For example, the game Stepford County Railway is massive with several million parts, and they use Streaming Enabled and it still lags, has FPS drops, and crashes on mobile devices due to lack of memory.

2 Likes

I didn’t say it was perfect, just like StreamX isn’t. But I definitely think it’s a lot more usable out-of-the-box than StreamX. My first experience with it was in @pyxfluff demo place, and it wasn’t exactly glamorous. It’s what I based my reply around.

There’s still the fundamental issue of the huge amount of network cost associated with using StreamX, which I doubt you’ll ever be able to sort out completely.

I’m still mildly interested in where StreamX will go, but in it’s current state (demonstrated, again, by DarkPixlz’s demo place), I wouldn’t call it altogether that much better. Sure, you might get better performance, but StreamingEnabled, as it stands right now, is more polished and useable compared to StreamX. It can work better according to the situation, since it functions on the client and can therefore stream parts according to the client’s condition, such as available memory, and also can, apparently, utilize “imposter” meshes for faraway objects that shouldn’t go completely invisible.


However, I have to ask, are you certain this performance boost is coming from StreamX deleting parts completely instead of making them invisible? As I said in my last reply, most performance of games are spent on rendering;

, not on things like physics;

, which have optimizations (for example, checking bounding boxes for intersections before doing any complicated stuff, or Adaptive Timestepping) that make them extremely fast most of the time. It just doesn’t make sense to me that deleting a part constantly and redownloading it over and over again is making this huge difference, I think it’s just that there’s far less parts being rendered, which increases performance.

5 Likes

And I am on a NVIDIA GTX 1050 Ti and it works really good for me, not sure why a customer is complaining.

1 Like

When you said you got a “decent” amount of FPS, Roblox’s main FPS rate is usually around 30-60 and not 85.

According to what I’ve read, it seems like you said this sucks, but thats an opinion. Basically StreamX is currently in beta, so I don’t why you expect so much to come out of this, this is very useful and beta testers will have this for free while future customers will have to pay for it. You shouldn’t even complain how bad it is, because it’s in beta and free for beta testers.

3 Likes

I do have a question, do I need to enable API services for studio? When I was giving someone permissions to my studio, I saw enable API services and it was turned off, do I need to turn it on?

Yes you do. StreamX uses external API to get parts.

1 Like

No he doesn’t

You do not need to enable API services, you just need to enable HTTP requests.

2 Likes

That’s what I meant, sorry

2 Likes

Ok, I enabled HTTP requests and API services.

You don’t need API if you don’t want it. Only HTTP.

So, I put all the parts in the ASSETS folder, there are no meshes in it, only a few textures, enabled HTTP services and API and it turns everything into blocks.

That would be why, as of right now we don’t support textures.

1 Like

Just because it is in beta does not mean I can’t criticize how it works, in my opinion, the way this is built can be very problematic for games that are supposed to be helped the most by this.

1 Like

First of, I would like to thank @Crcoli737 for letting us test this service, it has great potential!

I spent quite a bit of time testing StreamX because I feel like the pros are something we need:

Pros:

  • Easy to set up, all you need is 1 script and 1 folder
  • We decide what goes into the streaming folder (THIS IS BIG)

So, I made a test site to see what would be the best of of StreamX, my first attempt was to stress test it with 48K parts with tall buildings. This caused a 1.7 min load time and result were un-usable. Best result was at around 30K parts:

Cons:

  • Loading time 30+ seconds
  • Loss of MaterialVariants
  • Only parts can be used in StreamX, making it difficult to set up if you use meshes and parts.
  • Some lag spikes

At this point, although I really like the idea of being able to choose what is streamed by putting it into a folder, I felt that I could not use this service at this Beta stage but it gave me a great chance to stress test the capabilities of Roblox StreamingEnabled (I have used before but I had not used the recent addition of StreamingOutBehavoir)

Here is the same place I used to test StreamX BUT with Roblox StreamingEnabled:

Overall, I would go with StreamingEnabled at this point, but I can not wait for when StreamX allows meshes and improves performance, maybe this is a service that should be integrated by Roblox and integrated to StreamingEnabled?

I can only imagine how much work have gone into this, is really cool stuff!

PS, if you are testing the StreamX site, wait until the materialVariant disappear, that’s when you will know that is fully operational.

6 Likes

We’re definitely going to work on meshes and MaterialVariants soon, thanks for the feedback!

1 Like

Love the comparison places!

Two things I noted in the comparison places:

StreamX is not compatible with light properties (so it seems?)
StreamingEnabled (correct lighting configuration): https://i.vgy.me/yAXyyZ.jpg
StreamX (lighting configuration disrupted): https://i.vgy.me/Xv51OJ.jpg

Although the original post alludes to this, I would be more explicit, because this is really important for games.

StreamX has some reliability issues
In @SpaceBlacksmith’s comparision place, I joined the StreamX test four times and three of the four times the map was incorrectly streamed in:

Images

https://i.vgy.me/clIn5H.png
https://i.vgy.me/F7mdKu.jpg
https://i.vgy.me/82lxIN.jpg
(no console errors: https://i.vgy.me/3NsGpi.png )

Unsure what the actual rate of this occurring is, but reliability is certainly a huge concern for experiences (regardless of whether it’s a small load or heavy load). Even a fallibility rate of 1% can be catastrophic depending on the impact range, and map streaming is definitely something that needs to have extremely low fallibility.

3 Likes