I have been using terrain sprites in objects and placing them in my rooms. That can be a lot of objects when I'm done. However, I read that using objects like this is a bad thing to do in comparison to using tilesets. Is this true, and if it is, how bad is the overhead?
I'm using GM2 now, but started this project in GMS 1.4.
Think of it in a logical way:
An object has a sprite, which has a collision mask, which is then tested by gamemaker in the background logic.
It also has tons of built-in variables for physics, for movement, for input logic, drawingm etc, etc.
Even an empty object with no sprite and no code has a big impact because of how gamemaker internally works.
Then take a tile. A tile uses the sprite, but no collision checking is explicitly done unless you actually call any of the scripts for those.
They support animations now ( which they didn't in GMS 1.4 ) so there is basically no more good reason to make them an object
if they don't move and don't collide.
Unless you need pixel-perfect collision, I would recommend using a grid containing information about the terrain for your collision.
It will be a lot more effective than testing for collision against 100+ objects if you make your terrain with them.
If you need precise collision, then you can always create an invisible "collision object" which you can place where needed and check for collisions on that object only, while keeping your terrain with tiles or even a background image literally