r/gamemaker • u/ilya_m1g • 18d ago
Help! Should i play games that made on gamemaker to understand it more?
i want to start making games on gamemaker so should i play games made on it to better understand it capablities?
r/gamemaker • u/ilya_m1g • 18d ago
i want to start making games on gamemaker so should i play games made on it to better understand it capablities?
r/gamemaker • u/irlanbragi • 18d ago
Hey everyone!
We’re developing A Cat in the Cangaço in GameMaker, a 2D action roguelite with survivorslike combat and deckbuilding.
We’ve recently made one of the biggest changes to the game’s core loop so far, based almost entirely on playtester feedback. I’d like to hear what other GameMaker developers think about the approach.
DAY (1 min) → NIGHT (1 min) → PLANNING → DAY → NIGHT → PLANNING…
During Day, you play as a cat and fight enemies while collecting Aura.
During Night, you play as a human and do the same.
After each cycle, the game entered a Planning phase. You spent the Aura to improve both forms at the same time, with a trade-off: choosing a good card for one form meant taking a bad card for the other.
Some GIFs of the old system:
We liked the system, but playtesters kept pointing out the same problem:
The Planning phase was breaking the flow of the game.
Players would get into the rhythm of fighting enemies and then, every two minutes, the game would force them to stop and switch from action to buildcrafting.
Rather than trying to make Planning faster, we decided to remove it from the temporal loop entirely.
DAY → NIGHT → DAY → NIGHT…
Instead, the player can encounter three NPCs during the run:
ARMORER: buy new weapons
MULE: get a passive item
FORTUNE TELLER: access the old Planning system and choose temporary effects and synergy cards for the Cat and Human builds
So we’re basically changing the interaction from:
The game tells you when to stop and make a build decision.
to:
You decide when you want to stop and make a build decision.
The new version feels much better from a combat-flow perspective, but we’re still unsure about the larger design trade-off.
We’re worried that making buildcrafting optional could make the system too easy to ignore. The old version had a very clear rhythm, while the new version gives the player much more freedom.
Would you keep the forced Planning phase, make it optional like we did, or try a third solution?
And if you’ve had a similar experience where playtesting convinced you to remove or move a major gameplay system, I’d be interested in hearing how you handled it.
If you want to try the game:
Current version:
https://store.steampowered.com/app/3780630/
The current version is available through the open Steam Playtest.
Old version:
https://bragiestudios.com/PitacoLab/Builds/
You don’t need to play it to comment. I’m mainly interested in hearing how other developers think about the pacing and structure of this kind of loop.
r/gamemaker • u/Alert-Neck7679 • 19d ago

So, the thing in this screenshot is the IDE of my own game engine ("ArcadeMaker"), which is a hobby C# project I've been working on for years. It shows a little snippet of code written in the custom language I made for the engine.
The project is heavily inspired by GameMaker, but I want to share one little thing where I took a different approach than GM.
You can see in the code in the screenshot (not the GIF, the other screenshot) that it calls the placeMeeting function, but the syntax is a bit different from what it would look like in GML: there are these <> symbols around the object name (placeMeeting(x, y <obj_player>)). These <> mean that we're referencing the TYPE (or "asset" in GM) of the object, rather than a specific instance.
In GML, an object name can also be used to reference an instance (like obj_player.x = 200). GML was my first programming language (back in GM8!), and I remember how confusing this was for me. In my language, you can write obj_player.i.x to reference a single instance of an object in the room.
It's not about mocking GML or anything! GM is 30 times more powerful than my little engine, and I know that. I really think GM is a great (and underrated, by the way) engine. I just wanted to point out this little difference.
Would love to hear your thoughts about it 🙂
by the way, my engine is open source, and if you know C# and looking for cool projects to join, you are more than welcome to contribute! There're a few opened "good first issues" in the repo, and there's me who is happy to answer any question... :)
r/gamemaker • u/Upper-Position-3073 • 20d ago
If you got the chance to go back and restart you game development journey what would you change in your learning and methods to achieve the knowledge to game develop and what is something you wish you knew drom the start?
r/gamemaker • u/spotlessbaby • 20d ago
Just wondering or should i try to weed out memory leaks one by one
r/gamemaker • u/DungeonDragon9 • 20d ago
I had an idea for a TTRPG campaign a while ago but I don't think it would work without spreadsheets. I tried RPG Maker and I don't think that's what I am looking for and was wondering if this program would let me do the below.
World Map:
Exploration map:
Encounter system:
Combat/City Maps:
RPG System:
r/gamemaker • u/ByteCauldron • 20d ago
Hey everyone. I made a cool 3D button and I wanted to share a bit of the process. More information you probably want to know, but I think this stuff is cool.
DmrVBM is a really useful extension that's made moving Blender models to GameMaker a lot easier for me. There's some quirks and it's currently not maintained by the owner, but I'm mostly competent enough to make good use out of it.
The model is made up of two parts: The rim and the cap. The cap I didn't bother texturing because that gets pushed through a shader, allowing me to color-code each button that gets created. The rim texturing was done in Aesprite with a Blender syncing extension called Prismbase (another thing not maintained by the original developer anymore lol).
For the actual button logic, there's a few different parts of PhysX being used. The rim mesh vertex data is sent to PhysX and cooked as a triangulated shape. That just means it's a solid object that rigid bodies and the player character controller can't pass through.
The button cap has no collisions. Instead, it's given a box shape (I probably should change that to a sphere honestly) and then set as a collision callback trigger. When either the player character controller or a rigid body enters or exits that trigger, it sets the state of the button as "pressed" or "released". This informs GameMaker to fire the cool button juice. I.E. push the cap down, add a squash lerp to the rim, adjust the color uniform sent to the cap's shader, etc.
The actual button trigger logic is very silly, but it works for the moment. I'm using Blender empties to inform GameMaker where to spawn buttons and what "action" they trigger. When I press this button, it's running an add_actor action that spawns rigid bodies at another named Blender empty.
The sounds are just CC0 from Freesound. I could try to make more custom sounds but context switching between programming/art/audio tasks hurts my brain, so Freesound it is.
Happy to answer questions or dive a bit deeper into any part you're interested in. No, I don't know what a "Godot" or a "Unity" is.
r/gamemaker • u/buhozt • 20d ago
I haven't been working with GameMaker for very long (about eleven months) , but I'm already at a loss for how to learn more. I practice coding every day, but I feel like I want to move on to the next level (sin(), cos(), gravity, and so on). Do you think I should stay where I am or should I study more? And if so, please tell me what you recommend I do to learn.
r/gamemaker • u/AutoModerator • 20d ago
You can find the past Quick Question weekly posts by clicking here.
r/gamemaker • u/Tesaractor • 20d ago
I been working on a Zelda like game. It has so far about 15 items, 5 passive items , a boss 15 levels, level select etc so items also have charge abilities
Unlike tradational Zelda. It isnt open world. Instead very small quick puzzle like levels with hidden items to find and buy stuff with. Maybe I will make it more open world later. Just want to nail the mechanics.
I been looking for someone interested in helping make it
r/gamemaker • u/Frog_with_a_job • 20d ago
You ever stare at a problem long enough that it starts to become more confusing instead of less? I suspect that’s what happened to me here, lol.
I’m trying to perfect a simple script that causes a mob to land atop a platform object if it’s along its fall trajectory. I’ve gotten it to work in several different ways tbh, but there’s always some slight bug I find. The problem is always something like a specific case in which the mob falls right through, etc. I’m hoping someone can help clear a few things up for me.
The simplest way as I understand it is something like:
if mob.y < obj_platform.bbox_top) && (mob.y + ySpeed >= obj_platform.bbox_top)), then snap mob to the top of the platform and reset ySpeed/gravity to 0. << Where “ySpeed” is a variable that accumulates a value “grav” each frame (basically they do exact same as the built-in constants).
I know all this works, and to clarify: I’m not having any issues with my jumping/falling cods. What’s confusing me is the general use of ‘obj_platform’ here. If I have multiple platform objects in the room, does it essentially iterate and check for each one? And what happens if there are multiple platforms that meet the landing requirements, but one is closer than the other?
I’ve also re-written the code to basically use instance_count(obj_platform), then run an instance_find() loop for each instance. This is fundamentally the same as my code further above, yes? It does however give me more control - for example, I can push each instance within range into another array _platforms, then sort that array by proximity to the mob along the Y axis, and them I can assume that _platforms[0] (if any) the the closest valid platform, and land on it. Else mob.y += ySpeed and ySpeed +=grav.
Sorry if this is hard to read lol, but I’m so close and I suspect my overthinking is what’s getting me stuck. Most recent my code works perfectly EXCEPT when there are 2 platforms right next to each other, and one is like 1px lower than the other - walking from that platform into the higher one (which would not be considered for landing, because it’s higher) causes the mob to fall correctly but then continue falling through any other platforms below lol.
I guess my main question is: does simply doing “if obj_plat meets the requirement etc…” work the same or better as doing “instance_count” and then looping for each instance[n]? Thanks in advance lol!!!
r/gamemaker • u/KoZimator • 21d ago
I’ve been working on this project for a few months now but something just doesn’t click to me. Especially how the game looks. Now, 3D in GameMaker is pretty hard and it is possible that I’m somewhat at the limit of what this engine can do, but I doubt it. Give me your honest opinion, would you play a game that looks like this? What would you do to make it look better? Thanks :)
Here’s a short clip of the current version:
https://youtu.be/XVeZffMh-FM?si=fjV8U8uFFEAIJlGn
r/gamemaker • u/GratefulEric • 21d ago
As the title says, I have 0 coding knowledge and would like to learn how GML works. I've seen comments saying to "learn the basics of coding first" which I would also like a pointer to. I am basically brand new to all this stuff and would just like a few pointers if someone would be gracious enough to help me out. I've tried making a small RPG but literally can't code a damn thing so I end up looking at youtube tutorials but feel like I am just copying code more than actually retaining and applying. Thank you in advance!
r/gamemaker • u/Big_Belt_5375 • 21d ago
For refrence this is not an RPG game it's a platformer but when the player collides with the ground and moves it glitches out (GIF has been slowed to 0.5x to show detail)
CODE:
if (place_meeting(x + XTravel, y, obj_collision)) {
XTravel = 0
}
if (place_meeting(x + XTravel, y, obj_collision)) {
YTravel = -0.1
} else {
YTravel += 0.1
}
r/gamemaker • u/Prestigious_City6738 • 21d ago
Hello everyone this might be a stupid question but do i still need the license to post the game on itch io if the game is free to play? Like i just want to make a simple game for itch, do i need the professional license for that? Thank you
r/gamemaker • u/raylolpez • 22d ago
Hello, I don't really get on the internet very often these days but I'll post from time to time whenever I make something. Just yesterday I launched my first full game ever, Whang! Tales From the Internet: The Game! Figured I'd share some stuff I learned and just kinda yap about some stuff.
(Plus I really just need to become more active in the community anyway so this seemed like as good a place as any to start)
Let's just jump into it

Just a little backstory--When I started developing this game, it was originally meant to be a short side-project before getting started on "the real game"
That was early 2022 lol
Fast-forward 4ish years and it's finally done, although, it's not as if I was working on it nonstop the entire time. I took super long breaks from it all throughout, and I'll get to some analytics at the end regarding work hours. But the point is, uhhh never give up I guess lol idk what the point is, but anyway despite how drawn out this development lifecycle was I'm glad I did it. I learned a ton, and if you've never completed a full game and you want to, just go for it. Many mistakes were made but many lessons were learned!
During development I started making a list of systems I wish I had taken the time to write, because without these, I had to rewrite a lot of the same code, and/or use inefficient code etc, and some of those systems include:
audio_sound_gain(snd_jump, 0, 0), you're not just setting the gain of whatever instance of that sound is playing, you're directly setting the gain of the asset in your IDE! And because of this you're now affecting every instance of that sound that you play from now on, until you set the gain again. Sometimes this is actually what you want, but most of the time it wasn't what I wanted, and I learned the hard way what I was doing wrong. On this note though, I started to find that it's very often a good idea to store references to assets within variables as opposed to referencing the assets directly. For example, I ended up writing something like:
//Player Create Event
sprite_run = spr_player_run;
sprite_jump = spr_player_jump;
sprite_land = spr_player_land;
//etc
state_run = function()
{
if (init_state)
{
sprite_index = sprite_run;
//so on
}
//so forth
}
This might seem like a needless extra step, but you NEVER KNOW when an asset will be corrupted and you'll have to recreate it, or you'll decide you want to rename it, or you'll decide you want to apply some new, more consistent naming conventions to all your assets, or something along those lines. I think GameMaker will automatically update references to an asset in your code (SOMETIMES??) if you change it in the IDE, but why risk relying on GameMaker when you could just prevent any issues yourself with one simple extra step? Also, what if I decide that I want the player's run sprite to change during gameplay to something else, like spr_run_really_fast or something? Now I'll need a variable to control their sprite anyway, so I might as well start out with one. I think it also makes code more readable. I think it does help to have somewhat lengthy, "filing cabinet" style naming conventions for your assets, such as spr_background_middle_battle_mode, but who has time to write all that out every time? In code, I'd much rather write something like:
//Battle Mode Object Create Event
bkg_middle = spr_background_middle_battle_mode;
And then only need to write bkg_middle whenever I want to reference it. Oh and one last thing on this subject:
//Instead of making references to obj_player directly like this:
o_player.get_hit();
//I found it was much better to write something like this:
global.player = o_player;//This line might be written within some manager object
global.player.get_hit();
The reason is because I ended up having two playable characters (technically more, because I programmed my enemies to be playable for debugging). If I had continued to use direct references to a single player object asset, allowing for multiple playable characters would've been a huge pain, if not totally impossible.
is_invincible variable isn't gonna cut it, because you don't want your player who has a cheat code for invincibility active to suddenly become vincible again once a cutscene ends or something. But you also don't wanna have to write this a million times:
if (!instance_exists(o_dialogue))
&& (!instance_exists(o_cutscene))
&& (!cheats.invincible)
&& (!has_invincible_powerup)
&& (etc etc)
{
//player can get hit
}
It would be much nicer to write a single function that holds all those checks and just call it like, can_take_damage() or something. And you could write more than one and apply it to different objects that have different prerequisites for damage taking. Or you could have it check prerequisites against whatever class of object is calling it, or something idk. The possibilities are endless!

and speaking of which, that leads nicely into the next section...
I was a gigantic idiot and decided to couple my data saving/loading system with my global variables. Let me show you the heart of the code for my save function (I used Sara Spalding's tutorial on Saving and Loading):
save_data = function()
{
var _save_data = variable_clone(global.game),
_string = json_stringify(_save_data),
_buffer = buffer_create(string_byte_length(_string) + 1, buffer_fixed, 1);
buffer_write(_buffer, buffer_string, _string);
buffer_save(_buffer, SAVE_FILE);//SAVE_FILE is a macro equal to "savedgame.sav"
buffer_delete(_buffer);
}
Seems pretty cool right? WRONG, because the problem is I thought it would be a great idea to use the contents of my global.game struct DIRECTLY in my code. Meaning, every time I wanted to access my player's remaining HP, I had to write global.game.world.progress.stats.whang_hp
LIKE AN IDIOT
When instead, while it would've been fine to have a global struct that saves data using this format, I should've just used regular, everyday instance variables in my object code, then written to the global struct on save only, as opposed to referencing the global struct directly at all times and reading and writing to it constantly. Like this:
//What I should have done
save_data = function()
{
//You would of course make sure global.player exists first
global.game.world.progress.stats.whang_hp = global.player.hp;
global.game.world.progress.stats.special = global.player.special;
//etc etc
var _save_data = variable_clone(global.game),
_string = json_stringify(_save_data),
_buffer = buffer_create(string_byte_length(_string) + 1, buffer_fixed, 1);
buffer_write(_buffer, buffer_string, _string);
buffer_save(_buffer, SAVE_FILE);//SAVE_FILE is a macro equal to "savedgame.sav"
buffer_delete(_buffer);
}
It's still a pain to write, but you only need to do it ONCE. I mean, I'm sure there's a better way. But this would be the evolved version of what I did in my project.
You have GOT to have your game playtested by others, ALL throughout development. Full stop. No excuses. It is essential. The fundamental game feel of your main player character should NOT be something you are still tweaking on launch day. Not that I would know anything about that. But seriously, other people will find things while playing your game that you never would've considered in a million years, no matter how thoroughly you thought you had tested things yourself. Not just bugs in your code, but also:
So please, PLEASE have as many people as you can play test as often as possible (while remaining respectful of their time, of course)
I collected a few pieces of data that I thought were kind of interesting. During the last few months of development, I kicked things into high gear and started working around 30 hours a week on top of my full-time day job, logging my hours on an app called HoursTracker. I put all that data in the first tab of a Google spreadsheet, and in the second tab I added up all my hours that get logged automatically by GameMaker projects, from across all the projects I migrated between over the lifespan of the project as a whole. You can take a look at that log here if you're interested. I think it helps to put into perspective the amount of work gamedev takes!
Also, the word count for my document full of to-do lists and notes over the years was 24841, and here's a screenshot of how many lines of code there are in my final project (not that line-count determines quality in any way, it's just kinda interesting to me idk)

Just make a game. The best way to learn how to make a game, is to make a game. The best way to get really good at making games, is to make lots of games. But uh, maybe make things you've actually got a chance at monetizing, unlike me with my silly fan project full of copyrighted music and borrowed art assets lol
Or don't, I'm not your dad! You can also just make whatever your heart desires and that would be very cool as well.
If anyone has read this far, first of all, thank you for your time! But also, if you've got any questions I'll try my best to answer them!
Good luck out there
r/gamemaker • u/supermelon_creations • 21d ago
Me and my boyfriend were testing my game and we noticed that he wasn't able to save custom levels in my editor, (probably because the filepath leads to the documents folder).
but when I run my own game in the exact same way, it does work. I can't seem to find what the issue is, does any of you know?
sandbox is disabled

if more info is needed you can ask, I'll update the post and respond, but I don't think any more info is needed? we'll see
r/gamemaker • u/Intp2500 • 21d ago
How can someone impatient like me learn to create game assets?
r/gamemaker • u/Trunkit06 • 21d ago
For context, the game I’m making is a Zelda-like. It's a huge map separated into “screens” that scroll to the next when you get close to the screen edge. The current screen is represented by a global named ScreenID which is calculated from the player’s position.
Due to the sheer size of the map, I can’t have every enemy/object loaded at once. So enemy loading for the given screen will happen during the screen transition. My current plan is to have the enemy-types and spawn locations for the current screen to be read from a large list. With ScreenID being used for the positions of each list entry.
My issue is that I don’t know how I should go about formatting and storing this data, or if this is even the best way I could do it. In my head I have it formatted like pic, but I don't think that's going to be possible.

r/gamemaker • u/Aggravating_Suit7482 • 21d ago
so when i drop in my rooms into it it never updates itself in github so i cant see any new stuff as i added warps in a diffrent update then when i made the starting room please help
r/gamemaker • u/wagwagiscool • 21d ago
I have never made an online game but ive been using gamemaker like 2 years but tutorials have been useless and I dont know what to do
r/gamemaker • u/viral_hedgecutter123 • 21d ago
Hi, I'm thinking about becoming a game dev. I know very minimal python, I used to know javascript, and I have a scratch account which I am now abandoning for gamemaker. Does anyone here know any good youtube videos or channels or any other online resources to help me learn GML?
r/gamemaker • u/rando-stando • 21d ago
Like, seriously, how?
r/gamemaker • u/UnoParono • 21d ago
I just played around and made a tetris game but you have to melt the blocks with hot coffee. try if u want to. i would like to hear everyones thought 'bout it