To 64-bit, or not to 64-bit?

Posted by acedude 9 years ago

Walking through doors is hard. They look innocuous enough: Some timber, a frame, a handle – But beyond them lies the end of a train of thought. It is a surprisingly well studied phenomenon: Humans forget things when they walk through doors. In fact, we seem to forget things all the time. I forget what day it is, or what I’m supposed to be working on. Sometimes it gets code-red bad, and I forget my girlfriend’s birthday.

Computers, on the other hand, are comparatively not very forgetful. Aside from the occasional stray cosmic ray, they generally remember what we tell them.  They can also remember a lot of stuff at once. A PlayStation 1 built in 1994 had two megabytes of Random Access memory, or ‘RAM.’ That’s enough for it be able to think about all ~147,000 words in Homer’s Illiad at once. The machine on which I am typing this blog post has 16,000 times more RAM than that PlayStation.

20150418_SN_Ship

Memory sizes are getting exponentially bigger. This means that games can get much bigger. A single 10 x 10 metre terrain batch in Subnautica chews up more memory than Doom needed to run in it’s entirety back in 1993. With more memory, we can develop games that have more stuff in them. More fish, more plants, more vehicles, more terrain – And do all those things in more clever ways. We can give artificial intelligence more complex instructions, or generate simulated currents across kilometres of ocean.

Like most things in life though, size is not everything. Adding memory to a computer is only useful if the computer is able to use it, and to use it, a computer must be able to address it. The postal service can only deliver messages to houses that have an address – If they don’t have an address, the message cannot be routed to its destination. Memory works in the same way. Every new piece of memory needs an address.

Before 2003, consumer computers could generally address 2^32 bits of memory, or 4 gigabytes. In 2003, AMD introduced the first 64-bit consumer processors: The Athlon64. In theory, 64-bit sized addresses could allow over 18 exabytes of memory. In practice the limit is a lot less – But for our purposes, is still ‘massive.’ All this new addressable space could allow lots of new stuff in games.

20150418_SN_RAM

Except in 2003, memory was very expensive. 4 gigabytes of RAM cost around 820 inflation-adjusted US dollars. Game developers did not start making games that used more than 4 gigabytes of RAM, because it was extremely unlikely a potential customer would be able to run the software. And so it was for much of the noughties.

Today, Newegg will sell 4 gigabytes of RAM for 33 US dollars – With free shipping! The cost of RAM has dropped by more than 95% in real terms over the past twelve years. Game consoles, which PC gamers tend to deride as being under-powered, now ship with 8 gigabytes of RAM in XBox One and PlayStation 4 form.

20150418_SN_Cave

Yet today, in April 2015, our new game Subnautica will crash, burn, and give up the ghost if it tries to run with more than 4 gigabytes of RAM. It is limited to the 32-bit address space of pre-2003, because Unknown Worlds is worried that 64-bit addressing will limit our potential market. We are forced to squeeze, crush, and optimise Subnautica’s memory use to hell and back to get it to fit into a postal service address system designed in 1985. Right now, we are debating a choice: Do we limit Subnautica to 64-bit systems, or do we allow 32-bit systems in on the fun?

Now is a good time to note that this is Hugh speaking, not Unknown Worlds. As a team, we have not yet made a decision as to whether Subnautica should be a 64-bit only game. This is my own opinion, forged imperfectly with the aid of a forgetful and limited human memory system!

There are obvious benefits to making Subnautica a 64-bit piece of software. Currently, Steve and Jonas spend week after week working on memory optimisation. They prostrate themselves at the altar of 32-bit addressing to squeeze every last bit of ocean into the game. If the limit was not so restrictive, if there was more room to breathe, all this time could be spent on making Subnautica run with a faster framerate, our creature’s more intelligent, our terrain creation tools more powerful, or our graphics more impressive.

20150418_SN_Kelp

Existing customers with 64-bit systems would benefit enormously. Right now, anyone with 8 gigabytes of RAM and a 64-bit system will crash if Subnautica crosses the 32-bit address limit. If Subnautica was 64-bit, these crashes would disappear, as Subnautica extended itself into the vast sea of RAM available to it. Subnautica’s crash rates would likely plummet.

What of the costs? Conceivably, the could be substantial. What if lots of people have purchased Subnautica, and currently run it on 32-bit systems? Subnautica’s Steam Store page states (pre-emptively) that a 64-bit system is required, but that requirement was added in February after several thousand copies had already been sold. Further, what if lots of people have ignored the minimum system requirements, and bought the game anyway?

Fortunately, we can answer all these questions, using Subnautica’s in-built anonymous telemetry system.  Between 27 November 2014 and 11 April 2015, Subnautica was run on 88,622 unique machines. A unique machine being a unique Steam ID, combined with a unique GPU chipset, CPU core count, and operating system.

It turns out that a substantial number of people ignore Subnautica’s minimum system requirements. Of those 88,622 machines, between 24,064 (26%) and 27,905 (31%) do not meet the minimum GPU, operating system, and RAM size requirements listed on Subnautica’s Steam store page.

747 different GPU’s have been used to run Subnautica. The most popular individual card is the Nvidia GTX 760, with 4.9% of machines using this GPU.  That card easily clears Subnautica’s minimum spec – But 3.9% of machines are using the Intel HD 4000, which is way below minimum specification. In fact, between 23% and 29% of GPUs used to launch Subnautica are less powerful than our minimum required standard.

20150418_SN_GPUs

Clearly, we have a GPU issue – Our market is using less powerful GPUs than we expected, and as a result, Subnautica might be running like a sticky walrus for around 25% of customers. Enough about GPUs though – We came here to talk about memory. If a similarly substantial proportion of customers are using 32-bit systems, we would be ill-advised to switch to 64-bit only.

20150418_SN_AddressSpace

They’re not. 97.5% of machines that have launched Subnautica during the sample period are 64-bit systems. 2,236 are 32-bit, limited to 4Gb of addressable space. Now, we don’t want to go raining on the parade of 32-bit players who are having a good time running Subnautica, even if it is only 2.5% of customers. But are these customers having a good time? The question to ask is – Are these machines running Subnautica effectively at all?

20150418_SN_RAMs

Do these 32-bit machines have enough RAM, a powerful enough GPU, and a new enough operating system to be able to run Subnautica, despite their 32-bit address space? By going 64-bit only, would 2,236 otherwise happy machines be forced to stop playing? What number of these machines meets Subnautica’s other minimum requirements, despite missing the 64-bit requirement?

Between four (4) and seven (7). I’ve added the brackets so you can be sure that is not a typo. The margin of error (3) is nearly as big as the lower bound of the estimate. At most, 0.008% of customer machines are at risk. Leaving aside GPU and operating system requirements, only forty-two (42!) 32-bit machines in the sample have enough RAM to run Subnautica at all. Even if the game is running on these machines, it can only be running in a stunted and unpleasant form.

We as a game developer must make decisions that are best for our customers. Generally, this means not doing anything that could damage the ability of a customer to play the game they have purchased. This principle must, however, have reasonable limits. We have found those reasonable limits.

Having warned of potential minimum requirement changes on our Steam Store page; having determined that at most, 0.008% of customers otherwise meet Subnautica’s system requirements and will suffer upset; and in the context of the enormous benefits that the overwhelming majority of customers will receive should this decision be made: Subnautica must be made a 64-bit only game.

Hugh

20150418_SN_SandShark

Comments are closed.