The GameMaker: Studio IDE comes with a number of handy shortcuts and features that are often overlooked by both new and veteran users of the product. Some of these are purely convenient ways to do things, while others can significantly increase productivity and change the way you work, so here we give a list of the most over-looked, yet most useful methods for using GameMaker: Studio to its fullest.
Okay, you have all read the manual (you have, haven't you?) but did you know you can open it on the relevant page for any function by simply using the middle mouse button? This is very handy for when you are learning GML or for those moments when you are using a function you are not familiar with or haven't used for a while and want to refresh your memory. It's worth noting too that the middle mouse button (or F12 if your mouse doesn't have one) will also open objects, scripts, rooms... basically any resource that you choose to click it on! This makes viewing and switching from scripts to resources to the manual and back again a much easier and intuitive task.
While we are on the subject of the manual, when searching for something, it is often better to use the "Search" tab, rather than the "Index" tab, as this will give you a wider spread of results, which often compliment and fill out the information you require. You should also know that the manual is also visible on-line from the following URL: http://docs.yoyogames.com/
GameMaker: Studio is built around Delphi code, and while this is not the friendliest of bases to add accessibility options, there are a few things available to you to make your life easier. The first is in the Script Editor, where you can decrease or increase the font size using the F7 and F8 keys respectively. The second option is found in the Preferences window, and it is to make the resource tree icons larger, as shown in the image below:
You can also modify the UI skin and set the colours used for the text in the script editors, so if you require a high-contrast display (for example) you can edit these until you are happy with the results.
It may seem an obvious thing, but some people don't realise that you can use CTRL + SHIFT + F top open the Search dialogue. This has been updated recently and now has some powerful filtering options, making it an essential tool to use. Filtering is also available to you for the Resource Tree, and can be activated by simply typing the search word into the search box at the bottom left of the IDE and ticking the "Filter Tree" option. The tree will even be filtered "on the fly" as you type, so you can see differerent content depending on the string entered.
If you have searched the manual and can't find the necessary information to help you with your issue, or it is too specific to a certain platform to appear in the manual, then you can search the online YoYo Games Knowledge Base directly from the IDE too, using the search box at the top-right of the window. This is useful if you are looking for tutorials or guides on how to set up specific targets like iOS, for example.
The various editors in GameMaker: Studio often have multiple ways to do the same things, or have shortcuts for doing something that would normally require a few clicks. Before getting into specifics, you should be aware that ALT along with the character underlined beside any input space in all windows (for example, ALT + X in the sprite properties window) will jump to that input space and highlight it directly. Below we list each editor and a few of the nice features that you may have missed.
The code editor has lots of nice features, most of them available from the buttons at the top of the window (like switching on/off the syntax highlighter), however you may not be aware that you can indent (and remove indentation) using the TAB and SHIFT + TAB keys over multiple lines. Simply select the lines with the mouse (or using SHIFT + Arrow Keys) then hit the combination you require to add or remove indents to all the selected lines.
The code editor also has a function for creating your own code-snippets which you can then drop into any script or code block that you are writing. A code-snippet is a line or two of code that you use frequently, like creating a basic for loop, or adding a comment block, which you have saved to a file and can call up at any time. To create the snippets file, you simply edit the "snippets.txt" file found in the %appdata&/GameMaker-Studio folder. Once you have formatted your snippets (check the examples in the file for the correct syntax), pressing F2 in the editor will bring them up and you can select the one you require. If you have any conditions or statements in the snippet, the first one of these will be highlighted for you in the editor, ready for editing.
NOTE! The "snippets.txt" file is replaced each update currently, so make a backup in a safe location and copy it over after you update GameMaker: Studio.
It's worth a mention too, that you can name code blocks in the object editor using "///" at the start of the block. Any text after "///" will be shown instead of the default text "Execute a piece of code". If you do this for a script, then the script will be shown in the autocomplete of the editor, so you can show arguments. For example:
///scr_create_something(x_pos, y_pos, instance);
That line in a script will show the script name and it's arguments at the bottom of the editor. Note that you can also modify a number of the visual aspects of the code editor from the "Scripts and Code" Preferences page of GameMaker: Studio.
In a previous tech blog, we went over some of the new features that have been added to the image editor, but what about some of the old features? There are a couple of things that seem to be missed by people that are worth mentioning...
You can quickly go switch through the sub-images of a sprite using the 1 and 2 keys on your keyboard - 1 will go to the previous sub-image while two will take you to the next one. You can also use the standard conventions of CTRL + C and CTRL + V to cut and paste anything to and from the clipboard.
The image editor also has a grid tool under the "View" menu. You can toggle this on and off from here (or use CTRL +G), and you can also set the options for it like colour and blending as well as whether to snap pixels to the grid or not. This grid is independent of the transparent background grid and is very useful for aligning shapes across multiple frames etc...
One final thing to note in the image editor, is that when you are zoomed in, you can use the middle mouse button to click and drag the view of the image around easily.
The room editor has been getting additions and improvements constantly over the lifetime of GameMaker: Studio, and this may mean that you have missed some of the extras that have been added. For example, when you click on an instance in the room, it will be shown with a bounding box with "handles" on the corners. Now, I'm sure you know that you can click these to stretch the instance across the room, but did you know that a CTRL + Click will rotate the instance around it's origin?
You can also use SHIFT+ Click to select multiple instances and the either move them around as a group, or use CTRL + C and CTRL + P to copy and paste them as a group.
Another handy feature is the ability to name instances. You may have noticed that when you mouse over an instance in the room editor, you can see a value for the instance at the bottom of the window, like "inst_935E3F02". Believe it or not, that is the name of the instance is a constant to GameMaker: Studio, meaning that you can use it to reference that specific instance in code. You can change this generic instance name to anything that you wish from the right-click menu, making it very easier to have (for example) scripts target specific instances.
There are also a few other things about the general GameMaker: Studio UI that are worth mentioning... Like how you can drag any GMX format file onto it, and GameMaker will automatically add it to the resource tree. This means that if you have a project with some sprites that you want to import, you can simply open the folder and then drag the <name>.sprite.gmx files into the UI. This goes for all the GMX format files, and it also covers any GML files that you have too (these will be added to the Scripts resources).
A recent change that was introduced was to have all the child windows "pop out" of the IDE, which is ideal if you have a large resolution monitor or multiple desktops. However it's not to everyone's liking and so there is an option in the Preferences to switch this off, and there is also an option to have all child windows open maximised, as a lot of people have requested this.
Another overlooked feature that has been added to the IDE is bookmarks. This feature permits you to map a code block, a DnD icon, or a script to any of the number keys from 0 to 9, which you can then call back at any time in the future. To add a bookmark to a position, simply select it with the mouse and then CTRL + SHIFT + <NUM 0...9>, and to recall the position marked, simply press the number key that corresponds to it. You can also access your bookmarks from the "File" menu. You can clear a bookmark by opening it and then doing CTRL + SHIFT + <NUM> on the same number again.
As you can see, the GameMaker UI has a number of tricks and features that you can make the most of to optimise your workflow and generally make your development life easier. And it doesn't stop here! We are constantly striving to make the UI better and add functionality to benefit you, and there are a few things comming to help you even more, including customisable shortcut keys and a re-vamped room editor.