Tom Francis' guide to GameMaker



Make a game with no experience
0:35 - This tutorial is about getting something up-and-running as quickly as possible. This means we won't be learning 'best practices' for working in larger teams or for larger projects.
1:15 - The objective is to get you to have the experience of having created something and having it be fun, and to get there as quickly as possible.
1:40 - A GameMaker game has a bunch of components, which you can see as the folders on the left side of the screen. We're only going to cover the most-basic of these.
1:50 - You must have a Room. Rooms are used for actual rooms, or levels (in a platformer), or mission-select screens.
2:20 - To create a room, just right-click on the Room folder and select 'Create Room'.
2:55 - To save a room when you're in the room-design window, just click the 'green tickmark' button. You can do this without having made any changes to the room.
3:00 - To run the game you click the green 'Play' button.
3:14 - The game runs in windowed mode by default, which is good because it lets us close the game more easily.
3:25 - The first thing to realize about making games is: Nothing happens unless you tell it to. (ex: quitting the game)
3:45 - In order for something to happen in the game, we need an object of some kind.
4:20 - I think we should make a top-down game, because platform games are not as easy to make as you might think. Dealing with gravity is one of the more-annoying parts of platform games.
4:50 - We should make a player object.
5:14 - First we'll tell the game what the player object should look like.
5:15 - Any visual thing is a sprite. Right-click the 'Sprites' folder and select 'Create Sprite'.
5:30 - For any sprite, he starts the name with 's'. So we'll call the sprite 'sPlayer'
5:50 - It's good to start all object names with an 'o', and all room names with an 'r', and all audio with an 'a'. The reason is that everything needs a unique name, so if you have a sprite with the same name as an audio clip, GameMaker won't know which one you're referring to.
6:20 - We're going to draw what the player looks like, so click 'Edit Sprite'. Then go to 'File-->New'. It's OK to stick with the default size of 32x32. Double-click the checkered-grey box to get into the actual sprite editor.
6:50 - The grey boxes indicate transparent sections.
7:28 - After saving the sprite's appearance, make sure to click 'Center' to move the origin of the sprite to its center. This is the point around which the object will rotate.
8:05 - Now we need to create a corresponding object, so right-click the 'Object' folder and select 'Create Object'.
8:10 - Call the object 'oPlayer'
8:20 - To associate the sprite we just created with this object, select the little menu button on the right side of the object-creation menu, and select the sprite.
8:40 - Click 'OK' to create the object.
8:45 - Double-click the room we created earlier to open its editor, and then click once anywhere in the room to place the player.
9:20 - You can then save the room and run the game again and you should see the sprite.

9:30 - Let's make the player controllable.
9:40 - Double-click on the player object to open the window that allows you to specify the behaviors of the player.
10:10 - His goal is to make the player move in response to the WASD keys.
10:30 - He wants this to happen all the time, and for behaviors that are always relevant, you want a 'step' event.
10:35 - Click the 'Add Event' button, then click 'Step', then 'Step' again. A Step is an event that executes every frame of the game.
11:30 - You can click the icons on the right to specify certain behaviors, and that's how he started, but now he writes code directly, and he wants to show you how to do it that way while things are still simple.
12:00 - On the right, click the 'Control' tab, then click the leftmost icon under the 'Code' section, which is the 'Execute Code' button. Drag that icon into the main window.
12:40 - First objective: If the player is pressing 'W', move up.
12:45 - GameMaker's programming language is called 'GML'. It's not as strict as some other languages about syntax.