I don’t personally agree with @LordOfLuxury’s response just purely because to look at engines just on the side of memory is pretty much missing entire chunks of the concept behind performance and handling.
In short, it can only handle as much as the server and client machines can handle.
Essay version:
To be quite frank, you cannot put a definition to how much can the engine handle because its usually down to individual computer specifications.
Not to mention as well, that their is performance and then their is actually hitting the limit. If you hit the limit - Roblox engine will not work at all. If you have really bad performance, its still working its just not doing anything in a feasible time.
For the conditions where technically the engine can’t handle it anymore would require one of two things:
- The server which is hosting reaches its threshold.
- The client which is connected reaches its threshold.
Each game is granted a relatively fair chunk of processing power to handle a game server, you have to remember that servers aren’t like your computers as they are literally just extremely powerful processing units which do as you figured the processing.
An easy way to show the server not being able to handle the engine is smashing it with an infinite non-wait loop. Example:
while true do
end
Eventually until the function is terminated or until generally the game reaches its limit of resources it will constantly loop and do no other processes. This is however easily rectified with:
while true do
wait()
end
wait() fixes the problem simply because the thread yielded with wait basically have a chance to resume every other frame - this is still bad anyway because in most circumstances we’re just polling as we are just waiting for something to happen. It has its circumstances, you can read more here. Without it the server just gets stuck and your game basically freezes as its only really handling that.
Servers can also freeze up when your doing some super extreme mathematics for some reason, but depending on the amount of processing power you have from the server depends really on how long it takes. Its likely they have some system which constantly allocates and reallocates the processing power to different operations - but I wouldn’t know.
On a client, when your doing client side operations it comes down to you basically hitting the limit of a part inside the persons device. These can be things like:
The CPU will be the main problem in regards to time based operations and feasibility. It wouldn’t be feasible if a frame took 10 minutes to render whereas 30 frames every second is generally acceptable. Frames can get slowed based (usually) on the amount of pre-render operations you have to do and then the amount of processing power you have. The GPU generally is just the same ideology of the CPU really.
Now RAM and Memory is the complete other spectrum?
What if I don’t have the memory to handle it? Although extremely unlikely as you have virtual memory etc this can happen.
Which is mighty unfortunate but it can happen if you don’t have the specifications.
But yes, the engine can handle as much as its physical components can handle and how much allocated resources it has to handle it. Either that or its just not feasible timing and so its still handling it, just too slowly that its unreasonable.
The one message you should take however is:
You should probably make your game perform well on the worst specifications purely because you get more players and the people with better specifications get to use max graphics.
This is from my own knowledge, I can’t particularly say this is 100% factual.