
This is the course promo you see on the landing page.
In this lecture, we make ourselves familiar with the GameMaker interface, and learn about its components.
GameMaker games are structured around events, which are an integral part of objects -- so let's see what they're all about!
Our first step to coding in GameMaker is to learn about functions, which are used to give commands to the engine!
Math is an important part of coding, but you don't want raw values floating around your code! Let's use variables to clean up our arithmetic operations.
Functions are used to give commands to the engine, but you don't want to be running all functions all the time! Let's use conditions to control when a block of code runs.
This lecture guides building a player in game maker, creating a sprite and object, setting up a room, and implementing arrow-key (and wasd) movement with speed-based x and y axes.
The v2.3 update to GameMaker Studio brought a major change to how Scripts work, so here's what you need to do in order to avoid errors
Learn to implement pixel-perfect collisions in GameMaker by designing a collision mask for the player, creating a collision object, and scripting axis-specific checks to stop movement.
Master depth ordering in game maker by using the end step to set each instance's depth to minus its bounding box bottom, making lower y render in front.
Learn to make the player face the mouse by comparing x positions, flipping the sprite, and adjusting animation when moving backward, then prepare for breakable objects.
Create a breakable category and assign bushes, trees, and rocks as children of an all breakable parent to enable unified interaction and collisions.
Create a corner-based selector around a selected object using the mask’s left, right, top, and bottom coordinates. Draw the selector on each corner with correct rotation in the draw event.
Set up collectible resources (apple, orange, sword) with a global items array and an init function that runs before the first room, enabling drops when breaking bushes and trees.
Develop the item drop animation by applying gravity on the z axis, drawing items with a z-based position, and initializing z from object height so items fall to the ground.
Add resources stone and iron, update item data and sprites, duplicate trees to create breakable stone and iron ore, and fix health bar overflow by adjusting masks for the inventory.
Build a stackable inventory in game maker using a ds_list of type and count, add items with a script that increases counts or creates new entries, and render the inventory.
Pause the game with the escape key, deactivate all dancers while keeping essential controls, and display a paused snapshot by copying the game to a surface.
learn to implement inventory limiting in game maker by creating a macro iron size of 12 and updating the add script to return true when added and false when full.
Build an inventory interface in GameMaker with a 12-button grid (two rows of six) at the bottom, calculating positions, drawing hover states, and handling item interactions with the mouse.
Build and display inventory items on buttons by creating a font, drawing item sprites at button centers, and showing item counts, then test in game and prepare for grafting.
Design a crafting UI in GameMaker with a menu of category titles and craftable item buttons, laid out in an array and managed by a crafting button script.
Create title buttons in GameMaker by duplicating the UI font, displaying the title text in a centered, overridden draw method, and using scripts to generate and manage them.
Implement vertical scrolling for the crafting menu in GameMaker by tracking scroll with a scroll variable, adjusting button positions, handling mouse wheel input, and enforcing limits.
Set up item data with name, sprite, and recipe, then render item sprites and names on crafting buttons by drawing the item and its name in the item display script.
Learn to define and display item recipes in a crafting game using a recipe array of ingredients and counts, and render the recipe UI with item sprites.
Learn manual item dropping by scripting removal from inventory on right-click. Spawn dropped items at calculated positions and update the inventory arrays.
Learn to manage inventory by automatically removing items when their count reaches zero and placing new items into empty slots during crafting in GameMaker, using step and end step events.
Develop a hearts-based hp hud in GameMaker, displaying full and half hearts from the top-left, looping for each hp unit and updating hp with left/right arrows until zero.
Implement ai that roams to random target positions and follows the player when in range, adjusting speed and avoiding collisions with other enemies.
Learn to implement item usage in a crafting game by wiring left-click to use items from the inventory, right-click to drop them, and handle effects with a switch.
Create a blessing block in a GameMaker crafting game by crafting from five wood, placing it, and enabling breakable behavior within a breakable parent hierarchy.
Update to placing mode introduces a new angry statue item, its crafting recipe (three storms), and its integration into crafting menu and placement logic, with bug fixes for blessing mode.
Learn to enforce placeable collisions by checking for collisions with the environment, the player, and enemies before placing items in empty spaces, using a collision function and red visual feedback.
Learn to implement juicy feedback by scaling objects in GameMaker with scripts, using x/y scale, scale target, and drawing logic to animate breakables and items.
Implement a flashing color effect in GameMaker using a shader that overlays a flash color with adjustable alpha on top of the normal image.
Apply jewels to player and enemies in GameMaker; implement a scaling animation and color flashes so enemies flash a light color when hit, and the player flashes red when attacked.
Develop a chest system to store items and a new desk interface, enabling moving items between the inventory and desks, opened with the e key.
Build the chest interface in a crafting game by setting up two inventories, creating movable buttons to move items, and using a reusable for loop to generate inventory buttons.
Develop and arrange a chest interface by reading desk and player inventories, calculating grid layout, and creating buttons for each item in two stacked inventories.
Move items between inventory slots using a moving array variable; pick up an item, carry it under the mouse, and drop it into an empty slot, to prevent being unbossed.
Finish touches to the budget system and enable stacking identical items in Gest interface. Fix the empty item bug with a user event and expand inventory with a wooden desk.
Hi there!
This course is all about developing a crafting game, in GameMaker. We'll learn to code with GameMaker Language and develop our game from the ground up!
About the Instructor
Hi, I'm Gurpreet S. Matharoo! I've been teaching game development for years, and making games for longer. I've taught over 5 courses on Udemy, published numerous tutorial posts on my blog, and regularly create free tutorials on my YouTube channel, GameMakerStation. I also work at YoYo Games as the Technical Writer for GameMaker.
About the Course
Whether you're a beginner with no coding background, or a game developer looking to gain more experience; this course will help you get where you need to be. We're gonna go through many practical lessons, learning something new at each step!
Here are some things we'll be learning in this course:
GameMaker Language basics
Player movement with pickaxe
Resolution handling
Breaking objects with pickaxe
Setting up data with arrays and enums
Stacking inventory using data structures
User interfaces
Crafting systems
and more!
This course is based on v2.2 of GameMaker Studio, but includes updated lectures communicating the structural changes introduced in v2.3.
Support
You'll be given a download to the finished project, along with all the resource files used. You can simply use the given images to build the game, so that you don't have to create your own sprites.
I'm looking forward to you joining the course. Let's start our journey!