Why Pause is Crucial!

AfterBurnettAfterBurnett Member Posts: 3,474
edited November -1 in Working with GS (Mac)
Okay, I'm an out of work actor who is working in a call-centre part time to pay the bills. This is a mind-numbing, creativity-draining job and all I have to look forward to is playing games on my iPod during the downtime (I work late night weekends). So, after almost an hour of no calls, I was just about to better my top score in Jungle Bug Rock'n Roll and a call came in. And guess what? YOU CAN'T BLOODY PAUSE!!!!! Suffice to say, my bug was squished and I didn't make the score.

Please, Gendai, add pause back in...
«1

Comments

  • design219design219 Member Posts: 2,273
    Do you live in Bangalore? You type english very well! I've heard Bollywood can be tough, hang in there!

    And +1 on the pause.
  • beefy_clyrobeefy_clyro Member Posts: 5,394
    oh there needs to be a pause badly!
  • gyroscopegyroscope I am here.Member, Sous Chef, PRO Posts: 6,598
    I'd second that; I'm mean fourth that.

    :-)

    ""You are in a maze of twisty passages, all alike." - Zork        temp domain http://spidergriffin.wix.com/alphaghostapps

  • JamesZeppelinJamesZeppelin Member Posts: 1,927
    I agree 100% but, there are some descent workarounds that aren't too tricky.

    I have a descent pause in my game that allows you to save your game and go to the main menu or switch some options like change from joystick or touch to move.

    I added towards the end and it didnt take that long.

    Maybe an extra 5 or 6 hours or so to add the change attributes int he various actors.
    In my case i just have the pause button destroy the actors and then a spawner brings up the puase menus and puts the actors back where they were when you unpause. works great.
  • VmlwebVmlweb Member Posts: 427
    I simply have a attribute called GameStatus that controls the whole game

    When GameStatus is waiting nothing interacts
    Player touches screen GameStatus=Playing
    Objects Interact
    Player Ends level GameStatus=End
    Nothing interacts
  • ORBZORBZ Member Posts: 1,304
    hopefully, with iphone os4 GameSalad will integrate background suspension and allow our games to auto pause when not the foreground app.
  • quantumsheepquantumsheep Member Posts: 8,188
    I'm going to resist the urge to destroy the dissenters, as I kinda like them :)
    JamesZeppelin said:
    Maybe an extra 5 or 6 hours or so to add the change attributes in the various actors.
    In my case i just have the pause button destroy the actors and then a spawner brings up the pause menus and puts the actors back where they were when you unpause. works great.

    I'm very happy for you and Vmlweb. There are certainly instances where you can insert a simple pause system. Yay!

    However, my games can get quite complex. Notice I didn't say 'Better'. Just more complex. There are enemy spawns to handle, using timers, interpolate, and stuff like that. There are timers within timers within timers. Putting in a simple 'if paused' don't move or fire rule isn't enough.

    I think 'Pause' is a very subjective matter. Indeed, any feature request is. Its importance really depends on whether it affects you or not.

    There are feature requests I've heard like:

    'Put a grid in so we can place actors in a scene easier.'
    'Make GS more stable.'
    'We need pixel based collision.'
    'Give us more fonts.'
    'Give us arrays.'
    'Make GS for android.'

    You know, I've got an answer for all of those. And there are many, many others, by many other people, that to me, personally, are insignificant, or have simple solutions.

    But they're important to others. And I get that.

    Working through a game and inserting attributes and testing it properly would take a lot longer than 6 hours for me. It'd add a significant amount of development and testing time, for something that took five minutes and used to just work.

    And let's be honest, too few GS devs spend enough time on testing...

    If I want to go back in time and update an old game, it's just not feasible. It's old code, done nearly a year ago. It's hard enough going back through that, trying to work out what I did, without adding the extra burden of working out how Pause is going to work now that they've taken it out.

    I know that GS is kinda listening. The recent survey asking what was important to work on (Twitter/Facebook, Pause, Online leaderboards) was a bit disingenuous though. Putting it in with the other two very highly sought after features is just setting it up to fail.

    I've been banging on about this for many months now. To some people I'm sure it's a joke. 'Here comes Quantum with another rant about Pause'. Fine. Think like that if you like.

    But to me, it's an obstacle that needs to be overcome. And that's simply not good enough. Arrays is an interesting one. It *can* technically be done, but it's such a hassle most people don't bother.

    And if it's so easy to implement, why does Jungle Bug not include it? Surely ALL games should have pause. It's supposed to be a standard bloody feature.

    The whole concept behind GS is that it removes the barriers to making games. 'Game creation for the rest of us.'

    Adding a barrier to pause and thinking it's ok goes totally against that. And while I'm tired of writing out essays like these, I absolutely will not stop till it's back in.

    You can all thank me later ;)

    QS :D

    Dr. Sam Beckett never returned home...
    Twitter: https://twitter.com/Quantum_Sheep
    Web: https://quantumsheep.itch.io

  • quantumsheepquantumsheep Member Posts: 8,188
    ORBZ said:
    hopefully, with iphone os4 GameSalad will integrate background suspension and allow our games to auto pause when not the foreground app.

    Or what he said!

    :D

    Dr. Sam Beckett never returned home...
    Twitter: https://twitter.com/Quantum_Sheep
    Web: https://quantumsheep.itch.io

  • AfterBurnettAfterBurnett Member Posts: 3,474
    I'm with you, QS! My game is a fair fast-paced shooter with loads of bullets and ships flying around the screen, not to mention the parallax backgrounds... I NEED PAUSE!

    Seriously, I was able to pause games back on my trusty Commodore 64... granted, you generally had to spend five minutes searching for the correct key... but it was still in there! LOL.
  • AfterBurnettAfterBurnett Member Posts: 3,474
    design219 said:
    Do you live in Bangalore? You type english very well! I've heard Bollywood can be tough, hang in there!

    And +1 on the pause.

    No, I live in Melbourne, Australia... I think we are the last first world call centre...

    But my English is okay because I am a New Zealander (Aussies are very hard to understand and all seem to speak in "txt spk" or some other ape-like gibberish).
  • JamesZeppelinJamesZeppelin Member Posts: 1,927
    @ the sheepster

    Note that i did say i 100% agree that we need a pause at the beginning of my post.
    I was merely pointing out some workarounds

    :)
  • AfterBurnettAfterBurnett Member Posts: 3,474
    Why did Gendai take it out in the first place? Must be a good reason.
  • quantumsheepquantumsheep Member Posts: 8,188
    About this time last year, GS introduced the 'preserve current scene' rule when switching to a new scene.

    This meant that everything on the current scene 'froze' - and you could go to another scene (which many people used as their pause screen).

    It literally took five minutes. You made a pause scene. You put in a button that returned you to the scene last left.

    In your main scene, you put a pause button. On this there'd be a rule that said *go to pause scene - preserve current scene*.

    Then there was the update that essentially gave everyone a speed increase in their games! GREAT!!!

    Except that it hadn't been tested properly, and it broke the 'preserve current scene' behaviour.

    So, instead of fixing the issue, they deprecated it.

    Now, I'm not blind. I can see there are work-arounds for this (and James, I really wasn't having a go at you! Honest!).

    But some work-arounds require overly complex rules to make pause work. Especially with timers involved. You can find an example on my profile, which was the solution Code Monkey very kindly came up with for me.

    It does work. Kinda. But I really don't understand it. And it's a shedload of extra work, effort and testing.

    It also adds more rules to your actors, which in theory could slow things down. Logically this would be a side effect.

    Yes, I could sit down and try and work it all out. But honestly, who wants to do that when there was a perfectly good system before?

    It's like the dev team saying 'We're not going to bother putting arrays in. You can make your own arrays with variables.'

    Yes, yes you could. But wouldn't putting in arrays just be easier and simpler for the user?

    Personally, I don't want to be making my head hurt every time I make an actor, wondering how to Pause it. I want to make an actor do cool things, without worrying about how to pause the damn thing.

    So it's a choice. I choose not to accept the solutions offered. Because they're not as simple or efficient as a system we used to have!

    So, you can scoff at my laziness and/or lack of understanding, or you can 'like' my initial comment here: http://gamesalad.com/forums/topic.php?id=5875

    Either way, I'll continue to campaign for this. It kills me that on top of no online support (leaderboards/twitter/facebook) my games' feature list is stymied by a lack of something as basic as 'pause'.

    It's a large part of why I haven't released anything for months now. Which may, or may not, be a bad thing, depending on your good taste ;)

    I'm hoping that with Apple showing off 'Pausing' as one of the key new features of OS4 within a multi-tasking environment that Gendai starts to take the issue a little more seriously.

    Phew, another rant done!

    QS :D

    Dr. Sam Beckett never returned home...
    Twitter: https://twitter.com/Quantum_Sheep
    Web: https://quantumsheep.itch.io

  • AfterBurnettAfterBurnett Member Posts: 3,474
    I'd also like in app purchasing... spending 2k a year just so you can link to a URL when in app purchasing is in the standard Apple kit is ridiculous.
  • ORBZORBZ Member Posts: 1,304
    QS: I totally agree with you. We need pause. I think the problem they are having is that like most development projects, the rabbit hole keeps getting deeper and deeper and the list of features gets longer and longer and so does the bug list.

    So right now, they are trying to fix bugs and improve performance etc. I think they will eventually put "preserve scene" back in but as it is still in Beta and we are all voluntary guinea pigs we kinda are stuck with it until they decide to get around to fixing that bug.

    If I recall correctly, the preserve scene functionality was taken out because it was causing problems with the collision detection stuff.
  • tekkendptekkendp Member Posts: 49
    @QS - I'm with you. Doing work arounds just slows down the game engine, and reduces it's flexibility.
  • quantumsheepquantumsheep Member Posts: 8,188
    ORBZ said:
    QS: I totally agree with you. We need pause. I think the problem they are having is that like most development projects, the rabbit hole keeps getting deeper and deeper and the list of features gets longer and longer and so does the bug list.

    So right now, they are trying to fix bugs and improve performance etc. I think they will eventually put "preserve scene" back in but as it is still in Beta and we are all voluntary guinea pigs we kinda are stuck with it until they decide to get around to fixing that bug.

    If I recall correctly, the preserve scene functionality was taken out because it was causing problems with the collision detection stuff.

    I couldn't agree with you more, here. A couple of points though:

    1. We're paying guinea pigs ;)
    2. You might be right about the collision detection stuff. Though I remember the main issue I had after the horrid update was that if you paused, it didn't preserve the scene correctly. So when I returned to the scene, enemies had stopped spawning. They were on a timer, so I think the issue was to do with time.
    3. On a purely selfish note, I'd rather they get pause in sooner rather than later. I didn't mind the performance. Sure it would slow things down, but that made me save often!

    Cheers,

    QS :D

    Dr. Sam Beckett never returned home...
    Twitter: https://twitter.com/Quantum_Sheep
    Web: https://quantumsheep.itch.io

  • beefy_clyrobeefy_clyro Member Posts: 5,394
    Gendai ... just give us a decent pause, it should be something that comes as standard, we shouldnt have to deal with complex work arounds when using timers and stuff.
  • quantumsheepquantumsheep Member Posts: 8,188
    beefy_clyro said:
    Gendai ... just give us a decent pause, it should be something that comes as standard, we shouldnt have to deal with complex work arounds when using timers and stuff.

    Just to confirm - I haven't paid beefy anything to say this. It's all above board.

    ;)

    QS :D

    Dr. Sam Beckett never returned home...
    Twitter: https://twitter.com/Quantum_Sheep
    Web: https://quantumsheep.itch.io

  • adent42adent42 Key Master, Head Chef, Executive Chef, Member, PRO Posts: 3,159
    Quick comments from a non-engine developer, since they're all at WWDC.

    Pause is tricky. The behavior engine is effectively (if not actually) running as a single thread. So if we put in a "pause" behavior... the whole engine stops running... then what? How do you evaluate an "unpause" since all rule evaluation has stopped because of the pause?

    Second and somewhat related, why did we remove "preserve scene"?

    The iPhone is a memory constrained system and saving and restoring state is quite a hard problem in that environment. Between memory leaks and problems with collision and sound playback, we decided it was better to deprecate the behavior.

    It's a problem we wrestle with often: How to create the best solution that benefits the greatest number of users and use cases. What want to do now gather information to make sure we come up with the best solution possible.

    So to make this more productive, I'd like to hijack this thread and put these question to the community:

    1) Describe how you want to use a "pause" behavior in your game.
    2) Describe how you think a pause behavior / attribute should work?
  • IntelligentDesignerIntelligentDesigner Member Posts: 517
    That's reasonable adent42.

    1. I want to pause my game(s) so nothing happens until I "un-pause" them. Make all the thingies stop wherever they are, whatever they were doing, and don't forget the soundtrack. When I "un-pause" make them wake up and start moving or spinning or morphing or tweetling...

    2. Why not change the state of the active thread to stopped, with a NEP launched whose entire raison d'etre was to start said thread again? Stop the game clock from ticking, until you start it again and you've done a good pause.

    another way would be to temporarily give the active thread a 0 priority...
  • jweaver911jweaver911 Member Posts: 439
    Not trying to suck up to QS but I have to say, I like his style.
  • AfterBurnettAfterBurnett Member Posts: 3,474
    Um... I just want it to "pause" the game. LOL.
  • synthesissynthesis Member Posts: 1,693
    It seems to me that the 2 primary things that would require a pause are game/actor clocks (self.time/game.time) and the velocity/acceleration properties that is accessible via an actor boolean setting called "pause" that operates much like the physics and graphics booleans.

    If a pause feature were integrated...then it seems the game engine should "reserve" enough memory slots for anything that has the pause boolean set to true.

    Then if pause is activated...anything that has a pause boolean assigned...then the time, velocity and acceleration properties are frozen into temporary memory slots. Then when the game is resumed...those properties are reactivated and the game engine resumes processing.

    I know this is overly simplified and may not fit with the logic in the game engine exactly...but it seems that if velocity (and/or X,Y position), acceleration and time values are the key parameters to preserve and allowing us to control whether to integrate the pause via an actor attribute setting is even better...so that we can reduce the RAM overhead required to pause. This way if we have a "heavy" game...we can elect to not incorporate pause and dedicate the RAM needed for a pause support back to the game engine.

    Thx for addressing this. Its posts like this of yours Adent is what I was really calling for months ago. Good to see you guys getting more "open" and "approachable" these days. Keep it up!

    Maybe in the future...a "call for opinions" thread once a week constructed similar to your post above that addresses a "common issue" would be a great way to allow the community and the Gendai team to communicate better. Just a thought.
  • beefy_clyrobeefy_clyro Member Posts: 5,394
    So good to finally see Gendai commenting on the pause issue. Im not a developer so dont really understand all the stuff that is going on backstage. All i know is that i would like a pause that just pauses everything. i.e. i would like everything to just stop, timers that are counting, actors that are moving etc, when you unpause, everything resumes.

    I guess the problem with that, is some people like to pause the game but can still access menu's and stuff, not sure how you would work around that but would be good to see.
  • quantumsheepquantumsheep Member Posts: 8,188
    Ironically, I started a new job today. So I'm at work. And I can't sit here and just type away a really detailed solution/idea. Sorry!

    Add drinks to the mix this evening, and I won't be able to actually be pro-active on this issue! HA!

    BUT - I think Sythesis is bang on the money with his idea. I imagine a pause attribute with a tickbox, underneath 'movement' in an actor's sidebar. It's ticked 'on' as default.

    Then have a behaviour called 'Pause' - you can make an actor and have the rule 'When touch is pressed' Then put in the pause behaviour.

    In this way all actors with a 'tick' in the pause box will stop what they're doing. EVERYTHING. Including timers, position etc - just like it does if you pause an online version of a GS game.

    You can define actors you *don't* want to be paused (such as background/hud stuff that doesn't move) as non-pausable if you like.

    This way will ensure there's a balance - you only pause certain actors that you want to pause. And if you *don't* want or need pause, it's a simple click on an actor to turn it off and save some memory.

    That's just off the top of my head though, so there's bound to be lots of holes in it.

    The thing is, it *used* to work, so I think it *is* possible.

    But sincerely, thanks for actually acknowledging the issue and being constructive about it. It feels like I've been yelling into the wind for so long...

    Right, I'd better actually get back to work - first impressions an' all that!

    Thanks,

    QS :D

    Dr. Sam Beckett never returned home...
    Twitter: https://twitter.com/Quantum_Sheep
    Web: https://quantumsheep.itch.io

  • beefy_clyrobeefy_clyro Member Posts: 5,394
    The above would be a great way to implement pause ... i like the idea, can Gendai make it a reality?

    Sheep, good luck with the new job fella, give it a week and you can be on here 9-5 again
  • quantumsheepquantumsheep Member Posts: 8,188
    Are you suggesting I'm going to get fired???

    ;)

    QS :D

    Dr. Sam Beckett never returned home...
    Twitter: https://twitter.com/Quantum_Sheep
    Web: https://quantumsheep.itch.io

  • beefy_clyrobeefy_clyro Member Posts: 5,394
    never thought such a thing, what i actually meant was you'll be settled in past your grace period, done your kissing ass and can then generally take the biscuit more and be on here all day ... that is of course unless you have an active job like a builder and dont use a computer. lol.
  • quantumsheepquantumsheep Member Posts: 8,188
    No worries mate, I was just kidding ;)

    Still, 45 minutes to pub time! :D

    Pause, eh?

    QS :)

    Dr. Sam Beckett never returned home...
    Twitter: https://twitter.com/Quantum_Sheep
    Web: https://quantumsheep.itch.io

Sign In or Register to comment.