Sign in to follow this  
neakor

Why do PC versions require more RAM than their PS3 versions?

Recommended Posts

Why do all the PC ported games require more RAM than their PS3 versions? For instance Assassin's creed requires 1 to 2 GB of RAM on a PC, where PS3 only has 256mb of RAM. This is pretty much the case for all games that have both PC and PS3 versions. Does anyone know why this is?

Share this post


Link to post
Share on other sites
Because the PC has a large Operating System running on it, using up memory.

Because the PC version has higher resolution textures.

Because the PC version has all the graphics cached in system memory so that they can be quickly and easily restored when the app loses focus, which can't happen on a PS3.

Lots of reasons.

Share this post


Link to post
Share on other sites
Here are a few more reasons.

The console hardware is (basically) fixed and can be targeted specifically. The assets can be pre-processed at build time to load directly into memory. Audio can be written for a single specific medium-quality bitrate. The PC may need to convert the assets to a format supported by that particular machine.

The PC has a wide spectrum of hardware and they all need support. The games need to run reasonably on the minimum spec machine (let's say a single core 1.9 GHz and 5200 card) and also scale up to today's high-end machine, and beyond.

Many PC games are written with some future-proofing. They may have so many added effects that are well beyond the hardware at the time the system is released. For instance they may have a slider for the number of particles, knowing full well that a high-end gaming PC at the release date can only support 70% of maximum. They may have some awesome looking shaders that are known to kill the framerate on today's hardware, in the hopes that future hardware will be fast enough to compensate for it. This takes space. No such efforts are required or recommended for consoles.

The console is only doing one thing -- running your game. The PC is running your game, in addition to running your chat programs, virus scanner, the system tray apps, background iTunes, background Steam, minimized web browsers, and so on.


I could probably come up with many more, but those are the first ones on my brain.

Share this post


Link to post
Share on other sites
wow thx guys! those r great info!

so in conclusion, the PC version may or usually has a better graphic quality.

Quote:
Because the PC version has all the graphics cached in system memory so that they can be quickly and easily restored when the app loses focus, which can't happen on a PS3.


this is a great reason! thx

Quote:
The console is only doing one thing -- running your game. The PC is running your game, in addition to running your chat programs, virus scanner, the system tray apps, background iTunes, background Steam, minimized web browsers, and so on.


so based on ur info, the recommended RAM, say 2GB, is really saying that the game will use 256mb but the other 1.75GB is required assuming u have all the other stuff going on. is this right?

Share this post


Link to post
Share on other sites
There is also the matter of hardware access. On a console, your rendering code talks directly to the hardware, and keeps all of its data in the hardware's native format.

On a PC, there are two issues: a) you have no idea what graphics hardware will be available on the target machine, and b) no desktop operating system is going to allow you direct access to the hardware. For both these reasons, your game has to use an intermediate API such as OpenGL or D3D, and all data has to be transferred through/converted by the drivers.

Share this post


Link to post
Share on other sites
Quote:
Original post by neakor
so based on ur info, the recommended RAM, say 2GB, is really saying that the game will use 256mb but the other 1.75GB is required assuming u have all the other stuff going on. is this right?


Not quite. Operating systems typically support virtual memory. That means, regardless of physical RAM, an application can use either 2-3 gigabytes (32-bit OS) or 16 exabytes (64-bit OS).

But when OS runs out of physical RAM it starts paging to disk, causing things to slow down, but still work. For this reason, the recommended value is very vague. On systems without virtual memory, if you run out of physical RAM (and don't do something on your own), application crashes.

There are only two major contributors to memory use worth of notice:
- higher fidelity (higher resolution graphics, sound, perhaps more of them)
- pre-loading and caching to improve on user's experience

Size of texture in memory will be width*height. So if improved textures have double the with and height, the memory requirements increase 4 times. If console only uses 200MB, higher resolution will use 800MB for same content.

And, since on PCs memory is not so restricted, it is possible to preload or precompute more, OS may choose to cache files in memory (hundreds of megabytes), hardware drivers may choose to do more buffering, and one needs some leeway to prevent paging to kick in too soon.

But even without changes, the numbers quickly go up:

Vista baseline install requires around 1GB of memory just for clean boot. Most of this will be paged to disk, but several hundred megabytes may remain active. File system cache will take up additional hundred MB, some will be various kernel caches. XP for example requires between 65 and 230MB for clean boot.

So even if same assets are used, then the process itself (executable and related) will use similar amount of memory - except that the previous figures required by OS must be added on top of that. So 256MB + 230MB/1GB gives a rough figure of 1-2GB for optimal experience.

Share this post


Link to post
Share on other sites
Err... although possible, it is generally not true that the PC version looks better than the Console version, because of reasons already mentioned (targeted hardware can be optimized WAY more).

I am not saying it is not posible, but generally to get the same quality on PC than Xbox360/PS3 + HDTV you'd need to have a VERY powerful computer that well exceeds the price of both consoles combined.

Share this post


Link to post
Share on other sites
There's one other reason (although it makes less sense these days, where games are usually developed first on console and then ported to PC). I've worked on numerous ports of games from PC to console, and in those cases ... the PC version simply used lots of extra RAM because it could. PC developers have no reason to worry about limiting RAM usage, because the virtual memory system of the OS makes it a non-issue. On console, you *must* limit memory, or the game doesn't run, period.

Of course, if the game is built on console first, then it's much less likely that the PC version will be using lots of extra RAM for no good reason. But it does mean that it can take a simpler approach with some things. For example, why bother with complicated streaming code to manage the lifetime of all your texture and vertex data (tuned to the exact speed of the BluRay or DVD drive), when you can just load it all? (Assuming that the virtual address space is large enough for everything used in a level).

Share this post


Link to post
Share on other sites
Quote:
Original post by trunks14
Err... although possible, it is generally not true that the PC version looks better than the Console version


I have to completely disagree with this.

Share this post


Link to post
Share on other sites
thx for the info guys! great discussion haha

Quote:
Original post by swiftcoder
There is also the matter of hardware access. On a console, your rendering code talks directly to the hardware, and keeps all of its data in the hardware's native format.

On a PC, there are two issues: a) you have no idea what graphics hardware will be available on the target machine, and b) no desktop operating system is going to allow you direct access to the hardware. For both these reasons, your game has to use an intermediate API such as OpenGL or D3D, and all data has to be transferred through/converted by the drivers.


hmm, i didnt know that. u r saying when u code games for say PS3, u dont use OpenGL? then what do u use?

im asking this coz im writing an engine on top of OpenGL for PCs. but i would also like to port the engine to the consoles one day. say cryengine, do they have 2 versions one for console one for PCs?

Share this post


Link to post
Share on other sites
Quote:
Original post by Weetbix
Quote:
Original post by trunks14
Err... although possible, it is generally not true that the PC version looks better than the Console version


I have to completely disagree with this.


there have been alot of tests out there comparing PC vs consoles. if price is not an issue, PC has more horsepower than all the consoles.

Share this post


Link to post
Share on other sites
Quote:

hmm, i didnt know that. u r saying when u code games for say PS3, u dont use OpenGL? then what do u use?

im asking this coz im writing an engine on top of OpenGL for PCs. but i would also like to port the engine to the consoles one day. say cryengine, do they have 2 versions one for console one for PCs?


In the exact same way you are programming for the PC in PC centric API's every console has it's own OS API and hardware API. Sometimes these are very similar to the PC counterparts, other times they digress significantly. The largest cause of digression being that the OS on a PC is there to abstract all the random hardware to an API that is generic across every PC. On a console there is very little difference in hardware between individual boxes, so it doesn't make sense to waste RAM and CPU to do the same high-level abstraction the PC does. Thus you get APIs that taylor to the hardware (direct DMA commands, sector/track disk access, assembly instructions for the GPU / sound processor, access to special memory, access to OS screens (save game managment, friends lists, on-screen-keyboards, etc.) ).

API's lack many of the conviences needed on a PC. There is no alt-tab, so nothing related to it is supported. You know everything is there in the docs, you aren't going to be checking for things like supported graphics modes, sounds formats, number of processors at runtime.

And, as it has been stated before above. A console isn't the "rock solid" PC you have on your desk. For all the bashing people give desktops they are very stable and reliable platforms nowadays. Think, when was the last time you saw a BSOD? On a console your back to the old days of either it worked, or it crashes and you have to reboot. You don't have a stable OS like linux or windows to catch your program and tell the user "sorry, application error. check the log files and send a crash report". Unless you are using a dev kit, there are no catches when things go wrong. Everything has to fit in memory. You have to handle when a disk is ejected, memory card inserted/removed, power turned to standby, etc. It's a whole different experience from programming a PC.


Quote:

there have been alot of tests out there comparing PC vs consoles. if price is not an issue, PC has more horsepower than all the consoles.


The key there is the "if price is not an issue". You spend your power doing different things on a console vs a PC. And for the price point, the console is going to do more than a similarly priced PC bought near the time of the console's launch.


[Edited by - KulSeran on May 31, 2009 5:46:34 PM]

Share this post


Link to post
Share on other sites
Quote:
Original post by neakor
hmm, i didnt know that. u r saying when u code games for say PS3, u dont use OpenGL? then what do u use?

im asking this coz im writing an engine on top of OpenGL for PCs. but i would also like to port the engine to the consoles one day. say cryengine, do they have 2 versions one for console one for PCs?


GCM.

but anyway, the ps3 actually has 512mb of ram (split across GPU and CPU).

mostly, games use more memory on the PC, because they can . To get things to fit on a console, textures, geometry, sound, animation are all compressed, pruned, reduced, squashed, and stored compressed. The streaming rate of data from BR/DVD is also a massive consideration for console titles, particularly on the 360.

using more ram is a way around this. just load everything into ram, and go from there. Most people have 2gb minimum these days. Its likely the PC is also running with much higher fidelity assets than its console counterparts, again, because they can .

so, to answer your original question, why? because its there, mostly.






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