What’s the difference between a “32-bit” and “64-bit” game? How does this affect the engine and how much RAM it can use?

210 views

This hit me today as I was prepping some pasta. I’ve got a relatively beefy gaming rig that has 12 gigs of VRAM and 48 gigs of normal RAM. However, older games will still have a tendency to drop frames when a lot of stuff is happening at once, even with these standards. From what I’ve read this is because there’s something in the games, or their engines, or whatever that means they can’t use the full RAM capacity of my computer or draw from it as much as they need. I’ve even noticed this when configuring game settings for, as an example, *Total War: Rome II*, where even though it detects my graphics card it won’t draw on its full strength to get what it needs, always locking at around 3-4 gigs. By contrast, the more modern *Total War: Warhammer III* can use my rig’s full power, meaning I basically never drop frames when playing it.

Why is this? What inherently stops 32 bit games from using more VRAM?

In: 3

8 Answers

Anonymous 0 Comments

As a basic idea, computer memory is like if you had a giant piece of paper. Each letter (byte) can be referred to by its position, so the first letter on the page is 1, the second is 2, and so forth. 0 is a commonly used value to refer to “invalid”. Now, computers like working with a fixed-length values as it makes a lot of operations faster and simpler.

A 32-bit computer naturally works with 32-bit numbers, which allow values of up to 4 billion. This limits you to referring to about 4 GiB of memory. Now, the operating system (OS) needs to reserve some of that memory for its own operation, and the simplest way to do so is to say all numbers that start with a 1 are reserved. This removes half of that memory, limiting you to 2 GiB of actual memory usage in any given program. In the later days of 32-bit computing, it became possible to enable an option, required by both the operating system and program to agree to use, that reduced that to only a quarter of the memory, or those addresses that start with two ones, allowing a program to use 3 GiB of memory.

Instead, a 64-bit computer works naturally with 64-bit numbers, which raises the 4 GiB limit by squaring it, leaving us with about exabytes, or about 16 billion billion bytes. As this number is insanely higher than any practical computer currently has, the half limit currently applies with no common way around it.

Its worth noting that most 64-bit processors don’t actually allow all 64 bits to be used for addressing currently. Generally, only 48-bits is actually usable by the processor, which provides a limit of about 256 terabytes, again, with half of that taken by the operating system. Once we start to approach that limit, its likely processors will start allowing closer to the actual 64-bits, but its also likely a decade or two away still.

There are also tricks that 32-bit processors and operating systems started to do to allow more than 32-bits right before 64-bit computers took off. While most programs would still be limited by the 32-bit limit, the OS and processor would often be designed to actually work with 48-bits. In such cases, the computer as a whole could have quite a bit more memory than any single program could use.

You are viewing 1 out of 8 answers, click here to view all answers.