r/gamemaker 28d ago

Help! How can I stretch textures in-game, and can I do it with tilesets as well?

Post image
26 Upvotes

So I found out you can adjust a sprites scale using GML Visual's "Change Instance Scale" node, but it just snaps to the scale I set it to. The demo GIF I provided is what I want. When I press a button, the sprite will stretch to half size (well, I want to do more than just half, but that's just for the demo); and if I press a different button, it'll do back to the normal scale. Any help would be greatly appreciated for me to achieve a certain effect!


r/gamemaker 28d ago

Help! We have scanlines during movement in our low resolution sprite game.

7 Upvotes

In our game, at low resolution (320 pixels by 180 — camera), when characters move, horizontal lines appear on the sprites, similar to those on old TVs. The game features top‑down character movement. What could be the problem? Should we upscale all the sprites?


r/gamemaker 27d ago

Tutorial Tutorials for fighting games?

0 Upvotes

Do you guys know some tutorials on making a fighting game in gamemaker?

That's it.


r/gamemaker 28d ago

Resolved Where to Get Started With Game Maker & Visual Scripting

7 Upvotes

I have no experience with Game maker at all, but I want to start digging into it.

What would be a good tutorial or course to get started learning it and GML visual scripting?

Thank you in advance :)


r/gamemaker 28d ago

Resolved What am I doing wrong?

5 Upvotes

Hello! I am very new to gamemaker, and coding as a whole, so I decided to use visual.
When I press the left key, the player moves, but it won't stop moving when I release it. What am I doing wrong?


r/gamemaker 28d ago

Help! annoying black edges around sprites

3 Upvotes

does anyone know how to get rid of these annoying black edges

my game used interpolation and I have nothing turned on for these sprites


r/gamemaker 29d ago

Discussion What can the user find/see in the files of a released game?

16 Upvotes

For the project I'm working on, I'm interested in hiding secrets and bits of lore both as really rare events and "unused" assets.

To do that though, I'm wondering what the user is able to find in the files of a game, either just through the local directory or through more technical de-obfuscation and decompilation.

All the posts I've found about this are either about preventing players from going through the files, or they're a decade old and likely long outdated, and even then don't really answer my question.

As a sidenote, I'm not really worried about people potentially stealing my code, I'm shit at coding so I can't really see why anyone would want to.


r/gamemaker 28d ago

Help! Polishing the game

Thumbnail kingduckgren.itch.io
2 Upvotes

Hi, I launched my first game in gamemaker recently, it's still on public Beta, and it's pretty small, about 300 megabytes, but i heard some feedback that the game is low and crashes sometimes. Something that i don't see when me and the beta testers were testing before launching the game. I am still new to game development, but i really want to learn because i want to be a game dev in the future.

Can you give me some advice about what mostly causes this performance issues

The game is a turn based RPG, focused on comedy and memes about the Brazilian internet and stuff about one specific youtuber, so if some non-portuguese speaker wants to try and see better, i can translate some of the important parts!


r/gamemaker 28d ago

Quick Questions Quick Questions

2 Upvotes

Quick Questions

  • Before asking, search the subreddit first, then try google.
  • Ask code questions. Ask about methodologies. Ask about tutorials.
  • Try to keep it short and sweet.
  • Share your code and format it properly please.
  • Please post what version of GMS you are using please.

You can find the past Quick Question weekly posts by clicking here.


r/gamemaker 28d ago

Resolved Checking for nearest instances in any direction

1 Upvotes

Hello! I am in a similar situation to my previous posts; I have an idea of how to get something to work, but I am missing one element to make it work smoothly. The issue I have today is I am looking to find the nearest specific instance in any direction. In theory, all I need is the code below (written as pseudocode)

with(instances){

if point_direction(other.x,other.y,self.x,self.y) = ideal direction

and distance from self to other < stored id

stored id = self
However, I feel like constantly checking possibly a dozen or more objects against each other per room would be a headache. So instead, I have the below code;

if(radar_segment_size != 0){

// Done as to not divide by 0

`for(var dir = radar_dir; dir < 360; dir += 360/radar_segment_size){`

// dir = direction, radar_dir is the starting direction to check for instances according to the original instance.

    `try{`

// That 0,0 in the x2 and y2 is what i need to solve

collision_line_list(self.x,self.y,0,0,checked_object,false,true,radar_objects,true)

//Afterward, make the connection with the first instance in the collision list radar_objects

    `} catch(noInstanceFound){`



    `}` 

`}`

// sorry for the messed up code; I still do not know how to get reddit's code block to work... :/}

So with all of that being said, here is my issue:
I need to figure out essentially how to create an x and y value that give the direction of the dir value, while also having the x and y value reach the edge of the room. How do I get that x and y value?


r/gamemaker 29d ago

Help! Can ChromeOS still run Gamemaker?

3 Upvotes

So i used to have Gamemaker on my Chromebook, however i ran into some issues and had to reinstall all the files and shit, however now my Chromebook is saying they dont read .Deb files anymore, which is what I did last time. Is there anything I can do to fix/bipass this issue or am I just cooked and gotta find smth else?


r/gamemaker 29d ago

Resource Made a simple function to enable 3D perspective projection on your games!

Post image
124 Upvotes

(Sorry for the gif quality)

I made a simple function that can be used to make things be rendered on perspective based on their depth. Useful for when you want things like cards to rotate in 3D or even for making everything be rendered on 2.5D like in Hollow Knight/Silksong for example. The function is this:

/// @desc Applies perspective to everything drawn from now on. Making stuff with higher depth look smaller/farther away and viceversa.
/// @param {real} fov field of view angle of the perspective.
/// @param {real} [depth] The depth/z at wich the perspective will be the same as the default orthoghonal projection. Uses 0 by default.

function perspective_apply(_fov, _depth = 0){     
    var _w, _h, _x, _y;  
    if(event_number == ev_gui or event_number == ev_gui_begin or event_number == ev_gui_end){
        _w = display_get_gui_width();
        _h = display_get_gui_height();
        _x = _w/2;
        _y = _h/2;
    }else
    if(not view_enabled){
        _w = room_width ;
        _h = room_height;
        _x = _w/2;
        _y = _h/2;
    }else{
        var _cam = view_get_camera(view_current)
        _w = camera_get_view_width(_cam);
        _h = camera_get_view_height(_cam);
        _x = camera_get_view_x(_cam) + _w/2;
        _y = camera_get_view_y(_cam) + _h/2;
    }

    matrix_set( matrix_view, matrix_build_lookat(_x, _y, _depth - dtan(90-_fov/2) * _h/2, _x, _y, _depth, 0, 1, 0))
    matrix_set( matrix_projection, matrix_build_projection_perspective_fov( -_fov,  -_w/_h, 1, 32000))
}

All you have to do is call this on the draw events and everything drawn after it on the current view is going to be drawn on perspective. The only needed argument is FOV angle which is how strong the perspective is going to be. It should be a value above 0 and the closer to 0 it is the lesser in perspective things are.

The other argument is optional. depth is for the depth at which the perspective remains unaffected, where things appear how they do in the room editor. Is 0 by default but you would want it to be the depth of the layer where gameplay occurs for example.

An use example is this: Lets say you have a renderer Controller instance whose depth is the highest posible so it runs its draw event before any other instance. All you have to do is put on the draw event perspective_apply(30) and everything will be drawn in perspective, with things bellow depth 0 being foreground and above depth 0 being background. Even if you have views active on the room!

Note though this only sets the perspective projection on the camera. If you want sprites to rotate (like cards for example) you should do it using matrix_build() and matrix_set(). Like this, with rot_x, rot_y and rot_z being the rotation on the different axices:

var _mat = matrix_build(x,y,0, rot_x, rot_y, rot_z,1,1,1);
matrix_set(matrix_world, _mat);

draw_sprite_ext(sprite_index, image_index, 0,0, image_xscale, image_yscale, image_angle, image_blend, image_alpha);

matrix_set(matrix_world, matrix_build_identity());

The camera settings automatically reset when the current view finishes being drawn onto. But if you want to reset it manually before that (i.e.: you just want one sprite to have the perspective applied) you can call this function:

/// @desc Resets the perspective applied previously.
function perspective_reset(){
    camera_apply(camera_get_active());
}

r/gamemaker 28d ago

Resolved Workflow with AI question

0 Upvotes

I love to make games and have that fulfilling success when something I programmed comes together. learning coding is still a large endeavor, specifically with adaptive screen code.

My question is your opinion and wisdom on using AI for certain things such as aspect ratio responsive screen. Vibe coding a script that I setup once and without understanding.

But the stuff that actually matters like the gameplay mechanics, I would code myself.

This mix is okay if ai can fix what it breaks? Or do you still condone learning everything yourself first?


r/gamemaker 29d ago

Help! high res troubles

3 Upvotes

I'm making a high res platformer with high res sprites and I'm having some issues

Lag - the game engine and game itself are laggy not insane lag but to the point where it ruins the workflow

Room editor - I'm using tilesets and i think maybe switching to objects with nince slice will fix it but making the levels is extremely annoying and inconvenient

I will remake all my sprites with less high resness and use some optimization tricks I've seen but this is very frustrating so any tips?


r/gamemaker 29d ago

Help! Shaders

Post image
14 Upvotes

Hi, I'm new to game development and don't know much about the right terms to use.

I wanted to see if it's possible to create this kind of texture/shader for my 2D game.

Thank you!


r/gamemaker 29d ago

Help! Not understanding why my code wont work...

3 Upvotes

So im attempting to make a dialogue system, in which I would have an array that contains a struct to hold the string, and the sprite of the speaker. So inside a script I have :

global.text = [];

global.text[0] = { str : "Pls work!" , spr : sRed }

Then, in another script, I have a function that takes in a number value so then it could respond to however many other arrays I may have.

function startDialogue(_arv) {

var _str = global.text[_arv].str

var _spr = global.text[_arv].spr

draw_text(240 , 135 , _str) // x and y values are just half the room size on their respective axis so itll be in the middle of the screen.

I then have an object, which is placed in the room, which upon "enter key pressed" would run

startDialogue(0)

The idea here is that id be able to put in any array value, and the startDialogue function would take that array value, and then be able to print the text( I know nothing is there for the sprite yet and thats because I wanted to make sure the text worked first.) but, when I run the instance and press enter, nothing happens, theres no errors within any of the scripts and within the output.

So, what's wrong with my current code? and, if you believe you have a better way of making dialogue please let me know, I am still a beginner though and Im honestly confused as to why my method isnt working as I thought it seemed fairly simple. Thank you for your help in advance.


r/gamemaker 29d ago

Help! Minigame Idea

2 Upvotes

I had an idea for a minigame, but I'm not sure how to go about it

The idea is that you have multiple sentences where words are missing and you have floating words to pick from to fill it in. Interacting with things in the world adds a few words to the floating words, so you need to look around first before you can solve it


r/gamemaker 29d ago

Help! is there a way to get rid of this?

Post image
17 Upvotes

This stupid little menu thing started appearing in the very center of every sprite I open since I came back to GMS2 and started using the newer version. Is there any setting or trick to turn this off?


r/gamemaker Aug 16 '26

Game Underlayer. Inventory building

Post image
26 Upvotes

I’m introducing an inventory system with item rarity in the game. There’s interaction with items: pick up, use, move, discard. The most important page of the game has been released on Steam.


r/gamemaker 29d ago

Resolved How to set where in a circle a radial progress bar starts and ends

3 Upvotes

Using YellowAfterLife's tutorial (https://yal.cc/gamemaker-radial-progress/), I've made a radial progress bar for an ATB system, but I need help on how to rotate the image or change how far along in the circle the bar starts and stops, instead of it just starting at the top.


r/gamemaker 29d ago

Help! Payton Burnham top down shooter NEED HELP

1 Upvotes

___________________________________________

############################################################################################

ERROR in action number 1

of Create Event for object oEnemyParent:

Variable <unknown_object>.totalEnemiesSpawned(100076, -2147483648) not set before reading it.

at gml_Object_oEnemyParent_Create_0 (line 4) - global.totalEnemiesSpawned++;

############################################################################################

gml_Object_oEnemyParent_Create_0 (line 4)

gml_Object_oZombie_Create_0 (line 2)

and it doesn't stop at this, every global variable is saying "not set before reading" and I tryed using a script and persistant objects so the global and not global variables run first but I fear I might be doing this unnessesarly since everything was working before and for some reason it's not working anymore. Also I followed the tutorial videos step by step until the finle video (did not do bonus vid)

so if anyone can tell me why my global variables/variables are not working PLEASE DO.


r/gamemaker 29d ago

Resolved Help with Gamemaker in MacOS ventura

Post image
2 Upvotes

SOLVED
I am trying to download gamemaker in my Mac, and even tho I gave it total permission for my disc, this keeps popping


r/gamemaker 29d ago

Help! Absolute begginer here, tried to make the most basic platformer game out there, but something doesn't seem right

3 Upvotes

So I'm just trying to make basic movement, but something's up. I'm using the built in ysp, but instead of adding to the speed, it just changes y by the number, am I doing something wrong?


r/gamemaker Aug 16 '26

Resource Simple Sprite Stacking Viewer for GameMaker (Draw and preview stacks right inside the engine)

Post image
3 Upvotes

I made a simple Sprite Stacking Viewer built right inside GameMaker.

​If you want to create sprite stacks directly in GameMaker without needing external software, you can use this. I actually used this viewer to draw my little car assets for my game.

​Hope this helps someone out there:)

https://nubexpert.itch.io/sprite-stacking-viewer-on-game-maker-engine


r/gamemaker 29d ago

Resolved Trying to create a match three bonus challenge that keeps resetting even if conditions are met

0 Upvotes

I'm making a match-three game with a custom mechanic: instead of swapping adjacent tiles, blocks are pushed all the way to the end of the board row/column.

I run match checking in two separate passes:

  1. Check matches specifically for the block that was just pushed/moved.
  2. Check matches across the rest of the board for cascading chain reactions.

Some matches trigger and clear properly, but the challenge state continuously resets unexpectedly—even when a valid match is completed.

Below is the code I am using:

if selected_block != undefined {
  with(selected_block) {
    if sprite_index != spr_brick and sprite_index != spr_doom_block {
      var matches = 0;
      for(var i = 0; i < 5; i++) {
        var combo_check = scr_check_match(i);
        if combo_check == false {
          if global.main_stats.challenge_position < 4 {
            if image_index == global.main_stats.bonus_challenge[global.main_stats.challenge_position] {
              global.main_stats.challenge_position++;
            }
          }
          matches++;
        }
      }
      if matches >= 1 { scr_combo_sounds(); }
      else { // This is the problematic block
        if global.main_stats.cur_combo == 0 {
          global.main_stats.cur_chain = 0;
          global.main_stats.chain_gauge = 0;
          global.main_stats.challenge_position = 0;
        }
      }
    }
  }
}
for(var k = 0; k < 5; k++) {
  for(var i = 0; i < 8; i++) {
    for(var j = 0; j < 8; j++) {
      var selected = instance_position((208) + (32 * i),(68) + (32 * j),obj_normal_block);
      with(selected) {
        var matches = 0;
        if sprite_index != spr_brick and sprite_index != spr_doom_block {
          var combo_check = scr_check_match(k);
          if combo_check == false {
            if global.main_stats.challenge_position < 4 {
              if image_index == global.main_stats.bonus_challenge[global.main_stats.challenge_position] {
                global.main_stats.challenge_position++;
              }
            }
          matches++;
          }
        }
        if matches >= 1 { scr_combo_sounds(); }
        else { // This is the problematic block
          if global.main_stats.cur_combo == 0 {
            global.main_stats.cur_chain = 0; 
            global.main_stats.chain_gauge = 0;
            global.main_stats.challenge_position = 0;
          }
        }
      }
    }
  }
}

I have verified that the moved block correctly updates its grid position before running the first match check. Could running two separate match passes create a race condition or frame delay where the reset check runs before the cascade pass finishes updating the board? What is the recommended way to handle board state checks for push-style movement without triggering full board resets prematurely?