How to Learn GameMaker: Studio

GameMaker: Studio is a full game development tool, featuring a level editor, asset manager, code editor, and its own scripting language known as GameMaker Language (GML). Earlier versions of GameMaker were were very basic, and many people will remember them as being mostly for total beginners - to make a game commercially with them would have seemed like a joke. Things are different now, with several commercial successes, including some very high profile games.

Who is GameMaker: Studio For?

The master collection of GM:S features cross platform compatibility for desktop, HTML5, and mobile devices (both Android and iOS). It also has source control integration and monetization options (such as ads and in-app purchases). The total cost of the master collection is around $800 as of the time of this writing. This makes it perfect for:

Anyone looking to do cross platform development

Indie development teams with a small budget

The barrier to entry for GM:S is low due to the inclusion of a drag-and-drop interface. As such, it's a fantastic tool for people with very little programming experience to get their feet wet; this interface is a great way to learn program flow and some basic logic.

Due to its management features, GM:S allows developers to get a very basic game up and running quickly, which is great for game jams and making playable prototypes.

What It's Good At

GM:S is very good at asset management, incorporating assets into code, providing an easy way to modify game object logic, and event-based programming.

Asset Management

Once the developer has a sprite created, adding it to GM:S can be done in a few clicks. After the sprite is imported, modifications can be made from inside GM:S.

Creating a sprite.

Modifying a sprite.

Incorporating Assets Into Code

Once an asset is imported, its properties (the dimensions of an image, the volume of a sound effect, and so on) can be accessed from code, and it can be assigned to a game object. This makes creating game objects very simple, and is great for getting things up and running very quickly.

Modifying Game Object Logic and Event Based Programming

The game object editor is a great learning tool for those new to game development, and provides an easy way to modify game object logic. As you can see from this screenshot, GM:S allows you to write code for specific events:

Modifiying game object events.

Who Is It Not For?

People looking to create a fully featured game with the press of a few buttons. Great games will take time.

Someone who wants to develop the next great MMO. Networking is still relatively new to GM:S, and there are better tools for MMOs.

Programming elitists who demand their language not manage its own memory. GM:S is not C/C++, and isn't the ultimate performance-centric language. (That's not to say performance is bad here, just that C/C++ is still the king of that category.)

What It's Bad At

GML is not an object-oriented language in the strict sense. There are game objects, they have properties, and you can even create parent-child relationships. However, objects have no methods. In order to do an operation on an object, you will need to use its instance ID within a script. This can be confusing at first to those coming from an object-oriented background.

GM:S is capable of 3D, but it isn't the main focus. There is no 3D editor, there's no 3D model importer, and the code for getting 3D to work is fairly convoluted. If you are interested in 3D games, I would advise you to use a different tool for now. In the future, 3D may become a higher priority for YoYo Games (the company that owns GM:S), but at the moment, it's clearly low on the list.

Where Can I Get GameMaker: Studio?

The main site for GM:S is http://www.yoyogames.com/. You can either download the free version or buy one of the licensed versions.

Here's a comparison of the different versions of GameMaker, taken from the YoYo Games website:

As you can see, the free (Studio) version is fairly limited, but it's a great way to see the workflow and layout of the tool, and spend some time learning the language.

Update: The free version of GameMaker: Studio is now the same as the Standard version! For more information, see GameMaker: Studio Goes Free.

The Standard edition is great for solo developers who only plan to develop desktop games; the Professional version is perfect for a small team of developers who are planning to go cross-platform eventually, as they can add the various modules over time after generating some revenue; and the Master Collection is great for small teams who are part of established studios and would like to go cross-platform right from the start of development.

GM:S is also available on Steam, however I would recommend against purchasing it there, as YoYo Games has no way of knowing that you've purchased it, and thus the customer service aspect of owning their product is a bit more of a hassle. Also, they will occasionally offer cheap upgrades for those who already own a certain version of GM:S, and they can't give that same upgrade to Steam owners. Plus, if you buy from Steam then you must be logged into Steam in order to run GM:S, which can be annoying.

Learning GameMaker: Studio

GM:S offers two different ways to make games. The first is called the Drag and Drop interface (DnD for short). It's quite powerful, and allows for some complex logic to be created. However, it's not as powerful as the second option: using GameMaker Language (GML for short). GML is a great scripting language that can do everything DND can, and more.

Getting Started

After you've downloaded the version of GM:S you feel best fits your needs, you should start by checking out the tutorials that come with GM:S. These can be found under the Tutorials tab after you open GM:S.

The beginning tutorials will mostly show you how to use the drag and drop interface, while the later tutorials begin to cover GML. The nicest part about the included tutorials is that they actually add a window to the interface that walks you through how to create each game, so you don't need to refer to a web page - it's all laid out within GM:S for you!

I recommend working through as many of these as you need to, until you feel like you've got a solid grasp of the general workflow and tools that GM:S has to offer. You can find additional tutorials on the YoYo games wiki at http://wiki.yoyogames.com/index.php/GameMaker:Studio_Tutorials including some more advanced tutorials.

For the most advanced learning, you can look at the demos under the Demos tab after you start up GM:S. These won't give you a tutorial window, but they give you access to all the source code used, so you can look through it, run the debugger, and watch what's happening, so you get a good idea how to use their methods in your own games.

The Manual

The manual for GM:S can be found in the Help menu under Contents.... This should be the first place you look for answers to your problems - if you go straight to the forums, people are likely to give you grief for not just checking the manual. There is also an online manual that can be found at docs.yoyogames.com

The manual, from within GM:S

If you search through both the included manual and the online manual and are still unable to find answers, fear not! There is a great community on reddit's /r/gamemaker and the official forums. There is also an excellent site full of indie developers, some of whom use GM:S frequently, over at TIG Forums. These communities are full of helpful people, so don't be afraid to ask your questions!

Extensions

If the built-in functionality of GameMaker isn't enough for you, don't worry; it's extensible! The free version doesn't allow you to use extensions, but any paid version will allow you to.

What Can Extensions Do?

Extensions add new functionality not originally envisioned by YoYo games. Some examples include:

GiiMote - Allows the developer to integrate WiiMote controls into their game by adding functions that poll the WiiMote's state (position and button presses).

Database Interaction via SQL - Lets your game connect to a SQL database, get data back as a string, and then use it in your game. The extension adds functions such as TestDatabaseConnection and ExecuteSQL so you can get the data back in as few as two lines of code.

The one big limitation is that some extensions are incompatible with mobile platforms.

How to Install Them

This should bring up a dialog box, and in the lower right corner you should see a button that says Install. Click it.

This brings up another dialog box with a list of installed packages (probably empty). To the right of that is a button that says, again, Install. Click it.

This brings up yet another dialog box; navigate to the folder where you saved the .gex file, click that, and click Open.

Learning Resources

Indie Tutorials

Chevy Ray's Tutorial List - Chevy Ray is the developer behind the Flash game engine FlashPunk, a frequent Ludum Dare competitor, and the developer of several cool games. He's written several tutorials for GameMaker, and this is his compilation of those that he feels are the best. The tutorials cover topics such as View Scaling, Speed Optimizations, and Parallax Scrolling.

Derek Yu's Tutorial Series - Derek Yu is a member of TIGSource and the developer of Spelunky. This tutorial series is for an older version of GameMaker, but you can still follow along very easily. It's a full walkthrough for creating a side scrolling space shooter; as you build it, you'll learn how game objects work, how to create scrolling backgrounds, how to create sprite fonts, and a host of other great subjects. Easily a must-read.

Other Tutorials and Manuals

Official Tutorials - The official tutorials go over creating several different styles of games (several of them are in 3D, so these tutorials may be especially insightful if that's what you're using GM:S for). There is also a tutorial for creating multiplayer games that I've found to be one of the best on the web for learning how to do multiplayer in GM:S.

I recommend these for people looking for to develop a specific type of game, and wanting to learn the workflow for developing that type of game, but if you're looking for a tutorial for a total beginner, I recommend Derek Yu's.

Also check out the official and unofficial manuals, as they make great reference material.

Going Pro

Several GameMaker games have become major commercial successes, and there are many other polished GameMaker games that are great examples of what is possible with GM:S.

Polished Games

Spelunky - The original version of Spelunky was created with GameMaker; the newer XBLA and new PC version were not. While it's a commercial success, the version created with GameMaker is free.

A Nation of Wind - This game is a hidden gem, and definitely worth checking out.

Dustforce - Released to Steam, this was not a huge success commercially, but it's a great game nonetheless!

Commercial Hits

Conclusion

GameMaker: Studio is great for newbies and pros alike. Its great code and asset management features, combined with its relatively low price tag, makes it great for small teams and solo indie developers who have a decent amount of programming experience, and its accessibility and event and action based drag-and-drop system make it great for those with little or no programming experience.

I hope you enjoyed reading this roundup and now have a good idea of how to get started with GM:S. If you feel I've missed something, or you'd like some more info, feel free to drop me a comment. Good luck with your game development journey!