Okay, so here's my dilemma. I play the game League of Legends, which has a loading screen showing the progress of each user loading the game. So, if user A has a Pentium 10 Super X-5000 deca-core processor with DDR15 RAM (fictional), and user B has a 2 kHz processor from the 60s, it shows user A loading much faster. A friend of mine just got a new computer (better than mine), so he's going to show up as loading faster than I will. I want to change that.

Now, into the more general question:

I have 4 GB of memory. Is there any way that I can preload some files into memory (i.e. forest.map and textures\*.dds, etc)? The entire game's folder is 2.7 GB, which is sometimes taken up on my machine by running virtual machines.

I looked into the way that Windows prefetching works, but I don't think that that is what I am looking for. I have also looked at RAM disks, but I believe I would be required to re-install (and update) the game into RAM, when I really just want the C:\x\y\z\texture1.dds file to be mapped into memory.

Any help is much appreciated.

link|improve this question
Gaming questions are off-topic on this site. However, the general question of "how to load a file in memory" is acceptable. Let's forget the gaming part in it and focus on that. – Gnoupi Jun 4 '10 at 12:41
Yes, I know. The game is the motivation behind the question, which is why I presented the information. The actual question is, I believe, relevant. – Benjamin Manns Jun 4 '10 at 13:00
Yes, I was only emphasizing this point, to avoid some close votes for off-topic. – Gnoupi Jun 4 '10 at 13:29
feedback

3 Answers

up vote 2 down vote accepted

You almost got it. Get that RAM disk going and copy the texture1.dss file to it. Now rename your original file to something else for safe keeping (RAM disks are not that reliable you know) and remap that file to the RAM disk on the filesystem level. Whoa, crazy stuff, how do you do that? Not really, it's simple with the program you can find below and there's a lot of instructions (you don't need to read it all though, it's really simple) so I'll just leave you to it, if you got this far it should be easy for you.

http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

You should probably shut those virtual machines down though, you need to make sure that you still got plenty free RAM when the game is running and you got the RAM disk loaded. If you fill your memory up Windows will have to swap and that will only make everything a lot worse, so keep your eye on RAM usage.

link|improve this answer
That makes a lot of sense. I'll try this and another thing it reminded me of - copying the file folder to a RAM disk, renaming the original, then symlinking it to the RAM disk. That way I wouldn't have to reinstall. – Benjamin Manns Jun 4 '10 at 13:14
Right, you could do it with the entire game if you got enough RAM using the very same method. Though in my experience you can move or copy a game to another location normally on the same computer and it will still work fine. Well, except for the shortcuts and uninstaller of course. – Don Jun 4 '10 at 14:34
feedback

What about buying a new PC or just wait a bit longer? Does loading faster make you play better? I think not.

Back to the question: AFAIK there's no way to make this work without occupying a lot of RAM which can't be used by the game itself anymore. Are you sure it's all about prefetching? Maybe the game's loading faster on your friend's PC because it has a faster CPU or even faster RAM?

If the bottleneck is the way how the data gets from the HDD to the RAM then the cheapest option might be a faster harddrive. But i don't know anything about the game you are talking about and if it really would help if the data is prefetched into the RAM.

link|improve this answer
The bottleneck is for sure the hard drive, in this case. Besides, focus on the "I want to put files in RAM" need, rather than judging why he wants to do it. – Gnoupi Jun 4 '10 at 13:28
feedback

Short-term: SSD hard drive, new CPU, more RAM for the ram disk solution.

Long-term: Buy a faster machine than your friend.

Bigger picture: Does this really matter that much? How much money are you willing to drop on a load screen? Perhaps focus on performing better in game and use that to rub in your friend's face ;)

Details:

I'd suggest getting an SSD hard drive and putting the game files on there. SSD hard drives have a much faster access time and burst read speeds potentially enabling your game to load faster (unless of course your friend also has an SSD drive).

I would not create a ram disk and copy the files. You will effectively be wasting most of your ram. The game engine will still read files from the ram disk into ram. After all, the point of the ram disk is to be transparent to the end user. The disk will appear as a hard disk and the game will treat the ram disk as a hard disk. There is a possibility that the game engine may memory map files and this might not abuse ram too much, but it's hard to say w/ my limited knowledge of the I/O subsystem of Windows. Of course you could buy more ram and mitigate this issue.

link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.