Live data from Hacker News

Game devs explain the tricks involved with letting you pause a game

kotaku.com

251–260 of 273 posts

Re: Game devs explain the tricks involved with letting you pause a game

#251
post #249
post #244

Earlier quoted context omitted.

Good call, thnaks for the correction. But there definitely was a sync bug. Here's an old forum post discussing it https://tl.net/forum/brood-war/352588-my-replays-are-broken Here's a hacky patch that also documents some of the possible issues https://liquipedia.net/starcraft/Replay_Fix_for_1.16.1 It seems like the bug is related to pausing the game.

more specifically, the bug is due to a buffer overflow during paused chat, and presumably deviant undefined behavior between the original execution and the replayed execution. and most importantly, it has nothing to do with the non-deterministic nature of the game -- non-determinism is trivial to account for, because PCRNGs are not actually non-deterministic; they're (pseudo)random, and deterministically so. They're…

StarCraft Brood War replays would desync due to version issues, too. Any gameplay adjustments in a patch would affect the replay, often in subtle ways that would sometimes result in a valid and interesting game, just different outcome.

Re: Game devs explain the tricks involved with letting you pause a game

#252

Earlier quoted context omitted.

This is a great idea, but respectfully, if you're going to get traction you need to be the one instigating getting people to talk to you. Have a pitch, have an explicit ask, and be willing to put effort into making it happen. Fantastic idea though, you should do it.

There are a few of these floating around for older games, but the world needs more: Ara technica has a war stories feature on game development. https://arstechnica.com/video/series/war-stories For apple 2 games John Romero did a podcast. It’s decent but he seems to have stopped doing them. https://appletimewarp.libsyn.com/ Or YouTube Ted dabney experience has a lot of interesting interviews with older arcade game des…

Gamasutra's "Postmortem" series was great: https://web.archive.org/web/20210823172711/https://www.gamas...

Re: Game devs explain the tricks involved with letting you pause a game

#253

I would prefer to understand why a paused or backgrounded game still manages to consume a ton of CPU or GPU Like, you're still just churning away at the main game loop while literally nothing else is happening except for you waiting for me to unpause it ? Because THAT would be an actual achievement. Hell, I can suspend any process from the Unixy side of things by sending a SIGSTOP signal, for a far more perfect "paus…

But if you were a game dev, you would understand why it‘s not as easy as it seems to outsiders. :)

I'm not saying it would be trivial, but I bet that once you figure out a workable pattern, you could replicate that on other games.

One idea that might be relatively easy to implement- Slow the framerate down to something super slow instead of fully stopping

Re: Game devs explain the tricks involved with letting you pause a game

#254
post #51

One of the things that impressed me in Quake (the first one) was the demo recording system. The system was deterministic enough that it could record your inputs/the game state and just play them back to get a gameplay video. Especially given that Quake had state of the art graphics at the time, and video playback on computers otherwise was a low-res, resource intensive affair at the time, it was way cool. It always s…

It wasn't really that much to do with determinism. Quake uses a client-server network model all the time, even when you're only playing a local single-player game. What the demo recording system does is capture all of the network packets that are being sent from the server to the client. When playing back a demo, all the game has to do is run a client and replay the packets that it originally received from the server…

League of Legends is using the same system

Re: Game devs explain the tricks involved with letting you pause a game

#255
post #51

Earlier quoted context omitted.

It wasn't really that much to do with determinism. Quake uses a client-server network model all the time, even when you're only playing a local single-player game. What the demo recording system does is capture all of the network packets that are being sent from the server to the client. When playing back a demo, all the game has to do is run a client and replay the packets that it originally received from the server…

I don't see why it makes a difference for this purpose that you're replaying network packets or controller inputs or any other interface to the game engine. The important thing is that there is some well-defined interface. I guess designing for networked multiplayer does probably necessitate that, but if the engine isn't deterministic it still isn't going to work. There was a twitter thread years ago (which appears t…

HN post linking to that Twitter thread!

https://news.ycombinator.com/item?id=19883714

Re: Game devs explain the tricks involved with letting you pause a game

#256

Earlier quoted context omitted.

An interesting thing about the a lockstep solution which only considers inputs is that any RNG required in the game must be generated from the input history somehow. This could lead to players being able to manipulate their luck with extremely precise inputs.

https://news.ycombinator.com/item?id=30359560 DonHopkins on Feb 16, 2022 | parent | context | favorite | on: Don't use text pixelation to redact sensitive info... When I implemented the pixelation censorship effect in The Sims 1, I actually injected some random noise every frame, so it made the pixels shimmer, even when time was paused. That helped make it less obvious that it wasn't actually censoring penises, boobs…

I love stories like these.

Btw video number [2] is private.

Re: Game devs explain the tricks involved with letting you pause a game

#257
You also often need several tiers of pausing. For example when paused you want the current game time to be zero, but you also want to ignore only some user inputs. You don't want to disable the menu or pause/unpause actions along with player actions, also you might want to pause dialog but not music (although you might alter it for the menu).

Then there are others such as vfx that can have their own tiers, you might have something in the background that is difficult to pause, stop and/or resume.

Then there are other things such as timers etc. that will need special handling, graphics card interactions etc. When done with those you also need to be able to resume and ensure that all of the previous will continue as if nothing have ever happened.

In the same vein some other "simple" things like saving/loading the game is often anything but.

Re: Game devs explain the tricks involved with letting you pause a game

#258

Earlier quoted context omitted.

That could lead to other subtle problems elsewhere though, because it requires synchronizing the seed. If you can't do that, it could lead to problems. E.g. when comparing offline speedruns where everyone would have a different seed. Then some players could have more luck than others even with the same inputs, which would be unfair. (Though I can't think of anything else at the moment.)

That's not more of a problem than synchronizing the player names at game start. It's table stakes for an online game.

If you synchronize the seed at game start for speedruns, the seed is the same for everyone, and players can again manipulate their luck, so nothing was gained.

Re: Game devs explain the tricks involved with letting you pause a game

#259

Earlier quoted context omitted.

https://news.ycombinator.com/item?id=30359560 DonHopkins on Feb 16, 2022 | parent | context | favorite | on: Don't use text pixelation to redact sensitive info... When I implemented the pixelation censorship effect in The Sims 1, I actually injected some random noise every frame, so it made the pixels shimmer, even when time was paused. That helped make it less obvious that it wasn't actually censoring penises, boobs…

I love stories like these. Btw video number [2] is private.

Quite fitting then that it is called "unnecessary censorship".

Re: Game devs explain the tricks involved with letting you pause a game

#260

Earlier quoted context omitted.

Murdering CEOs is extremism, saying something is an "evil megacorp" is totally different.

There's probably something eloquent by Hannah Arendt about how 190,000 Americans killed by health insurance companies goes unnoticed while one person killing a CEO becomes a spectre of "left wing extremism" held up as an example. Or was it by The Joker from Batman? Or was it when protesters in Latin America sat down blocking a road to protest environmental destruction and an American driver was so angry that he was m…

Name-dropping Hannah Arendt does not rescue this from being an elaborate equivocation about murder.
Post reply on HN