Best place for Function request?

Discussion in 'GameMaker Studio 2 Community Tech Support' started by SleepyMolecule, Sep 23, 2018.

  1. SleepyMolecule

    SleepyMolecule Member

    Joined:
    Sep 23, 2018
    Posts:
    8
    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?
     
  2. FrostyCat

    FrostyCat Member

    Joined:
    Jun 26, 2016
    Posts:
    4,304
    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.
     
  3. GMWolf

    GMWolf aka fel666

    Joined:
    Jun 21, 2016
    Posts:
    3,359
    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)
     
  4. SleepyMolecule

    SleepyMolecule Member

    Joined:
    Sep 23, 2018
    Posts:
    8
    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.
     
  5. TsukaYuriko

    TsukaYuriko Q&A Spawn Camper Forum Staff Moderator

    Joined:
    Apr 21, 2016
    Posts:
    1,536
    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...).
     
    SleepyMolecule likes this.
  6. SleepyMolecule

    SleepyMolecule Member

    Joined:
    Sep 23, 2018
    Posts:
    8
    Thanks! much appreciated.
     
  7. GMWolf

    GMWolf aka fel666

    Joined:
    Jun 21, 2016
    Posts:
    3,359
    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: Sep 23, 2018
  8. FrostyCat

    FrostyCat Member

    Joined:
    Jun 26, 2016
    Posts:
    4,304
    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.
     
  9. GMWolf

    GMWolf aka fel666

    Joined:
    Jun 21, 2016
    Posts:
    3,359
    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.
     
  10. FrostyCat

    FrostyCat Member

    Joined:
    Jun 26, 2016
    Posts:
    4,304
    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.
     
  11. Marcus12321

    Marcus12321 Member

    Joined:
    Aug 29, 2018
    Posts:
    90
    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.
     
    SleepyMolecule likes this.
  12. TrunX

    TrunX Member

    Joined:
    Jun 30, 2016
    Posts:
    142
    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.
     
  13. Coded Games

    Coded Games Member

    Joined:
    Jun 20, 2016
    Posts:
    400
    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.
     
  14. TrunX

    TrunX Member

    Joined:
    Jun 30, 2016
    Posts:
    142
    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.
     
  15. GMWolf

    GMWolf aka fel666

    Joined:
    Jun 21, 2016
    Posts:
    3,359
    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.
     
    SleepyMolecule likes this.
  16. SleepyMolecule

    SleepyMolecule Member

    Joined:
    Sep 23, 2018
    Posts:
    8

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice