Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
GameMaker Programming By Example
GameMaker Programming By Example

GameMaker Programming By Example: Master the development of 2D games by learning to use the powerful GameMaker Language and tools provided by the GameMaker: Studio workspace and engine!

eBook
€20.98 €29.99
Paperback
€36.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

GameMaker Programming By Example

Chapter 1. Introduction to GameMaker: Studio

In the 15 years of GameMaker experience between us, we have both found it to be one of the best tools for teaching design as well as the introduction to computer science principles. The drag and drop interface lends beautifully to the understanding of computer science concepts related to object-oriented programming including sequencing, loops, conditional statements, variables, among others. Moving from the drag and drop approach to coding in GameMaker Language (GML) is logical and the transition demystifies coding. It is also important to point out the importance of iterative design and debugging that people learning game development with GameMaker will become overly familiar with through the process.

By definition, a game is a special kind of program that is run inside a loop that repeats as long as the user has not decided to close the game program. This loop contains code that creates objects that each have their own loops to control animation, movement, actions, and logic statements based on various aspects of what is occurring in the game. The objects are run until the time they are removed from the program. The main loop also contains logic statements that run code based on different possible user input values. An example of such logic would test if the user has pressed the spacebar, and if so, the game will modify variables of the player object so that it rises, and then falls at a certain point. In order for the player to understand what they have done in their game, the main loop contains code to push graphics to the screen and audio to the speakers, both of which are affected by what different game objects are doing.

There are many different ways to create games. Some people choose to write them in native C++ code without any sort of specialized Integrated Development Environment (IDE). However, GameMaker: Studio is a collection of tools contained in an IDE that make the game creation process much easier, by providing various tools and code functions that are specialized for creating games. For example, there is a visual object editor so that the developer doesn't have to define every single property of objects in code, but rather they can select various boxes that define object properties. Objects control nearly every aspect of a GameMaker game. Rather than using an external spritesheet file containing separate frames of animation, GameMaker contains a sprite editor where each sprite in itself is a special type of object that contains the images. All the developer has to do is to set the sprite of an object to the main sprite, which will then provide access to all of the images inside this sprite. The main game loop is run in rooms, where all of the objects are placed, in turn creating the full game. At compile time, everything produced in the project is converted into C++ code, then compiled, so in the end, the developer has essentially written their game in C++, but by using a much easier method.

We will begin with an overview of the different versions of GameMaker: Studio that are available for download. This will be followed by a guide to the User Interface (UI) of the IDE to orientate you to working in the GameMaker environment. In this simple example, you will learn about creating resources (various kinds of assets) and their purposes, naming conventions, and some drag and drop coding among other skills. The IDE is essentially a collection of integrated editing tools used in a programming environment.

GameMaker: Studio is an application used by newcomers to game design and by experienced developers alike, for both personal and commercial purposes:

  • This contains a very clean interface including a fully functional drag and drop programming interface making it very easy to get started creating games. Experienced GameMaker developers typically choose to create games using the text-based coding functionality of the built-in GML.
  • This also contains many high-level functions and components for a variety of things that developers might need done in their game and for a variety of platforms. Examples include networking, Steamworks™ SDK support, in-app purchases, and more for platforms such as Microsoft Windows™, Apple Mac OS X™, Linux™ in terms of desktop and laptops, and Google Android™, and Apple iOS for mobile. Many more platforms are available for use with GameMaker: Studio.
  • GameMaker: Studio has been used to create many commercial games, a varying selection of which you can view at http://yoyogames.com/showcase.

Choosing your version

GameMaker: Studio is available for download exclusively for Microsoft Windows at http://yoyogames.com/studio. There are a few different versions available, each adding more functionality as the price point increases. All of the versions allow you to create games using the game engine. For the most part, the increased functionality relates to publishing your game to different platforms as well as providing some additional features.

The Standard Edition is fully functioning and is perfectly adequate for developing games in GameMaker: Studio. The Professional Edition includes many more features than the Standard, such as team features, early access builds, the ability to purchase additional export modules, and allows the developer to publish games to platforms beyond Windows and GameMaker: Player. The Master Collection contains everything available, which is the Professional Edition bundled with all the export modules. The additional export modules cannot be purchased with only the Standard Edition of GameMaker: Studio.

Whatever version you choose, keep in mind its limitations and what you might need, but do not pay for more than you need. You might purchase the Master Collection and end up only using the additional HTML5 module, making the additional features unnecessary. However, keep in mind that you can commercially publish your games with any version of the IDE, but the Standard Edition will force a splash screen and application name that both say "Made with GameMaker: Studio".

You can always upgrade later, so the Standard version is a perfectly appropriate place to start. Once you've chosen your version, get a license key for it and download the GameMaker: Studio installer and run it.

Tip

The following is a note about GameMaker: Studio licenses. The IDE will revalidate its license key with the YoYo Games servers once a month. However, if it cannot connect to them, you must manually relicense it with a special license file. Read more about this at http://help.yoyogames.com/entries/27068613-Offline-Licence-Verification-for-GameMaker.

The GameMaker: Studio interface

Now that you've completely installed GameMaker: Studio, let's begin learning some of the basics of GameMaker: Studio. Create a new game project by selecting the New tab at the top (after launching it), and choosing your project directory, as well as a name for this, we recommend testGame or something similar. Once your project is created, you should see a window, the GameMaker: Studio IDE, that looks quite similar to the one shown in the following screenshot:

The GameMaker: Studio interface

The left-hand side of the IDE consists of your resources, which is where all your sounds, sprites, rooms, scripts, and other resources can be found. Clicking on it simply selects them, and double-clicking will uncollapse folders and open up the properties of resources. Right-clicking on any of those folders will open a menu allowing you to create a new instance of the resource type. For example, right-clicking on the Sprites folder would give you the option to create a new sprite that you can edit and use in your game. If you right-click on Scripts, you can create a new script. Right-clicking on any of those folders also allows the creation of a new group, which is a subfolder strictly for organizational purposes. If a resource or group is right-clicked on, many more options will be available, such as renaming, editing properties, and so on. At the bottom of the resource tree are the Game Information and Global Game Settings options. The former is like a small notepad that you as the developer can write small notes or reminders for yourself in, but it is not packaged with the game.

The latter, the Global Game Settings option, will allow the editing of many properties of the game. When working with the Professional Edition or additional modules it contains, many additional settings that can be edited for specific targets and SDKs.

Along the top are various buttons, some of which are for creating resources (an alternative to right-clicking the folders on the left of the IDE) and others for game compilation options:

The GameMaker: Studio interface

The green arrow is for regular compilation and testing, while the red one plays the game in debug mode with a debugger attached so as to view variables and other properties of the game as it runs to help you locate problems in your game. We'll teach you more about the debugger in Chapter 9, Wrapping Up. The brush is for cleaning the target, which comes in handy when you want to see if a glitch was caused by compilation issues or a fault in your code. The hot keys for these three buttons are F5, F6, and F7, respectively.

Everything from the green Pac-Man to the white rectangle and inclusive, are the buttons for creating resources. The next button is a button to access the Global Game Settings, mentioned previously. You can always hover your mouse over any of the buttons to see what they do.

The drop-down list all the way at the end of the top bar allows you to choose your target (or the OS for which your game should be compiled), which will vary based on what modules you may or may not have purchased. All will show up in the list regardless of what you bought, but Microsoft Windows and GameMaker: Player are the only ones that will actually work if you use the Standard Edition of GameMaker: Studio.

Additional keyboard shortcuts that you will find handy are Ctrl + S for saving, Ctrl + N to create a new project, and Ctrl + O for opening an existing project.

GameMaker: Studio documentation

One of the most important buttons on that bar is the question mark surrounded by a circle. Clicking on it opens the complete GameMaker documentation in a new window. It is a comprehensive reference for everything about the IDE, its functionality, drag and drop coding, GML coding, and all other aspects of GameMaker: Studio. It is very useful, and you will likely reference it often. This documentation can also be accessed athttp://docs.yoyogames.com/. Additionally, when working in your code editor, if you put your cursor on one of GameMaker's built-in functions or variables, and click your middle mouse button, the documentation page for it will open so you can learn more about how to use it.

An example project

Now that you've got everything set up and you know some of your way around the IDE, let's start with an example game to get started with using GameMaker and to make sure everything is working correctly. You'll first want to create a new sprite, either by right-clicking on the Sprites folder and selecting Create Sprite or clicking on the Pac-Man symbol located on the top bar. This will open a new window that allows you to edit all of the properties of your new sprite. We're going to make a simple sprite that looks like a square.

Tip

Downloading the example code

You can download the example code files from your account at http://www.packtpub.com for all the Packt Publishing books you have purchased. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

Naming convention – resource prefixes

Start with naming it, but don't just name it testSprite or something like that. There are some very important points to be made in naming conventions of resources. It is a good idea to choose names that are related to the resources you are naming. The most important consideration is that your naming should be consistent regardless of the naming convention you choose. If you start using camelCase, always use it. camelCase is where the first letter of each name is lowercase, but every next word in the name has a capital first letter, for example, myLastName or playerHorizontalSpeed. If you always use underscores for naming (and this might be easier since GameMaker's built-in variables and functions use underscores for naming, an example of this would be the variable image_index), then always use underscores.

Also, you must never have spaces in any of your names because in coding, this would cause GameMaker to think they are two separate names and your game will not function properly. It is also good practice to follow and incorporate the resource prefixes. The GameMaker compiler does not recognize prefixes; they are simply part of the name, but all of your resources must have different names, as resource types are not distinguished by the compiler. Using prefixes is an easy way to group your resources though (so using spr_player and obj_player is better than player and player1).

Using the prefixes is also very helpful for you and any other programmers, since using them allows you to easily distinguish resource types. The resource prefixes are what help to distinguish between a sprite named test and an object named test. Also, make sure that you use meaningful names so that you can easily find what you're looking for or figure out what a resource is just by name. Following is a chart of the resource types and suggested prefixes. Eventually, you will have many resources in your games and will need to easily distinguish one from another.

Resource type

Acceptable prefix(es)

Example(s)

Sprites

spr or s

spr_test or s_test

Sounds

snd

snd_test

Backgrounds

bg

bg_test

Scripts

scr

scr_test

Fonts

fnt

fnt_test

Objects

obj or o

obj_test or o_test

Rooms

rm or lvl

rm_test or lvl_test

We recommend you use these prefixes when naming your resources, as they are universal and will help you to stay consistent in your naming. This is not a complete list of resources and prefixes but this table should give you a good sense of the naming convention.

Drawing the sprite

It's time to get started with sprites! Create your first sprite by right-clicking the Sprites folder and choosing Create Sprite or clicking on the Pac-Man icon in the toolbar. As discussed, we suggest naming your sprite spr_square or something similar, so enter that in the Name field. Next, you can select either the Load Sprite or Edit Sprite options. The first allows you to select an image that you already have saved on your computer, so select that if you already have an image of a square premade or prefer to use external programs for editing your sprites. GameMaker supports a wide array of image types including .bmp, .gif, .jpg, .png, and .swf. We're going to go through the built-in sprite editor, but in time, you will probably be using both approaches of sprite editing.

To start making your own images, you'll first have to click on Edit Sprite. Right now, the only thing you need to know how to do is to make a new subimage (more on these later) inside of your sprite. Click on the white dog-eared paper next to the green checkmark (which is the equivalent of OK in all windows and options in GameMaker: Studio). It will ask you what you want the dimensions of the image to be, which carry across all subimages in the sprite. Leave the 32 by 32 default alone for now—we're just making a simple square:

Drawing the sprite

Now double-click on the new subimage that was created, which should be labeled as image 0, as GameMaker: Studio uses zero-based indexing (where the first entry of something, in this case subimages in a sprite, is entry 0), and the sprite editor will open, which should look like this:

Drawing the sprite

The left-hand side of the editor consists of your tools and dot sizes, while the right-hand side is your color picker. Two colors can be held at a time, one corresponding to each mouse button (left and right). As far as the tools, the most important ones would be the pencil for basic drawing, the eraser for erasing, the selection tool to select an area for manipulation, and the fill option to fill in an area with a single color. Hovering over any of these tools tells you their function and hotkey. We're only going to use one of these tools right now. Start making your square by selecting any color from the color picker. Next, use the fill option to fill in the entire grid with your selected color and then click on the green checkmark three times (in the three separate windows of course) to completely close out of the sprite and return to the main IDE.

Creating an object

Now that our sprite is finished up, we're going to create a basic object to put in our game. It is worth pointing out an important distinction here. Sprites are simply graphics to be used in your game while objects are programmed with events and actions in order to function in the game. Without an object, the game is just going to be an unchanging screen. Objects are what control and do everything in the game. Start with creating your object, named obj_square with your method of choice. The following window should appear:

Creating an object

To assign a sprite to your object (which is not always necessary, in fact many objects in your games will not use sprites) select the blue button in the box labeled Sprite and pick the sprite we previously created, spr_square. Don't worry about anything else you see on the left sidebar, we will get into this in more detail later. For now, focus your attention on the first large box, labeled Events. Events are simply things that happen in your game, such as player input or when an instance of an object is created, and they are handled similarly to if statements, and run the associated Action(s). Actions are the same as statements (what should happen based on the event). So one event might be a keypress of the space key, and when that occurs, the player should jump. In pseudo-code for that event, you might say, if the space key is pressed, then alter the player's y coordinate so that they rise. Then, once they've reached a certain point, change the y coordinate so that the player falls. Right now, we shall be putting an event into our game. Select the Add Event button at the bottom, select the Draw button, followed by the Draw menu option. This is a kind of event that is run over and over for each instance until the instance is destroyed (removed from the game), and is used for rendering. You can display whatever you want: shapes, text, sprites, and much more.

Another event, the Step event, is similar to this (it runs over and over) but it does not control rendering. You shouldn't use the Draw event as a replacement Step event though we use both together (or just one of them if you only need one of them).

Now focus on the right sidebar. This is where all of your available Actions are, and whatever you drag into the Actions pane will be run when the associated event occurs. Select the draw tab at the bottom of the list of tabs on the right and then drag the Draw Self box (the first action) into the Actions window. This will draw in the room the sprite of the instance of the object that is calling the function. You do not always need to use the function, but we do need it now because we have manually included a Draw event. If we don't include it, then the square won't be displayed; only whatever we tell it to display in the next step will be displayed. If you manually include a Draw event in your object, it will not draw its sprite and will only draw what you tell it to draw inside this event. So if we don't tell the object to draw itself in this event, you will see no squares drawn. Now, drag the Draw Text box, the fourth option or the first in the second row, into the Actions box:

Creating an object

This should open up a box that looks like the one in the preceding screenshot where you can edit the arguments that you pass to the Draw Text function, which include, in this case, the text itself and the x/y coordinates where you want to draw the text. Edit the text field so that it holds, Hello, World! (no quotes) but do not enter anything into the x and y fields yet—there is something unexpected about these.

Coordinate planes in GameMaker

Typically, on a coordinate plane, your x value would increase as you move right and your y value would increase as you move up. This stays true for x, but not for y. For y, the value will increase as you move down, meaning that the fourth quadrant, which usually holds negative y values, will hold positive y values, and the first quadrant, usually holding positive y values, will hold negative y values. This is a very important note to remember when thinking about where things will be placed in your game. Although, do know that the room only exists in your fourth quadrant, and so what is shown on your screen is also only the fourth quadrant. However, everything can be placed anywhere, so you can actually place objects and whatever you draw at negative coordinates, but of course, either none or only a portion of whatever you have placed will be shown in the game window. A third (or z) axis does exist; it is called depth and refers to the placement of objects in your game in terms of being above and below each other. You will learn about this in depth in the next chapter. Here is a simple coordinate plane to explain this:

Coordinate planes in GameMaker

Now that you know this, we can resume passing arguments to the Draw Text function. For this example, we are going to have a room with dimensions of 1024 by 768 pixels, and we want this message to appear in the middle of the room, so we're going to pass an x value of 512 and a y value of 384 to the function. Do not select the Relative checkbox, as what this would do is have the message appear at (512, 348) relative to the origin of the square object, which, unless we put the object exactly in the top left corner of the room (which we won't), will have the message display somewhere not in the middle. Select the OK button twice to get back to the main IDE.

Creating a room

We're now going to create one more final resource, and that is a room. Without a room, the game will not compile, so you must always have at least one room, even if it is completely empty. A room is where your game takes place and where your objects are placed. While your objects control the mechanics of your game, they have to be placed in a room for them to actually be used. Create a room with your method of choice and name it rm_main or something similar. Many games contain sandbox or testing rooms that the player wouldn't have access to, and are just for testing various parts of your game. Even though we only have one object in our game and aren't really testing anything, you can think of this room as a testing room:

Creating a room

The default dimensions, which we will be using, are already set, as is the room speed, or how many times per second each object in the room runs its code. The room speed of 30 is perfectly fine for us right now. Select the objects tab on the left sidebar, and the only object we have, obj_square, will be already assigned to your left mouse button. Click anywhere in the room to place this object, and place more than one. For this example, 10 would be a good number. Click on the green checkmark when you are done, and you will have finished creating your first game in GameMaker: Studio.

Testing your game

Only one step is left, and that is compiling and running your game. Press F5 on your keyboard or click on the green arrow on the top bar. This will begin the compilation process and then run your game. If everything worked correctly, then you should see a game window that looks similar to this, but with the squares wherever you placed them and in whatever color you chose for the sprite:

Testing your game

If your game window doesn't look like this, then check whether you followed all the instructions correctly (such as choosing the right event and the right parameters for your Draw Text action). You might want to check it with the sample code included with this book to ensure that everything is correct. If that doesn't work, perform a clean build with F7 to make sure your next compilation will start completely fresh so that any compiler-induced errors will not occur. If both of those failed to help you, look at the compiler window at the bottom to see if it tells you anything about errors:

Testing your game

If none of these options work, then you might need to perform a fresh install of GameMaker: Studio. YoYo Games has provided an excellent guide for this, which is located at http://help.yoyogames.com/entries/37903916-How-to-perform-a-fresh-install.

What's happening here in the game is that one instance of the message Hello, World! and one instance of obj_square are being created for each instance of the object that you placed in the room. The top-left corner of the message is where the coordinates we put in earlier are applied, which is why the message isn't precisely in the center of the room. The reason that you only see one instance of that message rather than many is because we told all the objects to display a message at that exact location. In turn, all of these instances of the message are actually overlapping directly on top of one another.

Summary

Now that you have finished the chapter, you have a good understanding of the GameMaker: Studio interface. You have learned what many of the buttons on the main interface do; how to create and name resources including sprites, objects, and rooms; how to add events and actions to your objects and assign them sprites; how rooms and their coordinates work; and how to compile your games.

Review questions

It's always good to be asked questions so that you can be sure you comprehend everything you have read; so, here are some review questions to go over. If you can't figure one out, that's a sign that you could benefit from more reviewing of the chapter:

  • What are examples of common naming conventions used for the various resources available in GameMaker: Studio?
  • How do you open the documentation for GameMaker: Studio and what is it useful for?
  • What is the difference between the green play button and the red play button when it comes to compiling and running your game?
  • How do coordinate planes in rooms here vary from the Cartesian coordinate system (regular mathematics)?
  • What are events and actions and how are they related?

Quick drills

It's also good for comprehension to apply the skills you learned in different ways, so here are some little challenges that you can try out to make sure you understand how to perform the tasks you learned:

  1. Edit the sprite in your spr_square and play around with some of the other tools in the editor to modify your original image (your final outcome doesn't even have to be a square); just rename the sprite to reflect this, as with your object.
  2. Play around with some of the other actions on your obj_square to make it do more rather than be displayed and print text. Try something and immediately test it. It will become good practice to test your games often in order to discover errors where they originate. If you add ten features and discover a bug, you don't know where it came from—but if you add one and get a bug, you know where your problem is.
  3. Create a new project named testGame2 or something like that. It will be a clone of the original example, but you're not going to reread the instructions in the chapter or read them from your example game. You're instead going to see if you can recall how to do everything from memory. If you can't recall something, review the chapter to make sure you are comfortable with the content.

Remember that all of these drills and questions are for your comprehension and you're good, so do them—it only helps. With that, this chapter concludes and hopefully, you learned a lot about using GameMaker: Studio. The next chapter will cover the creation of a more complex game with which the player interacts. It will be an escape the dungeon game from which you will learn all sorts of components of programming games in GameMaker: Studio, much more so than you already know about.

An extra note that you might find helpful—GameMaker saves backups of your game by default in your Documents\GameMaker\Backups\<project name> folder. You might find that it saves them far too often and does not save enough, so under the File option in the IDE's top bar, select Preferences, and the left pane will allow you to specify some backup-related options (frequency, location, and amount). Backups are useful if you accidentally break your game and need to go back to a point where everything worked. It might be helpful to make a copy of a working project alongside using the built-in backup system.

Left arrow icon Right arrow icon

Key benefits

  • Rapidly develop games using the powerful yet easy easy-to to-use GameMaker: Studio engine
  • Comprehensive: This is a comprehensive guide to help you learn and implement GameMaker’s features.
  • Go through step-by-step tutorials to design and develop unique games

Description

This book is excellent resource for developers with any level of experience of GameMaker. At the start, we’ll provide an overview of the basic use of GameMaker: Studio, and show you how to set up a basic game where you handle input and collisions in a top-down perspective game. We continue on to showcase its more advanced features via six different example projects. The first example game demonstrates platforming with file I/O, followed by animation, views, and multiplayer networking. The next game illustrates AI and particle systems, while the final one will get you started with the built-in Box2D physics engine. By the end of this book, you have mastered lots of powerful techniques that can be utilized in various 2D games.

Who is this book for?

If you have at least some basic programming experience of JavaScript or any other C-like languages, then this book will be great for you. No experience beyond that is assumed. If you have no game development experience and are looking for a hobby, are an experienced game developer looking to master some advanced features, or fit anywhere in that spectrum, then you will find GameMaker: Studio and this book to be very useful in helping you create exciting games.

What you will learn

  • Understand the GameMaker: Studio interface and tools to quickly create the various assets used in your games
  • Translate some of the GameMaker: Studio drag and drop functions to the GameMaker language
  • Create games with random elements for exciting gameplay
  • Use the basic GameMaker file I/O and encryption systems
  • Utilize the GameMaker networking functions to create multiplayer games
  • Give AI routines to your enemies to make challenging gameplay
  • Create particle systems to give your game exciting graphics
  • Understand the various debugging techniques available in GameMaker: Studio
Estimated delivery fee Deliver to Latvia

Premium delivery 7 - 10 business days

€25.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Dec 28, 2015
Length: 212 pages
Edition : 1st
Language : English
ISBN-13 : 9781785887963
Tools :

What do you get with Print?

Product feature icon Instant access to your digital eBook copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
OR
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to Latvia

Premium delivery 7 - 10 business days

€25.95
(Includes tracking information)

Product Details

Publication date : Dec 28, 2015
Length: 212 pages
Edition : 1st
Language : English
ISBN-13 : 9781785887963
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 94.97
GameMaker Cookbook
€36.99
Gamemaker Essentials
€20.99
GameMaker Programming By Example
€36.99
Total 94.97 Stars icon
Banner background image

Table of Contents

10 Chapters
1. Introduction to GameMaker: Studio Chevron down icon Chevron up icon
2. Your First Game – Escape the Dungeon Chevron down icon Chevron up icon
3. Introducing the GameMaker Language Chevron down icon Chevron up icon
4. Fun with Infinity and Gravity – An Endless Platformer Chevron down icon Chevron up icon
5. Saving and Loading Data Chevron down icon Chevron up icon
6. A Multiplayer Sidescrolling Platformer Chevron down icon Chevron up icon
7. Programming a Scrolling Shooter Chevron down icon Chevron up icon
8. Introducing the GameMaker: Studio Physics Engine Chevron down icon Chevron up icon
9. Wrapping Up Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
(2 Ratings)
5 star 0%
4 star 50%
3 star 0%
2 star 50%
1 star 0%
Seth Brady Feb 18, 2016
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
It's a good book with somewhat straight forward explanations for the beginning GML programmer. I say "somewhat", because there are a couple of incidents early on that aren't explained clearly and made continuing a little hard. I'm saying this as a someone who already has experience with C++, Java, and a little GML. Thankfully, examples for all the code is available on the publishers website. Overall, I think the book is worth the price and would recommend it to anyone looking to learn GML and Game Maker.
Amazon Verified review Amazon
Alyssa Apr 06, 2016
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2
Difficult to read very choppy and bland writing.This is the 7th book on GML that I'm reading and so far it has been the least enjoyable to read. It is almost as if the writer just listed a bunch of facts and crammed them into long paragraphs then moves on...kind of confusing, hard to explain.Only because I already set a goal to read 10 GML books by the end of this month, will I continue reading this book it is that difficult to follow.There are better books if you only want to read a couple to learn GM:S. Pretty munch any other one except the apprentice/companion books because they are too obsolete.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact [email protected] with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at [email protected] using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on [email protected] with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on [email protected] within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on [email protected] who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on [email protected] within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela