Moving to 64 bits

The release of APB’s hardware specs last week reminded me of something I’ve been meaning to write about for a while: memory limits.  APB’s limits (2GB minimum, 4GB recommended) was the most interesting part of the spec throughout development for me.  2GB was always a hard upper limit, because we absolutely have to run on 32-bit operating systems (more on that later).  But 2GB was challenging, because APB is unavoidably memory-hungry, thanks to its customisation system.  We’ve always aimed for 100-ish characters in an action district, each with their own unique character and vehicle.  The customisation is such a cool feature of the game that we obviously want those assets to be high quality.  Now 100 unique, high-quality characters and vehicles have an inherent memory overhead, and it doesn’t help that we have to generate them at runtime in the background of an action game, precluding the most CPU-intensive asset compression and optimisation techniques.

We also made the decision to stick to 32-bit XP for most of our development cycle.  It was probably a very good idea in forcing us to keep memory under control throughout, but it also meant we were constantly bumping up against the limit, in contrast to other hardware specs where we were able to develop on high-end hardware and leave optimisation for the minimum spec to near the end.

Ditching 32-bit is not an option, yet
At some point, a game is going to make a 64-bit OS part of its minimum spec.  But when?  64-bit hardware is old news; Core 2 Duo dates back to 2006 and Athlon 64 back to 2003.  It’s the operating system that’s holding us back.  Take a look at the Steam Hardware Survey – at the time of writing, they have:

  • 34% using 32-bit XP
  • 25% using 64-bit Win7
  • 15% using 32-bit Vista
  • 11% using 32-bit Win7
  • 7% using 64-bit Vista

Operating systems are by far the oldest component of people’s machines: on the GPU front, the most popular models are from 2006-2008, and on the CPU side, while the stats are less explicit, nearly 75% of users are on multicore systems (assuming that “physical CPUs” means not counting hyperthreading as 2), which implies they’re at most 4 years old (ish).  My take on this is that:

  • Most people have machines that are up to about 3 years old, and have not changed their CPU since buying
  • A fair number of people have upgraded their system to a newer GPU
  • A large number of people chose to stick with XP over Vista

The failure of Vista is particularly apparent in these stats.  Firstly, being perceived as worse than XP, people avoided upgrading and in fact actively downgraded on new PCs where they could.  Secondly, by having terrible driver problems in its 64-bit edition early on, most retailers installed the 32-bit edition.  Vista ended up not so much transitioning the world to 64-bit as taking the teething problems on the chin.  The good news is that those driver problems got resolved over Vista’s lifetime, and Windows 7 has mostly been installed in 64-bit form.

Clearly, you’d be insane as a business to ship a game as 64-bit only, today.  But it looks likely that Windows 7 will be dominating in 2 or 3 years’ time, and maybe, just maybe, we’ll see a pure 64-bit game around then.  The potential stumbling block is the 11% above on 32-bit Windows 7.  This is pretty worrying.  Are these people who’ve installed Windows 7 but have an old 32-bit CPU?  Or a netbook running a 32-bit Atom?  Upgraded themselves and made the wrong choice at install time?  Stupid retailers?  If we end up with 30-40% of the market needlessly running 32-bit Windows 7 on 64-bit hardware in a few years time, that would be a great shame.

As a final note, these stats are for reasonably hard-core gamers; the Unity hardware survey gives a sobering summary of a more casual market.  There’s no end in sight for 32-bit apps there!

Memory usage through the ages
Let’s look at all of this from a different angle now: when might game developers want to be purely 64-bit?  When will games need to use more than 2GB of memory?  I put together a quick script to suck all the hardware specs from this site, and graphed them over time.  Unfortunately, these are recommended specs – I couldn’t find a good source of minimum spec data (if you know one, please leave a comment).  I’ve highlighted a few random favourites, games that pushed the state of the art when they were released – and I’ve also highlighted the games that broke new ground and recommended more memory than anything before them:

Graph of recommended RAM for games over time

Unsurprisingly, those state-of-the-art games tend to be at the forefront of requiring more memory than anything before.  These are the games that are confident enough in their quality to demand that gamers upgrade their PCs!  You may be wondering why I highlighted Battlefield 2 as the first game to recommend 1GB of memory, as there are a few data points to the left.  Those data points make an interesting sequence: Second Life, Everquest 2, City of Heroes, Guild Wars, and World of Warcraft.  I didn’t highlight them because it’s not clear whether the data is for their current recommended spec, or the spec on their original release dates.  Whatever the case, that was quite a golden age for online game releases!

I can’t wait to see the first breathtaking, groundbreaking game that says “I demand 64 bits; I’m worth it”.

This entry was posted in Business, Game development. Bookmark the permalink.

4 Responses to Moving to 64 bits

  1. Wezz6400 says:

    “If we end up with 30-40% of the market needlessly running 32-bit Windows 7 on 64-bit hardware in a few years time, that would be a great shame.”

    I agree, but I think we will be seeing that. Personally I hope that with the next Windows Microsoft will only release a 64 bit version. I have been on 64 bit Windows 7 since september 21st last year, although I find that due to lack of 64 bit versions I use more 32 bit than 64 bit software I haven’t run in any compatibility issues. In other words, if 32 bit software runs so well on a 64 bit operating system, why still release a 32 bit version? It would help transform the market to 64 bit tremendously if you ask me. Unfortunatly I recall reading that Microsoft does plan on releasing a 32 bit OS once again.

  2. For stats, I’m stuck with 32 bit Win7 because my TP-Link wireless adapter’s supposed-to-be 64 bit Win7 driver would not work. 😐

  3. Felix says:

    Hi Luke,
    Good article, glad data could help out.
    We are currently in the process of reviewing APB which I believe is doing pretty well across the review circuit. Nice work!
    You are right regarding the system requirements given for Second Life, Everquest 2, City of Heroes, Guild Wars, and World of Warcraft. The figures reported were taken from their current FAQ pages at the time of entry into our system and we have only been around for a few years.
    Please get in touch if you would like some help gathering our data for another report.
    Best regards,
    Felix – Game-Debate

  4. Rob Anderberg says:

    Very nice post Luke. It’s worth mentioning that when running under 32 bit Vista and Win 7 APB has about 300MB less virtual memory available to the process after we initialise the engine when compared to 32 bit XP. I suspect this is due to Vista / 7 being architected to use more virtual address space in general as the Microsoft engineers expected they would be running exclusively on 64 bit systems. Well we aren’t and we’re paying for that decision!

    When players give feedback on APB running under 32 bit Vista and Win 7 they tell us two things; first of all that they don’t like the compromises we had to make to ensure that the 32bit Vista and Win 7 clients don’t run our of virtual memory and crash. And secondly that they don’t see why the 32 and 64 bit versions should look different.

    The second one there is a real kicker. I suspect that it’ll be a few years before you see a 64 bit only game, and that until then, development teams will have to produce 64 bit versions that take full advantage of the hardware available while also maintaining a 32 bit version that manages to run in 2GB. That’s going to be horrible.

    As more games join APB in having to explain this issue to their players, the idea that 32 bit OS’s are limited will gain more mainstream acceptance. Until then we’re going to continue to have a tough time trying to educate our players about this problem / fact / mess :).

Comments are closed.