One of the most exciting parts of playing games on Roblox is that you can start playing on your laptop, continue playing on-the-go with your phone, then hop on your friends computer and… you get the idea.
But this flexibility for players means that developers should build and test with these devices in mind. Studio’s Devices feature has always been a great way to test game visuals and controls on supported platforms, and we’re upgrading it with even more testing capabilities!
Emulate Device Memory
We’re adding memory emulation so you can test the effects of Streaming Enabled on mobile devices, consoles - you name it!
This feature will be very useful in testing stream-out, especially for large maps on low memory devices.
Standard Devices
Memory has been added to the current list of standard devices.
These values are our best estimates for the memory actually available to the application, so your testing can be as realistic as possible:
Just keep in mind that you are limited to the memory of the device you are actually using
Content Streaming
While you’re testing, you might notice that some devices struggle to handle playing your game. Depending on the size of your game world and what you have populated in it, it could be a good idea consider setting up content streaming - this will help improve player experiences in your game across all devices.
Interested in learning more? We have an article on the Dev Hub that can help you get it set up. I definitely recommend giving it a read!
Thanks to @CorvusCoraxx for all the help with this feature
Nice. It’s cool that you can simulate devices without having to have the device you’re testing, or borrowing someone else’s device.
Will you ever support emulation for more niche devices, such as Amazon/Kindle Fire? I know you’re able to custom-make devices, but presets would be awesome.
Does this mean that I can test how my game would perform on a PC that only has about 6GB available RAM for example?
My laptop has a pretty powerful core with like 16GB so obviously it’s gonna run much better than a average work laptop or pc since it’s more build for gaming.
From what I understand, this feature is gonna allow me to get a idea of what kind of framerate, etc lower-end users will experience?
Because, that’s really cool, very useful for optimizing and such, happy with this feature.
Thank you so much for this! No more borrowing friend’s devices to test performance - this is a great step in the right direction towards making roblox available everywhere. I know I’ll be using this quite a bit very soon! couldn’t have come at a better time!
Will there ever be an opportunity to possibly change streaming settings for specific clients though? A super computer with a TB of ram won’t need streaming as much as a phone with 4 GB and I don’t really want to ruin the screenshots on upper-end devices by culling out distant details if I don’t need to
Edit: Another question, how does this work when the OS is taking up a little bit of resources too on the physical device? I’m assuming roblox isn’t running iOS or android in the background, so should we just make our emulator devices a little less capable to counter that usage by the OS?
Oh boy, simulated memory! Now I can finally relive the days of trying to play Roblox on an ancient laptop. Glad to see Roblox putting resources into enabling developers to improve their games for lower-end devices.
You’re right, in the meantime you can create a custom device, but adding more/updating the current list of supported devices is a great idea! Thanks for the feedback
For a team like mine, striving to bring a smooth experience to all players and devices regardless of their hardware, this is great news!
Hardware emulation has always been some of the hardest and most nerve wrecking things for my team. We could test the UI and input somewhat decently with the emulation tools, but never the true performance.
Getting players to play test and give the feedback that we needed was always difficult and often time consuming.
This is a huge time saver, and will for sure help us bring a smooth experience to a wider audience.
Yes, this feature means that you can test your game on, say, 6 GB of RAM!
This feature is meant to specifically test streaming in low memory situations. You will be able to experience map stream-in/stream-out that lower-memory users will experience
I’m so glad that you are excited about this feature - and about our journey in making Roblox available everywhere!
Changing streaming settings on a per-client basis is an interesting idea that I will bring to my team. Thanks for bringing it up and for the use case.
You are correct that the OS does require resources of the physical device! If you notice the preset values for IOS and XBox devices I have in the screenshot, I have actually taken this into account - I reduced those devices’ simulated memory by estimated OS use. For Android devices, it is a bit trickier to get consistent data on OS use, so I left the values as the total physical memory. If you want to make accurate custom devices, you should also reduce the memory by some expected amount for OS use.
It looks cool! I love the idea of simulating the capacity of a device. This will help more developers and how it reacts or crashes a device. Like a testing of some sort.
Is this feature just for testing the Streaming or is it for general memory testing?
I usually don’t use StreamingEnabled or such and would write my own modules instead.
I’d want to use this feature to to let’s say, make sure both my scripts and all objects in game aren’t using too much memory.
So would this have multiple purposes then?
Edit: Also is this just RAM or is/will there also be a feature for VideoRAM/Graphics?
I wonder why ROBLOX still supports the iPhone 4S. I’ve tried even the simpliest of games on it and it would crash (even sometimes crash on the roblox app itself) because 512mb is not enough for anything. I believe they removed support for Android 4 on Google Play, but it’s still goes down to iOS 8 for the App Store. Making the 4S that runs on iOS 9 still be able to use it.
This is really great for testing how games handle on phones and stability wise. I was tired of opening my phone each time I needed to test, and that only worked for my specific phone. While there is the function in studio, simulated memory is awesome.
At the moment normal physics behaviors are muted when in emulation mode. Things like anchoring and anchoring objects on the client that the server is unaware don’t respond to the change.
I tested this using my phone and locally. Seems in order for me to continue testing I will need to turn emulation off for the time being.
I am very very EXCITED for this feature but wow did it just freak me out haha.