Resources for Learning GameMaker
Some of my favorite GameMaker resources
I started messing around with GameMaker back in Summer 2014 starting from knowing nothing about game programming. The closest things comparable I had done were miscellaneous html and css work and some basic Flash AS2 projects way back around 2007. I found documentation on GML scripting and other topics to be very accessible after some searching.
I’m hoping to add to and edit this post over time so it can continue to be a relevant resource. Below are some of the more useful tutorials and topics I’ve found while working with GameMaker: Studio.
Getting started
Shaun Spalding
https://www.youtube.com/user/999Greyfox
Main platformer demo: https://www.youtube.com/watch?v=IysShLIaosk
Shaun Spalding has a solid series of digestible topic based tutorials. Some are one offs and others have continuity from one to the next. Lots of good information on starting out setting up a platformer and also some useful simple to implement topics like setting up game saves.
TigForums: GameMaker tutorials by Derek Yu
http://forums.tigsource.com/index.php?topic=3142.0
Some of these tutorials may be a little outdated, but the topics are broken down really well. These were written by Derek Yu of Spelunky fame. They’re worth browsing through to find useful things, like how to set up a sprite font and use it in game.
Best Practices When Coding in GameMaker: Studio
http://www.yoyogames.com/tech_blog/75
This one is less programming specific and more of general advice on things to aspire for or avoid in project organization. Opinions may differ and some of this might seem a little abstract coming from the start, but a lot of the info in here is good having in mind before you even begin a project.
Cool specific topics and tutorials
Switch case and state machines
http://gmc.yoyogames.com/index.php?showtopic=532465
Trying to plan out how you’ll program a complex phase based boss or a game element that needs to transition between discreet stages? Wrap your head around handling this in a state machine using a switch() or else you may find yourself in situations where you have overlapping if conditions, or difficulty flagging variables on and off to switch you between your states. Switch states need to be defined as macros (constants) in order to work which some people find tedious, but it’s well worth it for the amount of control and clarity it gives you.
CSANYK – Drawing text
https://csanyk.com/2013/05/gamemaker-tutorial-string-handling-and-drawing-text/
CSANYK has a lot of interesting topic tutorials. I’m only calling out the drawing text one since I’ve referred back to it many times.
Yellow Afterlife GameMaker tutorials
http://yal.cc/category/gm/
The same goes for YAL. Lots of interesting stuff and things you didn’t realize you could do (or you would want to do) until you see them. Dive in!
Starting with gamepads
http://www.gmlscripts.com/script/joystick_get_button
Gamepad deadzones and analog stick setup
https://www.yoyogames.com/tech_blog/89
General topic interesting stuff
Jan Willem Nijman’s presentation on ‘Game Feel’
http://www.gamasutra.com/view/news/207954/Vlambeer_cofounder_shares_advice_on_building_better_action_games.php
Other advice
Search wisely! I find when trying to learn new software for design or now for programming a main early hurdle is just knowing what to call the thing you are trying to do in relation to the environment you’re trying to do it in. Especially in GameMaker, since there are so many built in functions with names that make sense to me in game-speak, once you know what something is called you can much easier find out how to do it. Starting off with “I want to have these things do this, and then go like this!” might be distillable down into a noun or a verb you can search around.
Use that middle mouse button (scroll wheel)! When you’re coding in GML you can click on functions and engine constants with the middle mouse button as a shortcut for bringing up the manual entry for that element. This is great if you know what a function is named but need to refresh yourself on proper syntax or arguments that you can pass through.
R.T.F.M. (in this case, read the frigging-awesome manual). Continuing from the previous point, the manual is full of practical examples of code snippets and some useful suggestions here and there. You don’t need it from cover to cover, but spend some time looking at adjacent functions relating to the task you’re trying to do. I’ve found it very easy to browse and navigate.