• Hello [name]! Thanks for joining the GMC. Before making any posts in the Tech Support forum, can we suggest you read the forum rules? These are simple guidelines that we ask you to follow so that you can get the best help possible for your issue.

Best place for Function request?

S

SleepyMolecule

Guest
I have a really simple idea for a pause function (something game maker lacks by default) that probably can't be implemented via the game maker extension system.
Where would be the best place to post ideas or function requests?
 

FrostyCat

Redemption Seeker
If it's simple, chances are that it has been covered to death already, if not a better alternative. Your idea is probably not that bright or novel in our eyes, especially those of us who have been around for over a decade.

And if your idea is about dealing with built-in variables, don't expect much interest in it. The community as a whole has shifted mostly to custom variables that can be manually paused, instead of built-in variables that require workarounds like deactivation and side variables to pause. YoYo has also expressed disinterest in further expansion of built-in variables to include pausing for almost a decade, so another suggestion of the sort probably won't help.
 

GMWolf

aka fel666
Though, It would be nice to have a time scale variable that would affect the delta time value.
That way, assuming we use delta time, we could just set time scale to 0 to pause. (And not affect menu, etc that shouldn't really use dt, or objects that use raw dt values)
 
S

SleepyMolecule

Guest
If it's simple, chances are that it has been covered to death already, if not a better alternative. Your idea is probably not that bright or novel in our eyes, especially those of us who have been around for over a decade.

And if your idea is about dealing with built-in variables, don't expect much interest in it. The community as a whole has shifted mostly to custom variables that can be manually paused, instead of built-in variables that require workarounds like deactivation and side variables to pause. YoYo has also expressed disinterest in further expansion of built-in variables to include pausing for almost a decade, so another suggestion of the sort probably won't help.
Wow that's disappointing on many levels. I hope you are aware your response reads more as shootdown than a helpful reply.

regardless..
Its not a complicated idea, I'd just like to be able to tell the game engine to skip certain functions on a given layer, leveraging further the layer functionality.
For example in a simple game, a pause menu could be a layer that shows itself while disabling the begin, step, end, alarms, collisions and animation frame updates of all objects on a given layer. By disabling everything but the draw function, it would allow pausing and impact frames without the overhead of copying everything to a new surface. If it was a function you pass a flag in to (eg layer_updates(layerid, flags), the user could control what parts are disabled, leaving the potential to have animations or shaders continue when the layer is paused.
 

TsukaYuriko

☄️
Forum Staff
Moderator
If you intend to hire a developer to develop this functionality for you, you may post a Job Offer in the Collaborations forum.

If you are looking for help with resolving a programming problem, you may post in the Programming forum.

Requests for features should be posted in the Community Tech Support forum with a Discussion tag, as that is the only forum monitored by YoYo staff on an irregular basis. While it may not be what you want to hear, if this is your intention, @FrostyCat's post holds valid points which you will need to address in your topic if you wish for this functionality to be added (e.g. why it would be beneficial for the majority of end-users, why it can't be developed by end-users with the functionality that's already available...).
 

GMWolf

aka fel666
Wow that's disappointing on many levels. I hope you are aware your response reads more as shootdown than a helpful reply.
Thats the think to know about frosty.
He comes on quite strongly, but he really does mean well, and has great advice to give :)
 
Last edited:

FrostyCat

Redemption Seeker
Wow that's disappointing on many levels. I hope you are aware your response reads more as shootdown than a helpful reply.

regardless..
Its not a complicated idea, I'd just like to be able to tell the game engine to skip certain functions on a given layer, leveraging further the layer functionality.
For example in a simple game, a pause menu could be a layer that shows itself while disabling the begin, step, end, alarms, collisions and animation frame updates of all objects on a given layer. By disabling everything but the draw function, it would allow pausing and impact frames without the overhead of copying everything to a new surface. If it was a function you pass a flag in to (eg layer_updates(layerid, flags), the user could control what parts are disabled, leaving the potential to have animations or shaders continue when the layer is paused.
Toggling automatic events and built-in variables is the one thing that YoYo has been saying "NO" to building into the engine for over a decade. I've seen it being proposed and then declined at the turn of 7.0, 8.0, 8.1, GM:HTML5, GMS 1.x and now GMS 2.x. You seriously think this is new?

Anyone who has been here for more than a year knows that our individual techniques are easier to change than YoYo's ways. So when we want something and it isn't expected within the next one or two builds, we drop the built-ins and implement at the code layer where we do have control. Only sitting ducks waiting for slaughter hold their breath for YoYo to build nice-to-haves into the engine. This is why you don't see these days platformers being handled the Overmars way with built-in variables, for example. The Spalding way with manual increments and custom variables is now the norm.

Yes, it was a shoot-down on purpose. I've been around here for 15 years to see what works and what don't in the GM sphere. And I'm definitely not one of those people who like giving others false hope just to make them feel better about themselves.
 

GMWolf

aka fel666
Toggling automatic events and built-in variables is the one thing that YoYo has been saying "NO" to building into the engine for over a decade. I've seen it being proposed and then declined at the turn of 7.0, 8.0, 8.1, GM:HTML5, GMS 1.x and now GMS 2.x.
To be fair, toggling events would be INCREADIBLY useful!
I dont care how many times YYG shoot the idea down!
Seriously, it would allow use to disable the automatic event call, and call them with custom code.

FO example, you could disable the click events, and have them trigger using a depth sorting system (to only tigger the click on top most object, for example).
and so much more!

Its this kind of modularity that will bring GM next level.
 

FrostyCat

Redemption Seeker
To be fair, toggling events would be INCREADIBLY useful!
I dont care how many times YYG shoot the idea down!
Seriously, it would allow use to disable the automatic event call, and call them with custom code.

FO example, you could disable the click events, and have them trigger using a depth sorting system (to only tigger the click on top most object, for example).
and so much more!

Its this kind of modularity that will bring GM next level.
I never said it wouldn't be useful. But this is a proposal that has a decade-long track record of being turned down at the engine level, and users have been able to implement pausing without it in the engine for just as long. That puts it in the wants category, and deservedly or not, it would be waiting in a long line behind needs and other wants more valued by YoYo's management.

It's nice if YoYo could part with the tradition regarding this proposal, but I refuse to overstate the probability of that just to make an ideologue happy.
 
M

Marcus12321

Guest
Toggling automatic events and built-in variables is the one thing that YoYo has been saying "NO" to building into the engine for over a decade. I've seen it being proposed and then declined at the turn of 7.0, 8.0, 8.1, GM:HTML5, GMS 1.x and now GMS 2.x. You seriously think this is new?

Anyone who has been here for more than a year knows that our individual techniques are easier to change than YoYo's ways. So when we want something and it isn't expected within the next one or two builds, we drop the built-ins and implement at the code layer where we do have control. Only sitting ducks waiting for slaughter hold their breath for YoYo to build nice-to-haves into the engine. This is why you don't see these days platformers being handled the Overmars way with built-in variables, for example. The Spalding way with manual increments and custom variables is now the norm.

Yes, it was a shoot-down on purpose. I've been around here for 15 years to see what works and what don't in the GM sphere. And I'm definitely not one of those people who like giving others false hope just to make them feel better about themselves.
Yep, it read like a "Get off my lawn" grumpy old guy to me as well. :)

As for the original question. This could be done by using a global variable and checking it before running the given script. I know it isn't exactly what is being asked for, but it could be accomplished in that way.

I actually thought something similar would be nice. I would like to have the Draw scripts run as fast as possible, but the Step scripts run at a fixed FPS. That way I could let the draw run as fast as I wanted (or untethered) and tween all of the frames in between, but the logic would run at a fixed rate. Again, I know this can be manually accomplished easily enough, but it would be nice if the game engine enabled it easily.
 

TrunX

Member
I think it's a shame that we have to teach people the best way to use GameMaker is to ignore all it's build in variables and replicate their functions with own variables and scripts.
I mean yes, that's what I also do to avoid working around a black box and it's sometimes strange behaviors and to get full control of my own game.

But the better solution would be to get access to this black box and the native implementation of some missing functions to make good use of it.
 

Coded Games

Member
Just to throw this out there, making a pause system already can be done with a couple lines of code. Make a separate "Pause" room. When you want to pause, set the current room to be persistent and switch to the pause room. When you switch back disable room persistence. There you go.
 

TrunX

Member
Switching rooms is a very bad work around in my eyes. There are free scripts in the marketplace which take a screenshot of the current view, deactivates all active instances, save their IDs in a list and reactivate only these previous active instances when pause is over.

It would be nice if you could write something like "if pause exit;" in front of the current "black box" that handles the build in variables.
 

GMWolf

aka fel666
Since this became a 'share your solution' topic:

The best solution I found was to use delta time and time scale.

when using delta time, multiply the delta_time value by a time_scale variable to get your new dt.

now you can just set your time_scale to 0 to pause your game.
or set it to 2 to double speed, if that's what you like.

if you need something to keep running, independent of time_Scale, just use the original delta_time value rather than the scaled delta time.

It only works if you use delta timing, but since all my projects do, its the system I prefer using.
 
Top