
Pausing a game is so common that I doubt many of us ever really think about it. Maybe a pause menu has a cool song, or maybe you’re playing an always-online game that features a pause menu that doesn’t actually pause anything. In those cases, you might momentarily contemplate the act of pausing a video game. Those are the rare exceptions. Normally, we all just pause and unpause without a second thought. It’s just expected that most games will let you pause the action.
But how does that actually work? How do developers actually let you pause a game?
I asked developers on social media to tell me how they make a game pause, and the answers I got were all over the place. Many devs said that most modern game engines support pausing, and it shouldn’t cause too many issues as long as you don’t screw anything up while making the game. But, as you might expect, game development is weird and complicated and messy, and that means sometimes pausing a game involves manipulating time.
Sloooooowing dowwwwwnnn timmmmmeee
“In Waves of Steel, pausing slows the game speed down to 0.000000001 times normal speed,” explained game developer Chris Weisiger on BlueSky. “In other words, it’d take about three years of real-time for one second of game time to pass. I did this because I heard that Unity has special behavior for when gamespeed is 0, which I wanted to avoid.”
“As a hobbyist in Unreal, I do something a little stupid,” said dev Tommy Hanusa on social media. “I set the timescale to .000001 so that I can let the player/tester eject from the pause and fly around (with an appropriately ridiculous speed of like 5000000) in case they want to show me something.”
Many other devs told me that they just set the game’s timescale to 0 when you hit pause and make sure that certain functions, like the menu UI, ignore that command and still work as expected.
So many flavors
Another aspect of pausing a game that I hadn’t considered was that there are different kinds of pauses. For example, hitting start might pause a game and bring up the pause menu. But what if you disconnect a controller? What if you open the game’s inventory? What if you hit the guide button on an Xbox and pop out to the guide? These are different kinds of pauses, and some games have a whole bunch of them.
“I worked on various games at Frontier, including Kinectimals on the Xbox 360,” explained game dev Andrew Gillett via email. “I wasn’t directly involved with this part of the game, but I recall there were something like seven different levels of ‘pause.’ For example, the game should pause if the Kinect camera is disconnected, and this is a different kind of pause than when the user has brought up the Xbox system menu.”
Dreamless on BlueSky explained that these different kinds of pauses could sometimes cause headaches for devs.
“I remember in the Xbox/PS2 era we’d do a pause for normal gameplay,” said Dreamless. “With exceptions like can’t pause during QTEs & etc. Then, when it was time to ship, we’d read the [Technical Requirements Checklists] and have to go back and add a special pause for when you unplug the controller. The two pauses would conflict and cause bugs.”
Look at this photograph
Perhaps my favorite pause method involves devs freezing time and then taking a screenshot of the game which the game then uses as the background behind the pause menu UI, letting them get up to all sorts of nasty business behind that image, like not rendering enemies or even moving the player to an empty room.
“Usually, I will…take a screenshot of the gameplay at the point the game is paused and then draw that under whatever pause screen menu while also no longer drawing the actual objects,” said game dev DW O’Boyle. “This is mostly just to free up some memory, but it isn’t really necessary for the style of games I make.”
“In most of the Vlambeer games and Minit / Disc Room,” said developer Jan Willem Nijman, “I take a screenshot (with the UI disabled), then either jump to a completely different empty room or deactivate everything…with that screenshot as the background, [and] on unpause jump back [to the game]. Sometimes there’s a 1-frame delay because that screenshot needs the UI disabled.”
When someone replied that this trick always felt “hacky” to them, Nijman said that in every game they’ve worked on, you’ll find “a healthy dose of hackyness.”
Everyone screws it up once
My big takeaway from all of these responses is that, generally speaking, pausing a game isn’t the most complicated feature to get working in a project. However, you still need to be mindful of how you implement it, and do proper amounts of testing if your game has quirks that might cause issues when you start pausing game time.
Developer Caliban Darklock told me on BlueSky that a lot of game makers screw up adding a pause function early on in their development career, which can lead to problems, but can also be a very important learning moment.
“The first time I implemented ‘pause’ in a game, I had every single game object checking whether the game was paused in every single frame, which degraded performance across the whole game,” said Darklock. “Now all my objects are arranged in a hierarchy, and only one object at the top checks if the game is paused.”
“Most developers do a horrible, sloppy nightmare job the first time they implement this, and then they know better for the rest of their lives.”