Return to “Technical”

Post

Pausing the game

#1
I'm hoping this is a really minor topic, but since I've not seen any comments on this I figured I may as well raise it.

Will it be possible to pause LT with a single keypress (e.g. hit Esc or similar)?

The only reason why I would even ask this is because when I'm playing Elite Dangerous, and my wife calls me to attend to some emergency, there's nothing more annoying than when this happens while I'm in combat, and I can't simply hit escape and pause the game. (Instead, the game says I have endure a 15 second timeout before I can be removed from the game area, allowing NPCs* to pummel me while I'm helpless - understandable if I'm playing Open, but as I play Solo, I fail to see why an instant pause can't be implemented - especially since they have already implemented this in the training scenarios).

Like I said, this is a minor 'feature' but I feel one so obvious that it could be overlooked.

Cheers.
Post

Re: Pausing the game

#2
Thankfully, Limit Theory is not Elite: Dangerous.

We previously had quite a few things to say on the subject of pausing, but it's still a good question.

On November 23, 2012, Josh spake, saying thusly:
JoshParnell wrote:
Fri Nov 23, 2012 10:51 pm
Deej wrote:
JoshParnell wrote: ..since this is single-player, you can save at any time and reload later..so you'll never be forced into ridiculously long missions!
Thankyou.
Josh, will there also be a 'pause' button? (For life's little interruptions...)
Sure :)
So, assuming Josh hasn't changed his mind on this, the basic "pause everything to go deal with Life Stuff" feature will be there for you.

One variation on this would be whether players may be able to give high-level orders while the game is paused. Gazz feels this is very important:
Gazz wrote:
Tue Dec 04, 2012 4:26 pm
Orders While Paused

Maybe I should write this in 15 different colours, underlined, and blinking.
This is super-important to me.

Once you're dealing with fleets, multiple ship types, and 3D positioning, you will be hard pressed to do the admiral thing because in the game, you don't have a staff to deal with all the minutiae of a complex battle.

Alternative: A slider where you can adjust the passage of time while "paused" from 0 - 100 %.
This way the OCD micromanagers can have their way but those who'd rather like a more "realtime" or "bullet time" feel, can have their perfect game.
However, Josh was less open to this idea, saying:
JoshParnell wrote:
Fri Mar 01, 2013 6:37 pm
Currently the game does not pause in menus, and I think I will keep it this way. I like to feel the world continuing on around me when I'm in menus, and, as you said, it also introduces nice opportunities to interact with the menus while you're waiting for something like autopilot.
Hope this helps!
Post

Re: Pausing the game

#3
There is nothing more trivial than including a pause function in a singleplayer offline game. (eg: stopping the game loop from doing updates..)
So it can be assumed to be included.

Another thing would be to interact with the game while the simulation is paused (giving commands, handling menus)
That would require more work to implement right.
Post

Re: Pausing the game

#4
Damocles wrote:
Tue Jul 04, 2017 5:45 am
There is nothing more trivial than including a pause function in a singleplayer offline game. (eg: stopping the game loop from doing updates..)
So it can be assumed to be included.

Another thing would be to interact with the game while the simulation is paused (giving commands, handling menus)
That would require more work to implement right.
It's not always trivial. :V
I have had code before, bad code I'll admit, that does the render updates as part of the game loop. :P
°˖◝(ಠ‸ಠ)◜˖°
WebGL Spaceships and Trails
<Cuisinart8> apparently without the demon driving him around Silver has the intelligence of a botched lobotomy patient ~ Mar 04 2020
console.log(`What's all ${this} ${Date.now()}`);
Post

Re: Pausing the game

#5
Yes that sloppy design then, when mixing world-logic and rendering.
(or never refactoring the original prototype code, until its too complex to take apart and reassemble cleanly)

But even then. The game could at least remember its timestamps at pause, skip any updates and rendering in the gameloop, and just render a "paused" notification instead.
Post

Re: Pausing the game

#7
Dinosawer wrote:
Tue Jul 04, 2017 3:23 pm
Well, Silver, that's just because you programmed very badly :ghost:
I know. :P
Just wanted to make sure people were aware that its not always trivial. xD
°˖◝(ಠ‸ಠ)◜˖°
WebGL Spaceships and Trails
<Cuisinart8> apparently without the demon driving him around Silver has the intelligence of a botched lobotomy patient ~ Mar 04 2020
console.log(`What's all ${this} ${Date.now()}`);
Post

Re: Pausing the game

#10
Flatfingers wrote:
Wed Jul 05, 2017 12:13 am
All problems are simple as long as they're someone else's.

"OK, Flatfingers, what's YOUR solution look like?"

Code: Select all

Design the game to be turn-based to start with.
:D
Just to be fair, all games *are* turn based. Even if turns are so short the player doesn't notice that they happen. :V
°˖◝(ಠ‸ಠ)◜˖°
WebGL Spaceships and Trails
<Cuisinart8> apparently without the demon driving him around Silver has the intelligence of a botched lobotomy patient ~ Mar 04 2020
console.log(`What's all ${this} ${Date.now()}`);
Post

Re: Pausing the game

#11
Silverware wrote:
Wed Jul 05, 2017 3:37 am
Just to be fair, all games *are* turn based. Even if turns are so short the player doesn't notice that they happen. :V
This is true in the same sense that human cognition is turn-based -- and thus that a person's entire consciousness can be paused perfectly and indefinitely -- because neurons have a clock speed.

Which is is to say, not so much.

If clock-based low-level processing meant every game is turn-based at the mechanics design level, then all the people still complaining that BethSoft's Fallout 3 & 4 aren't "real" Fallout because they aren't turn-based like Fallout 1 & 2 would have to find a different reason to criticize the newer games. :D (Yes, I know, they already do.)

I'm just saying, you want pausing, you get it for free by designing a game to be turn-based. For the subset of games that work as turn-based fun, that's a nice benefit.

Sheesh. :lol:
Post

Re: Pausing the game

#12
Flatfingers wrote:
Wed Jul 05, 2017 12:38 pm
Silverware wrote:
Wed Jul 05, 2017 3:37 am
Just to be fair, all games *are* turn based. Even if turns are so short the player doesn't notice that they happen. :V
This is true in the same sense that human cognition is turn-based -- and thus that a person's entire consciousness can be paused perfectly and indefinitely -- because neurons have a clock speed.

Which is is to say, not so much.

If clock-based low-level processing meant every game is turn-based at the mechanics design level, then all the people still complaining that BethSoft's Fallout 3 & 4 aren't "real" Fallout because they aren't turn-based like Fallout 1 & 2 would have to find a different reason to criticize the newer games. :D (Yes, I know, they already do.)

I'm just saying, you want pausing, you get it for free by designing a game to be turn-based. For the subset of games that work as turn-based fun, that's a nice benefit.

Sheesh. :lol:
that individual neurons have limited processing speed doesnt give your brain a global tick :P

except your brain doesnt have a globally synchronised clock or sim ticks :P
which every game running on current computing hardware does have, even the most highly paralellised ones :P
Post

Re: Pausing the game

#13
Cornflakes_91 wrote:
Wed Jul 05, 2017 12:46 pm
Flatfingers wrote:
Wed Jul 05, 2017 12:38 pm
Silverware wrote:
Wed Jul 05, 2017 3:37 am
Just to be fair, all games *are* turn based. Even if turns are so short the player doesn't notice that they happen. :V
This is true in the same sense that human cognition is turn-based -- and thus that a person's entire consciousness can be paused perfectly and indefinitely -- because neurons have a clock speed.

Which is is to say, not so much.

If clock-based low-level processing meant every game is turn-based at the mechanics design level, then all the people still complaining that BethSoft's Fallout 3 & 4 aren't "real" Fallout because they aren't turn-based like Fallout 1 & 2 would have to find a different reason to criticize the newer games. :D (Yes, I know, they already do.)

I'm just saying, you want pausing, you get it for free by designing a game to be turn-based. For the subset of games that work as turn-based fun, that's a nice benefit.

Sheesh. :lol:
that individual neurons have limited processing speed doesnt give your brain a global tick :P

except your brain doesnt have a globally synchronised clock or sim ticks :P
which every game running on current computing hardware does have, even the most highly paralellised ones :P
I wondered if you'd go there. You went there. :D

Yes, I'm familiar with computer clocks. My first computer used a 6809E processor -- the "E" stood for "external clock," which meant that although the normal tick rate from the crystal was set to 0.89 MHz [sic], if you POKEd the right number into the multiplier memory address, you could double the clock rate to a blistering 1.8 MHz.

Which is interesting, but also not relevant to games because games (and other apps) don't talk to the clock directly; they go through an API to use a function like setTimer() or setInterval() (such as in Talvieno's simulation) that fires an interrupt after X milliseconds. And a game can have lots of those, all with different values. Which means there's no synchronization to a single global clock, and maybe not even to a single timer interrupt, that makes a game "turn-based" at that very low level, any more than a human brain whose neurons are all firing at different times is turn-based... which was my earlier point.

If you want a real pause capability, you have to build it in at a high level; Silverware was making a funny. My comment was nothing more than that designing a game to be turn-based gives you pausing for free; the end of every turn is equivalent to "suspend all gameplay processing until listenForHumanInput() is fired," i.e., pause. Otherwise you have to make special arrangements for how you organize your core loop, as Dinosawer suggested.

...I swear, 500 years ago you'd have been arguing that angels couldn't dance on the head of a pin. :lol:

Image
Post

Re: Pausing the game

#14
Flatfingers wrote:
Wed Jul 05, 2017 9:32 pm
Which is interesting, but also not relevant to games because games (and other apps) don't talk to the clock directly; they go through an API to use a function like setTimer() or setInterval() (such as in Talvieno's simulation) that fires an interrupt after X milliseconds. And a game can have lots of those, all with different values. Which means there's no synchronization to a single global clock, and maybe not even to a single timer interrupt, that makes a game "turn-based" at that very low level, any more than a human brain whose neurons are all firing at different times is turn-based... which was my earlier point.

If you want a real pause capability, you have to build it in at a high level; Silverware was making a funny. My comment was nothing more than that designing a game to be turn-based gives you pausing for free; the end of every turn is equivalent to "suspend all gameplay processing until listenForHumanInput() is fired," i.e., pause. Otherwise you have to make special arrangements for how you organize your core loop, as Dinosawer suggested.
Except that Dinosawer's "special arrangements" are not special at all - in fact, it's how all basically all (competently-coded) games are structured. Even turn-based games. You have synchronisation to a single global clock because it's much easier to structure things that way - usually this global clock is the screen's refresh rate, or some divisor of it.

The only time you'd use a different structure is when you're dealing with online interactions - and typically you don't have a pause at all then, with even turn-based games applying a time limit for online interactions.
Games I like, in order of how much I like them. (Now permanent and updated regularly!)
Post

Re: Pausing the game

#15
DigitalDuck wrote:
Thu Jul 06, 2017 5:22 am
Flatfingers wrote:
Wed Jul 05, 2017 9:32 pm
Which is interesting, but also not relevant to games because games (and other apps) don't talk to the clock directly; they go through an API to use a function like setTimer() or setInterval() (such as in Talvieno's simulation) that fires an interrupt after X milliseconds. And a game can have lots of those, all with different values. Which means there's no synchronization to a single global clock, and maybe not even to a single timer interrupt, that makes a game "turn-based" at that very low level, any more than a human brain whose neurons are all firing at different times is turn-based... which was my earlier point.

If you want a real pause capability, you have to build it in at a high level; Silverware was making a funny. My comment was nothing more than that designing a game to be turn-based gives you pausing for free; the end of every turn is equivalent to "suspend all gameplay processing until listenForHumanInput() is fired," i.e., pause. Otherwise you have to make special arrangements for how you organize your core loop, as Dinosawer suggested.
Except that Dinosawer's "special arrangements" are not special at all - in fact, it's how all basically all (competently-coded) games are structured. Even turn-based games. You have synchronisation to a single global clock because it's much easier to structure things that way - usually this global clock is the screen's refresh rate, or some divisor of it.
...unless you're like me and when I was starting out programming, I found it easier to do everything multithreaded (POSIX threads, btw), so I didn't have a global clock. I had queues and different pipelines and different 'engines' handling the different data flows. Of course, then you can argue which one was the 'real' engine and go from there. :P
Image
Early Spring - 1055: Well, I made it to Boatmurdered, and my initial impressions can be set forth in three words: What. The. F*ck.

Online Now

Users browsing this forum: No registered users and 10 guests

cron