• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Why can't smaller size games load their entire content into RAM to eliminate loads?

nkarafo

Member
This should be a given for PCs with lots of RAM.

For instance, with 32GB of RAM you can fit most games in there entirely. Sure, the initial load would be a couple minutes but after that, the game would not need to stream from the HDD. Plus, RAM is many times faster than a SSD even.
 

shandy706

Member
That is not how RAM works.


It can though, lol.

Gotta love "end thread" posts that aren't right.

"Installed into RAM" hahahaha what?

RAM is volatile memory, aka everything in RAM is wiped when you turn off the device. Also just because a game's install size is small doesn't mean it uses a small amount of RAM. For example, you can have a barebones games with the only asset in it being an NPC. That would make for a very small game size. But if you have 10,000 instances of that NPC you will use a lot of RAM.

Boy you guys are off, lol.

You can actually "install" a game to RAM.

For example, you could have a system with 32GB RAM. You could set a 16GB RAM drive and transfer an entire Steam game into it. Even larger games (under 16gb). Bam, now you have 1-2 second long load times or less.
 

xir

Likely to be eaten by a grue
think Vib Ribbon did this back in the day, didn't Ridge Racer do this, but had loading times to do it?
 
Game size != Ram Usage Size

Although I would imagine it's very possible to 'stick' small games in 5GB+ RAM. But it's more work than just throwing it in there.
 
The point would be to load in the background.
So instead of:
load level 1(player waits)->player plays->load level 2(player waits)->player plays->etc..
you will have:
load level 1(player waits)->player plays +load level 2->player plays level 2 (no waiting)->etc..
Open world games do that type of thing, to the point that there aren't even visible "levels" to the player.
Not just open world. That's pretty much the loading scheme for continuous linear games like Crash Bandicoot, and God of War.
 
It can though, lol.

Gotta love "end thread" posts that aren't right.



Boy you guys are off, lol.

You can actually "install" a game to RAM.

For example, you could have a system with 32GB RAM. You could set a 16GB RAM drive and transfer an entire Steam game into it. Even larger games (under 16gb). Bam, now you have 1-2 second long load times or less.

Yep. Lot of people embarrassing themselves right now. It may take an external application, but it's a proof-of-concept. Before I had an SSD I use to run Natural Selection 2 off of Ramdisk and my load times were literally a 1/10th of what they were for an HDD(though, the game's poor optimization has been fixed since)
 

CamHostage

Member
I unfortunately don't have a lot of technical knowledge to contribute (and frustratingly, there's a lot of "No it isn't", "Yes it is" going on in this thread; wish folks would add a few case studies like Beril did of Gunman Clive to help prove or disprove usefulness in implementation.) This is a question I echo of the OP. so even if the answer is that modern games can't do it, less "you're dumb" and more "here's why it can't work" would be much appreciated.

Street Fighter, especially, I cannot believe they have not learned how to minimize loading downtime in all these years. (In fact, Capcom has actually forgotten things, like where is the Quick Load feature as seen in Street Fighter Alpha 3?) Loading into and out of the character/stage select sequences is abysmal, I have to believe that a version of the Select menu could be resident in memory, even if it was notably pared down from the current one. A world map background, 2D versions of the 12 or so character portraits (and their thumbnails,) the stage graphics, a few overlay PNGs for effects if you can't get that done with vector art or 3D overlays... I just can't imagine Street Fighter being so tight on RAM (especially since other games have multiple characters and/or interactive backgrounds, though the complexity/dissimilarity of characters in SF might negate that argument) that it couldn't keep those things in and out of fights. I can abide by the time it takes to load characters and stages, but the load out of a match into the menus is a huge dampener that negates all the flashy presentation and can kill the buzz of a good party.
 
Guys... WHY?

Let's say a game has 30 levels. Why would you want waiting for the game five minutes to boot up while loading ALL levels, when the last level you won't likely reach for a week or more?

Why shouldn't the game load quickly just the chunk you need to play instead of ALL of it with a HUGE massive load time?

Even if it was possible, you'd rather wait one minute to load a thing in Bloodborne, or wait HALF AN HOUR to wait it to load everything in one go?

I thought about this specifically as a way to cut down load times in Street fighter 5 or other fighting games when playing online. You spend a lot of time loading and re-loading the same content each match. If the game was somewhat simplified and compressed and used a simple stage like training stage, maybe you could have instant loads for online play only.

Maybe other online games could do something similar, or games where similar content is loaded in and out constantly.

Especially since sf5 makes you pick a fighter before matchmaking it could predict somewhat who to load.
 

Nictel

Member
The time to program a game to make use of the additional RAM is not worth it. You would be investing for a small number of people with little return (it's not a selling point).
Now with the development of 3D memory I am expecting that this is going to be a none issue in the future as RAM will be obsolute as it is much more efficient to use a dedicated part of that 3D memory as temporary storage. Still this is probably still a few years away.
 

DGaio

Member
Something that people don't get sometimes is that the majority of assets (it being textures, models, animation, sound, etc) are actually compressed. So the uncompressed state of things is a lot bigger than it seems.

Another thing is how the hardware handles and processes them. It might need to duplicate something over and over to achieve the desire effect and that obviously will need to occupy memory.

Regarding older games, unfortunately it's not as easy or simple as injecting a "switch" during the game engine pipeline. Many of the older games were constructed and developed to follow rigours step by step process that if you change it in anyway, it wouldn't work at all, even if it sounds logical to do so now days.
 

LCGeek

formerly sane
Regarding older games, unfortunately it's not as easy or simple as injecting a "switch" during the game engine pipeline. Many of the older games were constructed and developed to follow rigours step by step process that if you change it in anyway, it wouldn't work at all, even if it sounds logical to do so now days.

Logic sucks when you consider reality as you mention. For instance documentation on games in general isn't always the best.
 

Horp

Member
Funny with all the ignorant "doesn't work like that lol"-comments.
It kind of works like that. The OP has a good point; an older game could be rewritten to use way more RAM and remove lots of the loading times during gameplay, but that would require work from the developers. It's not something trivial, but it is definitely theoretically possible.

Edit:
Let me clarify; you can't "install an entire game into RAM" just like that. The application is coded with assumptions regarding what assets are where, both in the RAM and on the HD (or an optical disc). But if Valve wanted to make Half Life 2 a bit more playable, they could rewrite parts of the application to stream all levels into RAM while playing the first level, thus being able to reduce load times. But once again; it's not a plug n play solution, you have to rewrite parts the application code.
 

Astral Dog

Member
This should be a given for PCs with lots of RAM.

For instance, with 32GB of RAM you can fit most games in there entirely. Sure, the initial load would be a couple minutes but after that, the game would not need to stream from the HDD. Plus, RAM is many times faster than a SSD even.

Arent most modern games like 20-60 GB? that seems like a lot to /install/start up every time.
 

nOoblet16

Member
A file size of 5GB doesn't mean the game has 5GB worth of content. Because textures and other files are compressed and they are then decompressed when the game is run, this decompressed data is loaded onto the RAM and is a lot higher than 5GB. Secondly, there are other things apart from texture and sound data that needs to be loaded onto the RAM, such as the framebuffer.

In short, it's unnecessary...especially with good streaming tech these days.
 

efyu_lemonardo

May I have a cookie?
Thats procedural generation, its good because it reduces the file size of the game but im not sure its the same thing, i remember lots of loading times on Shinen Wii U games.

It's certainly related, but not quite the same thing. There was an interview with Shinen' around the time their first Wii U game, Nano Assault Neo, released, and I seem to remember them saying they're running the entire thing from within RAM. Granted it was an updated port of a 3DS game, but still.
 

Emedan

Member
Edit:
Let me clarify; you can't "install an entire game into RAM" just like that. The application is coded with assumptions regarding what assets are where, both in the RAM and on the HD (or an optical disc). But if Valve wanted to make Half Life 2 a bit more playable, they could rewrite parts of the application to stream all levels into RAM while playing the first level, thus being able to reduce load times. But once again; it's not a plug n play solution, you have to rewrite parts the application code.

Fairly certain that was the OPs point. I guess it's more of a question of why isn't games programmed to utilize available RAM?

Most games last generation was made with 500mb of RAM in consideration, PCs just sprinted away from that so quickly and at the end of the last Gen standard PC RAM size was around 8GBs, It just felt ridiculously underutilized (Honestly it still does, I've had 8GB of RAM for 5 years, why don't I have to upgrade?)
 

ike_

Member
I hear you OP, load times are one of my biggest pet peeves.

I'm surprised to hear RAMDisks are still a thing. I remember using them to emulate CD-ROM drives back when CD-ROMs were slow as funk. I can see why a RAMDisk might make sense in the PoE 32-bit 2GB limit case though maybe.

But just about every OS today has disk cache logic which will keep all HDD/SSD accessed data in RAM until that RAM is needed for active game data. So I do feel like a few more jiggawats of RAM would have reduced load times a decent amount on our current gen consoles, without any additional work needed by devs to boot.
 

nkarafo

Member
Arent most modern games like 20-60 GB? that seems like a lot to /install/start up every time.
I'd rather have a long loading at the start, rather than textures popping, stuttering and other things caused by slow streaming from the HDD.
 

2+2=5

The Amiga Brotherhood
Since when gaf is like that? :(
A game can be loaded entirely on the ram, obviously it's not that simple, data is compressed, there's a lot more than just assets etc, but again it's completely possible, also why everyone is ignoring the "smaller size games" part? Small indie games should do this by default imo.
 

StarEye

The Amiga Brotherhood
I can play games from RAM on my Amiga, it's not really some crazy idea. Nowadays, an Amiga could be upgrade to have 256MB RAM (maybe even more) and most games came on diskettes. This program called WHDload has the option to pre-load the game into ram, which makes booting a little slower, but you get no loading between levels.

Heck, I played the entire Beneath A Steel Sky CD32 edition from RAM, and that was somewhere around 60-70MB. Took a little while to boot though.

There's no reason this won't be a good option in modern PCs. And yes, I believe in many cases it IS as simple as loading it into ram. RAM can be used just like any other drive, apart from it being wiped when switch off power.
 

EctoPrime

Member
I would like to see pc games start offering the option to load the entire game part into ram considering it might only be 20GB of a 50GB game. The audio and video does not need to reside in memory until needed.
 

nkarafo

Member
It's also good for the drives.

Take games like The Evil Within for example. The game streams content from the drives, literally, non stop. Every step you take it has to read something from the drive. The whole time you are playing, you have to deal with the mechanical drive noise, unless you are playing it loud.

This, of course, can be terrible for the drive, reducing it's lifespan.

Same thing with SSDs. Although you don't have to deal with loud and delicate mechanical parts, it's still bad because with SSDs you have limited reads/writes compared to regular HDDs. So again, it reduces their lifespan.

RAM has all the benefits and none of the negatives. It's solid state (so no noise or delicate parts) and doesn't care about reads and writes. It's also multiple times faster than even the fastest SSDs, so you could get additional benefits if a game could have the option to take advantage of this. The only negative i can think of is the initial loading. But the benefits are much more important and outweigh this minor negative easily.
 

FyreWulff

Member
Titanfall was neat. On the 360, it uses both the disc and the hardrive together like a RAID array, giving them more total bandwidth than either the HDD or the disc drive alone. This is why you originally couldn't buy it digitally or install it to the hard drive. They eventually patched that restriction out for people that didn't care about perf, but was still a neat idea, and you can't even do it on the PS4 or the One (afiak, they force all game data to come from one source)

As far as I know, Titanfall is the only 360 game to duplex the drives like that.

edit: oh wait GTAV 360 might have done a version of it afterwards. So that's two games.
 

leeh

Member
Well if you load the whole game into RAM, you've also got a way longer initial load to put it in RAM in the first place.
 

nkarafo

Member
edit: oh wait GTAV 360 might have done a version of it afterwards. So that's two games.
I think GTAV had this from the start. It pulled assets from both the HDD and the DVD drive at the same time. You could even install the 2nd disc in a USB flash drive and use that instead of the DVD, which was probably even faster and you didn't have to deal with the noisy drive. That's how i played it.
 

Pokemaniac

Member
It's much easier said than done. Overutilizing RAM is significantly worse than underutilizing it, and most devs probably don't want to take the risk. Especially with Indie games which are often not well optimized in the first place.

It's also good for the drives.

Take games like The Evil Within for example. The game streams content from the drives, literally, non stop. Every step you take it has to read something from the drive. The whole time you are playing, you have to deal with the mechanical drive noise, unless you are playing it loud.

This, of course, can be terrible for the drive, reducing it's lifespan.

Same thing with SSDs. Although you don't have to deal with loud and delicate mechanical parts, it's still bad because with SSDs you have limited reads/writes compared to regular HDDs. So again, it reduces their lifespan.

RAM has all the benefits and none of the negatives. It's solid state (so no noise or delicate parts) and doesn't care about reads and writes. It's also multiple times faster than even the fastest SSDs, so you could get additional benefits if a game could have the option to take advantage of this. The only negative i can think of is the initial loading. But the benefits are much more important and outweigh this minor negative easily.

Reading doesn't wear out SSDs, only writing.
 

DSix

Banned
It is possible.
I suppose a 2 to 3 GB game could be loaded entirely as you play (depending of how demanding it is in term of rendering and post-process). You'd still have to beware of some things like sound and music as it is not always compressed in RAM, but the majority of other assets could reside here.
 

n0razi

Member
Ram is usually volatile meaning you can have corrupted data and hacks if everything is loaded to it. Also, if you are using 90% of the system ram for assets, you lose scratch space for compressed and dynamic assets.


The easiest plug and play scenario us having a ram drive emulator where part of the system ram is allocated and mapped as a hard drive, then you get the benefits of a super fast SSD. You would want double the ram to account for the reasons above though.
 

bitbydeath

Member
Not just open world. That's pretty much the loading scheme for continuous linear games like Crash Bandicoot, and God of War.

+Uncharted and The Last of Us.
If a game like Uncharted 4 could hide load times then really any game can.

They aren't necessarily loading everything into RAM though but still achieve the same goal.
 

Horp

Member
Fairly certain that was the OPs point. I guess it's more of a question of why isn't games programmed to utilize available RAM?

Most games last generation was made with 500mb of RAM in consideration, PCs just sprinted away from that so quickly and at the end of the last Gen standard PC RAM size was around 8GBs, It just felt ridiculously underutilized (Honestly it still does, I've had 8GB of RAM for 5 years, why don't I have to upgrade?)

It is not trivial to tell how much RAM is available, and the total sum will vary from system to system. This means the application code would have to not only include mechanics to get information on available, it would also have to be capable to handle a bunch of different available RAM scenarios. "Can we load the entire next level into RAM? Half the next level? Two levels?"
It's _always_ easier to only code for a single scenario. For example: Always load a single level, then unload it. Then you can also easily (relatively speaking) study exactly how much RAM your game needs, and state that as a system requirement.
Note, having an asset in RAM vs on disc/optical is not synonymous for the rest of the application. Say you have a sound system that is supposed to play an explosion sound when a ship is blown up in your game. That sound system has to do a completely different operation if it is going to 1. play the sound from RAM, 2. load the sound into RAM then play it, or 3. stream the sound from HD/optical.
 

Spukc

always chasing the next thrill
since ram is so bloody cheap these days i was thinking about trying this with a modern game doom 2016 or something
 

diffusionx

Gold Member
I always wondered why Chrono Trigger, a 4MB game, had such terrible load times on the PS1. The PS1 has 2MB of main RAM but there had to be a better way.
 

cireza

Banned
A game rom being 4 MB does not mean than the entirety of the game fits in 4 MB of RAM. Other stuff will require space like the game engine, the variables, maybe the assets are compressed and need to be uncompressed begore going in RAM etc...

Load times can be bad for many reasons not really related to the size of the game. How is the data organized on the disc ? Is it near the centre or the outside of the disc? Is related data put close to each other to reduce seek time ? Etc...
 
Last edited:

Bootzilla

Banned
Because it would mean a long load time up front and these games often don't have a big problem with load times in general.

Also, don't think a game can fit in memory just because the install is smaller. A big part of loading is decompression.
 

diffusionx

Gold Member
A game rom being 4 MB does not mean than the entirety of the game fits in 4 MB of RAM. Other stuff will require space like the game engine, the variables, maybe the assets are compressed and need to be uncompressed begore going in RAM etc...

Load times can be bad for many reasons not really related to the size of the game. How is the data organized on the disc ? Is it near the centre or the outside of the disc? Is related data put close to each other to reduce seek time ? Etc...

The point is that the CT PS1 port was a failure in all those ways.
 

Gavin Stevens

Formerly 'o'dium'
Game space is not the same as actual memory size. For example, most games use compression, which means a great chunk of your loading time is taken up decompressing these files for loading into memory.

Even then games are upwards of 150gb right now. By the end of the new gen, I don’t even want to think how big games will get. But even at that 150gb, that’s still with compression.

So... do the math ;)

It’s one of the reasons why I’m a bit worried about these next gen consoles having just 1tb at launch. 1tb wasn’t even enough for THIS gen. But large SSDs cost a lot of greenback.
 
Last edited:

sunnysideup

Banned
Usually these days the smaller the game, the less technically savvy the developer is. Most smaller end games are made with bunch of middleware stuff tacked together. With little optimisation.

Many of these playstation one level 2d games require almost "current gen" esque hardware to run.
 
Theres more data that goes into ram that on screen assets, all the sound all the physics all the ai everything has to be streamed and loaded into ram and ganes this days are too dynamic new not static as it used to be.
 

Zog

Banned
I believe there's a lot more to loading a level than simply placing the assets in RAM
OP is talking about loading entire older games into RAM. Animal Crossing and the Zelda ports did it on the GameCube. I am sure that all Virtual Console games are loaded completely into RAM too.

Loading assets into RAM is a necessary step but if the whole game can be loaded into RAM then it should have a nice impact on loading times. Just one load screen at the beginning.
 

Lanrutcon

Member
It's pretty easy to see how young some of you are.

It was pretty common to load entire games into memory in the early days of PC gaming. Hell, I still did it in the late 90s. There was a utility you used to load directories into memory, and accessing the files within was blindingly fast in comparison to your normal HD.

As for doing it today? I have 26 gig of empty RAM right now. That wouldn't be enough to load most modern games. It would have to be an older title, and I'm curious as to how much faster it would be than a decent SSD.
 

Zog

Banned
I always wondered why Chrono Trigger, a 4MB game, had such terrible load times on the PS1. The PS1 has 2MB of main RAM but there had to be a better way.
Chrono Trigger on the SNES could stream data quickly from the cartridge but on the PS1 it had to stream data from a CD which is much slower. Obviously they didn’t rework the game to use the extra RAM. For example, what if they had used the extra RAM to keep the menu in RAM at all times for instant access.
 

PhoenixTank

Member
so i could load doom 2016 on my ram ?
Fun fact: if you have enough of it, Windows automatically caches significant amounts of files/file data to RAM. Obviously cleared at reboot, but kinda accomplishes the same thing. RamMap tells me ~44GB of files are being cached out of my 64GB total RAM, enough for Doom 2016's virtual texture folder at least.

Not the same thing as having the game use as much RAM as it wants, for unpacked assets and the like, though.

Unless someone posted before you nice necro, btw ;D

Edit: a word.
 
Last edited:
Top Bottom