Like all computers, consoles have a limited amount of memory. If they run out of memory then they can’t do anything else, and bad things happen. On older systems this could actually cause a total crash. In newer systems the operating system typically intervenes to free up memory in a hurry, but this typically means killing entire programs wholesale, which can cause problems in its own right.
To prevent this, programmers have to be careful about what the program remembers. You don’t want the computer to remember things it no longer needs, but you don’t want it to forget things it still needs to remember. Figuring this process out is called *memory management*. On early systems, programmers had to do all of the memory management themselves. More modern programming languages and game engines use a variety of techniques to take some of this burden off the programmer by doing it automatically themselves. But for games in particular, these techniques are often not enough, and the programmer still has to do some manual forms of memory management.
When memory management isn’t done correctly, a number of different things can happen, depending on the exact type of error. A *memory leak* is what happens when the computer habitually fails to forget things that it should be forgetting. That word “habitually” is key here. It is usually not a problem for the computer to remember one or two stray objects, but a leak happens when something is wrong in the whole management system, so there’s some whole category of objects that keep going into the system and never being forgotten. They pile up, either quickly or slowly, like water leaking into a bucket. It’s not a *huge* problem as long as the bucket doesn’t ever get full. But if it fills all the way up, Bad Things Happen, and memory leaks increase the risk that the bucket will fill up all the way.
*The Legend of Zelda: Breath of the Wild* makes some aspects of its memory management very visible to the end user, so I’ll use it as an example (Its sequel, *The Legend of Zelda: Tears of the Kingdom*, does this too). As an open-world game, it has to remember many things about the state of the world: what enemies you’ve killed, what ore veins you’ve mined, what treasure chests you’ve picked up, what trees you’ve chopped down, and so on. The game world is very large, so every once in a while the system needs to forget what has happened in order to keep memory from filling up completely. It does this on a predefined schedule, determined by how much in-game time passes in the overworld. When the schedule says to, the game forgets everything about the world, and the game signals to you that this has happened with an event called the Blood Moon. This helps keep memory usage low, while also minimizing the end-user’s surprise. You are told the world resets when the Blood Moon happens, but technically it’s the opposite: the Blood Moon happens because the world is being reset.
But that schedule, as it turns out, is not enough. There are a number of ways to force a lot of objects to be created very quickly, to fill up the system’s memory. There are also places where the timer doesn’t run, like when you’re indoors, and these can stop a Blood Moon from happening when it otherwise would, letting memory fill up more slowly. To stop this from becoming a problem, there is another check: if system memory usage ever goes over a certain amount, the world resets *right then*, no matter what the in-game time is, even if you’re in situations where the timer should not be running. This is also signaled to the user, in the same way scheduled resets are: with an immediate Blood Moon. Fans call this a *Panic Moon*, because the system is panicking and hitting a sort of emergency stop button.
Latest Answers