Why do PC games take so much memory?

Started by
21 comments, last by _the_phantom_ 16 years, 6 months ago
Quote:Original post by XaosII
Im bringing this up since i like to play some of my games in windowed mode, and have something else up on a second monitor. But with the game taking up so much memory, it tends to make the other application slow too.

I doubt they're that related. It's more likely that the program is running slowly because the game is juicing up the CPU.
Advertisement
Quote:Original post by XaosII
Im bringing this up since i like to play some of my games in windowed mode, and have something else up on a second monitor. But with the game taking up so much memory, it tends to make the other application slow too. Yeah i know im not really helping reduce memory usage :P and i certainly cant do something like that on a console....but its still a bit baffling why they dont purposefully create tighter memory controls.


Takes time away from other things in the game. And since developers can reasonably assume they have free access to most of the system memory why bother? Sell more games by having more detailed maps, models, etc then only taking up 64 megs of RAM.
Quote:Original post by XaosII
Thanks for all your responses guys, though im a bit disappointed that the truth of the answer is "we do it cuz we can" from the point of developers. I mean, inst that purposely hurting the game's scalability for lower systems?

Im aware of the argument that its cheap to upgrade ram, but with how RAM hungry these games are (relative to the forced restrictions on a console) having only 1GB of memory, but a $200+ video card would still yield fairly poor performance. Probably smooth framerates when still, but stuttering while moving (and loading assets into view). It only makes the task of upgrading more expensive and confusing for a person not so tech savvy.

Are the semi-small gains (for a good chunk of titles) from the additional use of memory for a PC-console title worth it for PC gamers when they take up twice the amount?

Im bringing this up since i like to play some of my games in windowed mode, and have something else up on a second monitor. But with the game taking up so much memory, it tends to make the other application slow too. Yeah i know im not really helping reduce memory usage :P and i certainly cant do something like that on a console....but its still a bit baffling why they dont purposefully create tighter memory controls.


It should perhaps be noted that you can reduce (and sometimes even remove)loadtimes quite significantly by keeping as much as possible in the system memory (You can even remove the need to perform certain calculations in realtime by keeping the results in lookup tables), thus there really is no point in using less RAM as that would reduce performance for all systems that have enough memory for no reason. (RAM is insanely cheap compared to other components)
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Quote:Original post by XaosII
Thanks for all your responses guys, though im a bit disappointed that the truth of the answer is "we do it cuz we can" from the point of developers. I mean, inst that purposely hurting the game's scalability for lower systems?
It's not "we use a lot of memory because we can" but instead "we don't optimise because we don't need to". The people who buy games are the people who have decent PCs and so optimisation of this type doesn't get many more sales. That makes it a premature optimisation, and we don't do those.

Remember, making games is about making software. Making software is not about crunching down on every spare byte or CPU cycle, but about getting a product which works well for the people you sell it too, as quickly and cheaply as possible. It is business, NOT art.

Quote:What exactly is taking up all that memory compared to the same title on a console? Can PC game developers actually be much more resourceful?

256x256 texture = 65536 pixels
2048x2048 texture = 4194304 pixels
4194304 / 65536 = 64.

If a PC game is only using 2-3 times more memory, that's pretty good.

Console versions of games usually have their textures scaled down from the resolution that the artists actually created them at. On the PC, it's assumed you will have vastly more memory (because if you play modern games that assumption is correct) so it allows developers to put in the assets as they were originally intended. It's not a matter of "PC game developers are lazy" or "PC game developers don't optimize". It's a matter of taking advantage of the hardware available to you. Seeing as 2GB of fast RAM is less than $100, it's something every gamer should have.

Most games aren't designed to be run in a window while you use other applications. In most games, that concept is ridiculous to begin with. You shouldn't have time to do other things in the first place.

Try turning down texture detail in whatever game you're using, if the option is available, and you should see massive drops in memory usage (and possibly big gains in performance, too).
_______________________________________Pixelante Game Studios - Fowl Language
Just out of interest, does anyone know what the memory footprint of Warcraft 3 is?
This is a pretty common saying regarding memory management:

"It's more expensive to pay a programmer to be efficient with resources then to purchase faster/more resources"...be they RAM or CPU speeds.

Also, as games get more advanced with graphics and 3-D models, they require more RAM to store that information. A low poly model has fewer points to keep track of then a high poly model so its ram footprint is smaller. Now that more ram is common, developers can create nicer looking games.
Quote:Original post by Promit
Well, look at it this way.

A reasonable working set for graphics data nowadays is anywhere in the realm of 384 MB and up, depending on your hardware target. That's data which is currently live in some sort of surface or buffer. From that, it's reasonable to say that at least 256 MB is backed data -- it exists in video and system memory, for events like device lost. (Notice that this data will probably be paged out.)

That's the first 256 MB of missing memory.


It's worse than that.. all data is backed up in system memory, not only data in use in video memory. When you lock a texture, copy a buffer to it and unlock, you can very well delete that buffer just after, so the original data does no longer exist, and the API has no way to know it.

Y.
Quote:Original post by Ysaneya
It's worse than that.. all data is backed up in system memory, not only data in use in video memory.
Under D3D, D3DPOOL_DEFAULT surfaces are not backed up (permanently) in system memory. Yes, while you lock one of those surfaces to write to it you're using system memory, but that's a temporary block that is discarded once you unlock it and it's finished being uploaded to video memory.

Richard "Superpig" Fine - saving pigs from untimely fates - Microsoft DirectX MVP 2006/2007/2008/2009
"Shaders are not meant to do everything. Of course you can try to use it for everything, but it's like playing football using cabbage." - MickeyMouse

Quote:Original post by slayemin
A low poly model has fewer points to keep track of then a high poly model so its ram footprint is smaller.

That really isn't much of an impact. Models are extremely cheap on ram. Especially compared to textures.

Often, a model vertex (point) uses about 32 bytes of memory. A 5000+ vertex model would be a pretty high-res model of a humanoid, and would cost about 150-200KB. Pixels are usually about 4 bytes of memory. An average size texture of 512x512 is the memory equivalent of 32,768 vertices. A texture of 1024x1024 would match 131,072 vertices.

This topic is closed to new replies.

Advertisement