Introduction
starting a new project
Always choose Drag and Drop for your new projects:

From now on,
file and folder management, and maintaining
iterative project backups (using a version numbering or other control system), is entirely
your responsibility.
rooms, sprites, objects and instances
Rooms provide the "canvases" for the layout of your levels, which can be resized. How you use the room is up to you, whether you decide to make it a huge 2D map (for an RPG game), or a side-scrolling platform level, which is long and narrow. Often students normally include a "play now" and "game over" screen as a separate room, so be aware that the trial version is limited to
5 rooms (unless you have an education license).
Sprites are the graphics that will appear in your game. They could be images, sequences of images, or tilesets (a page of image 'tiles'). In the sprite editor you can define the
collision mask of the sprite - which may be different to the boundaries of the graphic(s). For example, if the collision area of my sprite is limited to my torso, but my arm is 'hit' (in-game), a hit will not register:
Objects are the
blueprints or
recipes for the 'things that do stuff' in your game. Even if you have something that only has 1 job (like a coin in Mario, which has 1 job - to be collected), then you will need to create an object. We can code objects (using Drag and Drop code blocks) to respond to events, and behave in certain ways in our game. The GameMaker game engine gives us a lot of properties that we can adjust for our objects.
Once you are finished coding your Object, you can drag-and-drop it into your room - which actually creates an
Instance of the Object inside the room (even though you may think you've just moved your Object somewhere. You haven't.)
An instance is an occurence of the object in-game. For example, Mario has many hundreds of coins to collect. We only need 1 coin Object - which we can create 100 Instances of. This cuts down the amount of work we have to do. We can also adjust the same properties we used to code our Objects
for individual Instances - so that 2 Instances of the same Object can behave differently.
Because of this, programmers
often refer to Instances as Objects. It's OK if it does happen, particular if there is only 1 instance in the room, even though it's confusing. Finally - for reasons outside the scope of this discussion - please
don't resize your Instance once it is in the room because it is too big or too small. Instead, remove the Instance, then use the
sprite editor to resize the Sprite, then re-add the Object to the room (again) to create a new Instance.