Jump to content
Aveyond Studios Community
Sign in to follow this  
Brycej

Do you have a 64-bit system?

Recommended Posts

It’s becoming more and more common… users have 64-bit systems… but most all games are still written exclusively for 32-bit.

 

So, my question… how many of you have a 64-bit system?

 

For those that have a 64-bit system… do you run 64-bit Windows?

Share this post


Link to post
Share on other sites

Sure... if you run "msinfo32.exe" you'll have a "System Summary"... in this list you'll find an entry called "System Type". This entry will state the system architecture (x86 being 32-bit, x64 or ia64 being the 64-bit architectures).

 

My reason for this curiosity is that we could make games with much better performance... if we only knew the hardware of the audience better. ;)

Share this post


Link to post
Share on other sites

Well, in very simple terms...

32 bit is having a normal size glass to drink your coffe.

64 bit is having a glass double the size of the normal glass to drink your coffe.

Now, if you want to drink allot of coffe, you could use fill your normal sized glass twice. But it would be allot faster to drink coffe if you filled just one double size glass.

Lol, thats the best I can explain in simple terms. :P

 

By the way bryce, how much performance do you need?

Are you going to make the most resource demanding game that exists?

Performance is a problem of bottlenecks, if your game isn't the most graphics/physics demanding in the world. There is no reason to use 64 bit, because 32 bit will be enough to run it as well.

By the way, steam got statistics about its user base pcs.

You can find it here:

http://store.steampowered.com/hwsurvey

Share this post


Link to post
Share on other sites

While Sargon provided a rather high-level expression of the value of 64-bit, let me elaborate just slightly.

 

If you run a 32-bit product on a 64-bit system (and presumably, but not necessarily, a corresponding 64-bit version of Windows), the system needs to translate the 32-bit operations into their 64-bit counterparts. So, using the coffee example, this would be as if you wanted a small cup of coffee, but it was delivered in a large cup. In the computer world, this is referred to as “Type Promotion.” There is a performance penalty for translation, but this really is only of the many.

 

Let’s look at another more unfortunate issue… the translation layer for messaging. In Windows, there’s a layer that is provided to support “Legacy” systems by more “contemporary” ones… this layer is called “Windows on Windows” (often abbreviated as simply “WOW” ). This layer manages such things as; translations of 32-bit application program interfaces to their 64-bit counter-parts (when such exists), translates memory addresses from their 32-bit representations (as known to the 32-bit application) to their true 64-bit address for use by the system (both hardware and software), and so on. All 32-bit processes running on 64-bit systems have this translation layer mapped into them. This mapping, the space it takes, and the thunking it provides are all performance “penalties.”

 

On the subject of performance… let’s take a closer look. Clearly, 32-bit applications were compiled for 32-bit processors. When running on 64-bit processors, they cannot know of the vast array of optimizations offered by the CPU they are running on. Such optimizations may seem subtle, but it is akin to running code compiled for the 80x286 on a Pentium class system… it will run, but clearly not as it would if simply recompiled.

 

Additionally, as alluded to above, the 32-bit process can only map 32-bits worth of memory. Assuming the user is not leveraging the Physical Address Extensions (a discussion on PAE will have to wait), this translates to:

32-bit Windows Vista Home Basic, Home Premium, Business, Enterprise, and Ultimate: 4GB

32-bit Windows Vista Starter: 1GB

64-bit versions of Windows Vista Home Basic: 8GB

64-bit versions of Windows Vista Home Premium: 16GB

64-bit versions of Windows Vista Business, Enterprise, and Ultimate: 128GB

 

So… what does this mean if your game doesn’t leverage all this memory?

 

Let’s go back to the coffee example. If I walk into a coffee shop and there is only one person at the register and I’m not the only one in the queue, they don’t address me, as the person at the register can only service one request at a time (her address space is limited to one). Now, if there are two persons at the register, the number of persons able to be addressed is extended to twice the number… in this simple example, the number is now two.

 

This paradigm extends to the 64-bit/32-bit discussion like this. If a page of memory is requested, and it cannot be addressed into the available address space, other pages are needed to be swapped to disc in effort to make room (referred to as “paging”… an historically expensive transaction as it involves an I/O request). However, if the address space is twice as long, more opportunities exist before paging must occur to service the request (I’m side-stepping the memory fragmentation discussion for the moment).

 

So, with this in mind… let’s imagine what this means for our games. If we run a 32-bit game on our 64-bit system… we take on the needs of the game, the needs of whatever else may be going on at any given time in the system, and we also get the cost of the “WOW” layer (or layers as it may be… remember, they get mapped into each process independently). All this leads to a muddied environment, and some possibly paged out coffee (if I may make a poor attempt at some humour).

 

As pointed out (and it’s entirely true), performance is a reflection of “bottlenecks”… but “bottlenecks” are most often a reflection of oversight. When you write your game, the profiler is your friend… but if you don’t distribute a 64-bit version of your products… you owe it to your clients to run the 32-bit version under the 64-bit profiler as well. Additionally, when you play a game… pick the one that most appropriately targets your system.

 

P.S. Sargon: Thank you for the link to the Steam page… they cover some very valuable information on multiple processor usage, but don’t call out the “bit-ness” of those processors.

Share this post


Link to post
Share on other sites

Currently I run a 32-bit system, but we are moving into the 64-bit world soon. Certainly our new software at work will be shown at our annual tradeshow on 64-bit systems (though not all of them will be 64-bit compiled programs - not all of our software needs the extra memory space). This is where the technology is going and eventually once drivers and other things come on board our software will take advantage of the 64-bit architecture.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×