You could use gamemaker's instance disabling functions to cut down on lag, but they do have some downsides.
By that do you mean the "instance_deactivate" functions? How do they work and what are their downsides?
Yes. They make every object inside or outside a certain region (or all of one object) not exist anymore for all purposes but reactivating until you reactivate them. The upside is that they cause no lag.
The downsides are:
- It's easy to accidentally deactivate something important like a control object.
- You can't do anything to the objects while they are deactivated. eg. You hit a button that makes some blocks disappear. All the ones on screen disappear, but all the ones off-screen that were deactivated will still be there when you go over to them.
- Anything that leaves the screen will 'float' in a deactivated state until you go to them. In this case you would shoot arrows off-screen. Once you move towards them, they all reappear stacked on top of each other. Players could abuse this to one hit kill enemies just off screen. (If you've played spelunkey it had the same effect.)
Another way to reduce lag is with these steps:
1. Make a copy of your level (You can edit it and not save but this is safer.)
2. Delete everything but the collision objects. (You can turn tile view off, but you still have to delete all the other objects. For the sake of this step delete one-way floors and anything else that isn't a boring plain wall.)
3. Make the background a solid colour.
4. Screen shot the level. (You may have to take several and paste them together)
5. Make the screenshot a sprite. (Use fill tool to make the background transparent if you are on GM8)
6. Make a new object with the collision object as a parent and place it in your level.
This makes you only have 1 collision object, which cuts down of the number of object updating each tick, reducing lag. The downside is that you can't edit the level as easily anymore, so make sure you are finished making your level before doing this. You can make some weird shapes that you don't have premade objects for by editing the picture manually though.