Cynagen wrote:
HaYDeN, there's a lot of valid points you bring up, but there's a couple things I'd like to reply to directly.
There is a tangible difference, load times are practically instantaneous since it's a direct RAM-to-RAM transfer meaning there's near-0 load time for even large chunks of data. I remember quoting 12.8GBps throughput on RAM compared to the measily ~250MBps that you get from a standard HDD (at best), and ~600MBps from SSD (again, at best).
Most newer engines are getting smarter about memory management and you're right, this tool will eventually not be needed. That being said, however, this tool is still needed/usable today as there are still a number of games very poorly optimized (W_D and SWTOR for example) that could benefit from this directly. (I've played SWTOR on HDD, SSD, and RAM, and by far, the RAM is the best when encountering new players as textures have to be called and modified on the fly before being shunted off to GPU to render a player, and the game will not render the other player AT ALL until their assets are fully loaded, meaning with a RAM disk, they pop into existence on your screen LONG before you appear on theirs, giving you a tactical advantage if it's an enemy in contested territory).
There is already a toolkit called ImDisk that has signed drivers by Microsoft, which emulate a hard drive out of allocated RAM, so that's taken care of, and the files are simply "symlinks" (using a Linux term here, in Windows it's actually called a "Junction") back to the RAM once copied over, redirecting all requests aimed at the HDD/SSD to the RAM disk we create. None of this has ever set off any anti-cheat system as it's all built-in stuff, and signed third party drivers for other uses on the computer that we're just playing with for our purposes.
DIMMDrive was a crappy, half-baked version of my idea, and I'm not surprised somebody else tried, just surprised they were stupid and failed miserably to make anything worth a damn.
IMO.
The throughput of the ram whilst high is still severely bottle necked by the CPU.
The symlink/junction approach is not a good approach and is the main reason why these tools are poorly designed IMO, dynamic interception on a per block basis is the way to approach it, thus you can begin serving from RAM before the file has even completed copying, realtime, and infact you could serve only parts of a file... eg, you intercept the read, copying it to ram and serving it from ram rather than HDD, negating the need for multiple redundant read operations, effectively adding (near) zero overhead on the initial load... this is the only way I would consider approaching it.
_________________
Resident Jester -
Flawless Widescreen -
Widescreen gaming the way it should be.
[
Steam Profile]
Want to keep Flawless Widescreen alive?
Donate Here