• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!
  • Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

Question - IDE Room editor instance limitations

So I was doing some tests with GMS2 to see just how many instances GMS2
could handle in one room running all at once before taking massive performance hits
but instead I ran into a limitation with the room editor.

It seems when adding instances in the room editor, the more instances you add
the longer it takes the room editor to perform copy, paste and delete operations.
Once I added up to about 21000 instances the room editor would take MINUTES
to delete just ONE instance. And here is the crazy part, running the game with all 21000
instances I still get a silky smooth 800 fps so what is going on here?

My questions are why does the room editor take longer to delete just one instance the
more instances you place in a room? And why does the room editor seem like it can
handle way less instances than actually being in game?
Normally when using other programs I notice the room editor can handle way more placed
objects than the actual game can.

If anyone wants to know my specs here they are:

CPU: i7 4790K
RAM: 16 GB
Hard drive: WD Red 6TB

If you need more specs than that just ask.


NOTE: I know in most scenarios having 21000 instances in one room is completely
unrealistic, this was just a test I did and it stumps me that the room editor would be more
strained than the actual game itself running.
 
D

Deleted member 13992

Guest
A couple things. Are you running code/animation in your instances? This will have a huge impact on the engine performance when running thousands of instances.

With that in mind, you can sort of imagine that when you're working in the room editor (or ANY game editor), the amount of "checks" every instance needs to do when working in it is greater than when running the game. Is the instance selected or not, that sort of stuff. Internal variables that only make sense when working in the editor. Every instance has to be "ready" to be manipulated any way an instance can in the editor. Not the case at runtime.

In my experience, having worked on 7-8 game engines in my career (most 3d though), "editing" an environment has a much heavier toll on the system than at runtime. It's kind of just how editors work. More data has to be kept track of and manipulated to allow the user the freedom of moving/scaling/adjusting thousand of things. Once you run, two-thirds of that is stripped away.

I agree minutes to delete a single object is pretty excessive though. Sounds like it's brute-force scanning through a huge database to find a single object to do that.
 
Are you running code/animation in your instances?
Yeah I had some code that sets movement speed every so often through an alarm, didn't seem to effect performance much more than the thousands of instances did.
Also every single instance was running that same code. But I imagine if I had every instance running the step event it would take a massive toll.

In my experience, having worked on 7-8 game engines in my career (most 3d though), "editing" an environment has a much heavier toll on the system than at runtime. It's kind of just how editors work. More data has to be kept track of and manipulated to allow the user the freedom of moving/scaling/adjusting thousand of things. Once you run, two-thirds of that is stripped away.
Your explanation makes sense however in my experience using a few different room editors it seems the room editors can always handle way more than runtime can.
Even the 3D ones I have used, although the 3D room editors I used were for modding a specific game and not for game creation.

I agree minutes to delete a single object is pretty excessive though. Sounds like it's brute-force scanning through a huge database to find a single object to do that.
Is that something that should be reported to the bug tracker?

Also I want to mention that the room editor doesn't lag normally with 21000 instances, it's only when you try to
do a copy, paste or delete operation. Moving the room editor camera and zooming in and out is still smooth.
 
Last edited:

rIKmAN

Member
I agree minutes to delete a single object is pretty excessive though.
So is 21,000 instances in a room to be fair! :D
Is that something that should be reported to the bug tracker?
I'm not really sure that it's a bug as such, as like you say yourself it's quite an extreme use case just used to test the limits of the IDE / engine.
However it wouldn't hurt if you attached the project to a report, gave them repro steps and waited to see what the reply was.
 
Last edited:

Nocturne

Friendly Tyrant
Forum Staff
Admin
I would say that the IDE should be able to handle that many instances, or at least, the lag when dealing with them shouldn't be so great (although I suspect some lag is inevitable). Could you please file a bug report and include a link to this topic as well as a link to download the YYZ of the project you're using for testing?
 
Could you please file a bug report and include a link to this topic as well as a link to download the YYZ of the project you're using for testing?
Okay I made a bug report, although the original 21000 instance test I made was actually deleted long before I made this topic, at the time I wasn't thinking about making a report or
making a topic. I was recommend to make a topic of this issue by forum moderator chance.

I however supplied them with a new project file with a room of 13000 instances and it still has the same stalling problem, when deleting just one instance it took 2 minutes in a room of 13000.

I want to apologize I couldn't provide the 21000 instance file like mentioned in this topic.
 
Top