6

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.

3
  • 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, 2010 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. Jun 4, 2010 at 13:00
  • Yes, I was only emphasizing this point, to avoid some close votes for off-topic.
    – Gnoupi
    Jun 4, 2010 at 13:29

3 Answers 3

3

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.

2
  • 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. Jun 4, 2010 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, 2010 at 14:34
0

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.

2
  • 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, 2010 at 13:28
  • Your point about getting a faster permanent data storage unit (SSD, HDD) is relevant but RAM -> faster than -> SSD -> faster than -> HDD. The idea is to store the game data in a RAMdisk image on a HDD (or SSD) and then preload everything into memory so when the game needs additional data it only has to go from RAM to RAM instead of HDD to RAM (orders of magnitude faster). The system will then have a new bottleneck likely to be the CPU if in fact the bottleneck before was the HDD. If you got an SSD instead, you still might even hit a CPU bottleneck if your CPU is just that old.
    – Enigma
    May 9, 2014 at 20:01
0

Short-term: SSD, 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 and putting the game files on there. SSD's 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).

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .