固态硬盘不够大塞不下游戏又想提高游戏加载速度的方法~~~把一部分游戏放入固态

  • g
    gk153577

    本文是基于战锤2全面战争写的,其他游戏的的话,应该可以仿这个步骤来实现类似效果,不过加速的前提是游戏的时间都花在了从机械硬盘里加载文件上,对其他问题是木用的。

    一会还打算发到战锤全战贴吧去,会不会有问题呀

    观前提示:本文内的方法适合有计算机基础的坛友,或者动手能力比较强、比较心细的坛友~~~没有计算机基础的坛友们请不要看到一半就开搞,请看完在弄哦~

    本人的存档读取时间从3分36秒缩短到了38秒,进入战斗时间从1分20秒缩短到了17秒,手动战斗结束后返回大地图的时间从4分29秒缩短到了42秒~~~虽然不知道把整个游戏都放进固态硬盘里会有多快,但这个提高程度已经让我内牛满面了

    (我也是刚试出这个方法,只打了几场手动,过了几个回合。也没有打网战。长期用会不会有稳定性问题我也不知道,请酌情使用。总之魔改有风险,开搞需谨慎。如果是台式电脑建议买个大固态装上算了

    全战在没有固态硬盘时加载时间大家都吐槽已久了。不管三国还是锤2,放在机械硬盘里,加载时间都是让人等到耐心爆炸。加载时间里,我是从一开始盯着屏幕苦熬,发展到后来刷手机,再到做俯卧撑,看书……再到后来全部自动,完全不手操了

    但手动才是全战的精髓啊,全程不手动不如玩CK……但手动又会犹如传说中一样“玩游戏时间和加载的时间差不多”、“加载一小时,游戏五分钟”。最近我终于忍不了了,试图着手解决一下这个问题。

    众所周知固态硬盘的读写速度,比起机械硬盘那是不知道高到哪里去了。但可能很多朋友的固态硬盘都和我一样是128G的,中端低端游戏本的常见配置,高不成低不就,装完系统和常用软件就剩下60G。想把战锤全塞进去,又怕装得太满影响读写速度和固态寿命。思来想去,如果没法把整个游戏都塞进去,那就塞进去一部分好了,毕竟加载时所读取的文件肯定只是总文件一部分,不会把60个G全读进去。就算游戏想把60个G都读取了,内存也装不下啊。

    想到这里,那么下一步当然是找出游戏加载时到底读取了些什么文件了~我用Process monitor这个软件记录了凡世帝国下,游戏在读取存档时和手动战斗后的文件读取记录。整理分析一下之后,在上述这两种最为耗时的加载过程中,主要被读取的机械硬盘文件名单如下(这些文件都位于游戏主目录下的data文件夹里):

    audio.pack

    audio_2.pack

    audio_m.pack

    campaign_variants.pack

    campaign_variants_2.pack

    campaign_variants_bl.pack

    campaign_variants_sb.pack

    campaign_variants_wp_.pack

    data.pack

    data_2.pack

    local_cn.pack

    local_cn_2.pack

    models.pack

    models2.pack

    models_2.pack

    shaders.pack

    terrain.pack

    terrain2_2.pack

    terrain_2.pack

    variants.pack

    variants_2.pack

    variants_dds.pack

    variants_dds2.pack

    variants_dds2_2.pack

    variants_dds_2.pack

    warmachines.pack

    (这并不是一个完整的读取文件清单,不过主要被读取的都在此处了。上述文件合计33G,比原游戏还是小多了。全部位于游戏主目录下的data文件夹中)

    有了名单,下一步当然就是…

    cdbf6c81800a19d8bcbf246824fa828ba61e461a.jpg

    错了错了!有了名单,下一步当然就是把这些文件移动到固态硬盘里去了

    不过我们还得考虑一个问题,这些文件虽然被转移到另一个盘里去了,但全战程序运行的时候要怎么才能找到这些文件呢?没有这些文件,显然是运行不了的。这里就要用到一个工具了,那就是符号链接(以下原理不感兴趣可以跳过)。符号链接其实就相当于一个高级版的快捷方式,它可以从一个地方,指向实际上放在另一个地方的文件(这个“另一个地方”甚至可以位于网络上)。不过它只对用户和系统可见,在一般程序看来,这就是一个位于此处的正常文件,使用起来和一般文件一样。

    利用符号连接,我们就可以把复制到固态硬盘上的游戏文件给链接回原处,让游戏认为这些文件仍然位于此处,而实际运行时,系统则会引导游戏固态硬盘中读取文件。创建符号链接,就是将下述命令在管理员模式下的cmd里执行(不知道cmd没关系,后面会有方法,将命令写在记事本中,不用到cmd):

    mklink "全战目录中的data文件夹路径\文件名" "固态硬盘中的存放路径\文件名"

    举个例子:

    mklink "D:\steam\steamapps\common\Total War WARHAMMER II\data\audio.pack" "C:\whdata\audio.pack"

    上面的 D:\steam\steamapps\common\Total War WARHAMMER II\data 就是我的战锤2游戏目录中的data文件夹的路径。C:\whdata 就是我把前面名单中的文件剪贴到固态硬盘中后存放的地方(我的C盘是固态硬盘)。而audio.pack就是文件名啦。

    执行完一条上述的命令后,你会发现在全战目录data文件夹里,多了一个叫audio.pack的文件,文件的图标就像快捷方式一样有个小箭头,这就说明成功把audio.pack这个文件从固态硬盘连接到原位置啦!

    不过这样问题就来了,且不说cmd是什么玩意,就说上面可有着几十个文件呐,对应下来就是手写几十条命令,手指都写断了!而且一不小心输错了怎么办。这时我们就可以建一个记事本文件,在里面编辑命令,然后将文件后缀名改为dat,就可以批量执行了。

    这里准备了一个很方便用的命令模板,只要把下面的命令们复制到记事本里,把里面的两种路径替换成对应的地址,保存后把后缀名改为dat,最后右键该文件,选以管理员权限执行就可以了!名单里26个文件对应的命令都在里面了:

    mklink "全战目录中的data文件夹路径\audio.pack" "固态硬盘中的存放路径\audio.pack"

    mklink "全战目录中的data文件夹路径\audio_2.pack" "固态硬盘中的存放路径\audio_2.pack"

    mklink "全战目录中的data文件夹路径\audio_m.pack" "固态硬盘中的存放路径\audio_m.pack"

    mklink "全战目录中的data文件夹路径\campaign_variants.pack" "固态硬盘中的存放路径\campaign_variants.pack"

    mklink "全战目录中的data文件夹路径\campaign_variants_2.pack" "固态硬盘中的存放路径\campaign_variants_2.pack"

    mklink "全战目录中的data文件夹路径\campaign_variants_bl.pack" "固态硬盘中的存放路径\campaign_variants_bl.pack"

    mklink "全战目录中的data文件夹路径\campaign_variants_sb.pack" "固态硬盘中的存放路径\campaign_variants_sb.pack"

    mklink "全战目录中的data文件夹路径\campaign_variants_wp_.pack" "固态硬盘中的存放路径\campaign_variants_wp_.pack"

    mklink "全战目录中的data文件夹路径\data.pack" "固态硬盘中的存放路径\data.pack"

    mklink "全战目录中的data文件夹路径\data_2.pack" "固态硬盘中的存放路径\data_2.pack"

    mklink "全战目录中的data文件夹路径\local_cn.pack" "固态硬盘中的存放路径\local_cn.pack"

    mklink "全战目录中的data文件夹路径\local_cn_2.pack" "固态硬盘中的存放路径\local_cn_2.pack"

    mklink "全战目录中的data文件夹路径\models.pack" "固态硬盘中的存放路径\models.pack"

    mklink "全战目录中的data文件夹路径\models2.pack" "固态硬盘中的存放路径\models2.pack"

    mklink "全战目录中的data文件夹路径\models_2.pack" "固态硬盘中的存放路径\models_2.pack"

    mklink "全战目录中的data文件夹路径\shaders.pack" "固态硬盘中的存放路径\shaders.pack"

    mklink "全战目录中的data文件夹路径\terrain.pack" "固态硬盘中的存放路径\terrain.pack"

    mklink "全战目录中的data文件夹路径\terrain2_2.pack" "固态硬盘中的存放路径\terrain2_2.pack"

    mklink "全战目录中的data文件夹路径\terrain_2.pack" "固态硬盘中的存放路径\terrain_2.pack"

    mklink "全战目录中的data文件夹路径\variants.pack" "固态硬盘中的存放路径\variants.pack"

    mklink "全战目录中的data文件夹路径\variants_2.pack" "固态硬盘中的存放路径\variants_2.pack"

    mklink "全战目录中的data文件夹路径\variants_dds.pack" "固态硬盘中的存放路径\variants_dds.pack"

    mklink "全战目录中的data文件夹路径\variants_dds2.pack" "固态硬盘中的存放路径\variants_dds2.pack"

    mklink "全战目录中的data文件夹路径\variants_dds2_2.pack" "固态硬盘中的存放路径\variants_dds2_2.pack"

    mklink "全战目录中的data文件夹路径\variants_dds_2.pack" "固态硬盘中的存放路径\variants_dds_2.pack"

    mklink "全战目录中的data文件夹路径\warmachines.pack" "固态硬盘中的存放路径\warmachines.pack"

    echo. & pause

    替换举个例子就是,如果我给我的电脑替换的话,就会把 全战目录中的data文件夹路径 这串中文替换成D:\steam\steamapps\common\Total War WARHAMMER II\data 然后把 固态硬盘中的存放路径 这串中文替换成 C:\whdata

    要注意空格和 \ 不要加多了。

    此外注意保存后一定要右键,选管理员身份执行哟,非管理员权限执行会失败的·。本人电脑是win10,其他系统上怎么搞我也不大了解了。

    到这里基本就差不多啦。加速效果还是非常好的,就像本文开篇所说的,原本好几分钟的加载时间缩短到了几十秒,而且没有专门针对优化的进入战斗时间也从一分钟降到了十几秒,着实是惊喜。我们一直以来积累的努力,并不是全部木大

    下面是一个详细执行步骤总结:

    1. 首先进入你的战锤2全战游戏目录,打开data文件夹,照着上面的文件名单,把对应文件都选中,剪贴到固态硬盘里。例如我的固态硬盘是C盘,我就在C盘里新建了一个文件夹叫whdata,然后把这些文件都剪贴到了whdata文件夹中。(别乱动C盘里的其他东西哦,如果你不想电脑爆炸的话

    2. 新建一个记事本文件,把前面给的命令模板复制进去,然后把里面的两种路径 全战目录中的data文件夹路径 和· 固态硬盘中的存放路径 分别全部替换成你电脑中的对应路径。然后,检查!!检查有没有多打空格或者 \ ,斜杠有没有打反等等。整完后保存,然后把保存的文件的 .txt 后缀名修改为 .bat

    3. 对这个bat文件点右键,然后选择以管理员身份运行。运行时会弹出一个小黑框,可以看里面有没有提示运行出错。

    4. 完成啦!现在可以打开锤2,试一试新的加载速度如何了! 帝国存档启动! 死亡爪皇帝上线! 持锤大只佬挂件已装备,士气+8! 糟糕,不慎追尾了黑色高级诺斯卡巨象… 皇帝,你在干什么啊皇帝! 保护选帝侯是我的责任… 希望之花~~~

    PS1:如最开始所说,魔改是有风险的,长期稳定性如何,版本更新之后还能不能用之类的我也是不知道的。不过只要不乱动C盘里的东西,不要乱输模板以外的命令,应该是不会对电脑系统有什么危险的。大不了重装游戏

    PS2:这个文件清单是根据凡世帝国加载过程总结出来的,如果是玩大漩涡的话,可能文件会有所不同,优化效果也会下降,不过你也可以用相同的方法去总结一下大漩涡用了哪些文件,写一份新的名单和命令模板。三国全战估计也是同理,可以试一下~

    PS3:假如你要更惨一些,固态里连30个G都没有那可咋办呢你可以1.搜一下清理C盘垃圾,迁移文件等开源节流的方法 2.那就不整完整的文件名单了呗(反正这个名单本身也是不完整的),你可以从名单中随便挑一些出来,直到你的固态可以承受的程度。从命令模板中删去那些你没有迁移的文件。然后走一遍正常流程就行啦~不过效果估计也就相应会差一些了。这里再提醒一下,木有固态硬盘的话这个方法是没用的。

    PS4:我想要PS5!

  • 萨卡

    固态硬盘不够大塞不下游戏?? 买更大的固态硬盘即可轻松秒杀这问题啊。。。。

  • g
    gk153577

    笔记本电脑想换,尤其是小牌子想换点固态比较困难。很多都是一块小固态配一个大机械的

  • c
    cleanery

    监控文件, 建立软连接, 是个办法, 但是我自己是1TSSD + 1THDD, 所以用不到了

  • a
    aucifer3000

    方法可行但是对我貌似没用:) 250G SSD + 2T SSD +3T HDD + 3T HDD 表示毫无压力~

  • z
    zhongyue0

    笔记本玩大作确实尴尬,楼主的笔记本能玩战锤2很给力了.

    个人一直用PC玩游戏,也是把游戏仍到固态硬盘带动的那种- -.

  • g
    gk153577

    羡慕啊,我的笔记本没买多久,现在陷入了深深的后悔中

    这应该是台式了吧,好棒

    买了个配置高不成低不就的,其实也挺尴尬好处是还算比较轻

  • v
    vicious1225

    兄弟主板那么好,不然你这个我感觉通道爆了吧,都是非全速运行么(随便说说,我也不知道你接口,哈哈)

    前由 vicious1225 修改
  • N
    NianRuoshui

    全放在SSD里了 只要加载十几秒 快得很

    前由 NianRuoshui 修改
  • s
    s852111397

    M2固态的话直接换新吧,现在这个年头128+1t这样的组合确实是不够用的

  • g
    gk153577

    羡慕,只能说羡慕下回买新电脑时坚决上高配了

    这里面有什么门道吗,M2比别的好换一些?

  • g
    gk153577

    强力,强力啊!

    我以前在找不到拆机图,去网上随便看了几个教程的情况下拆了一个笔记本,结果我那个笔记本设计极为扭曲,硬盘和前后盖都有关系,有些我怎么都整不明白。最后把硬盘接口整坏了。后来就不敢随便拆了TAT

  • a
    aucifer3000

    台式主机i9 9900kf Z390 2080ti 16G*2 2T SSD是M.2接口,还有个多的M.2接口,可以在加一块固态

  • x
    xiaopang

    强啊,不过建议128还是换一个吧

  • a
    archmagetony

    我也手残。。。我这边光驱换硬盘是比较好换的,有专门的架子(联想y510有这个专门的设计),买了一个就能直接拔下来插上,连后盖都不用开。主硬盘是我直接去联想维修点让他们给我换的。。。实在是怕坏了,也没收我钱毕竟就是拆下来以后装上的事。我这笔记本特别的坑,当年刚出国行的时候我算是第一批买的,结果买了好久才发现被阉割了一大堆东西。我这笔记本有专门的m2槽,但是没有焊m2的口!对!没有插口!!我真是日了狗了

  • s
    s852111397

    如果是120g的固态一定是不够用的,现在固态价格并不算高,五六百块钱就能买一块很好的m2固态,而且更换很容易,读写速度那真是飞起.

  • s
    s852111397

    sata固态的读写多少有点坑爹.我上一台电脑是微星ge60的老模具,4代酷睿那会儿并没有m2接口的存在,当时叫msata...那一块儿120g的杂牌固态还花了我四百.

  • 在下东方大雕

    你这个没办法套用到其他游戏上面吧?

  • 猫系少女卡萌酱

    其实嘛 你家牙膏厂的傲腾可以解决很多问题

    降智小剧场:

    “什么 你都有钱买傲腾 还不加钱买SSD?"

    “那我的HDD怎么办”

    ——以上内容来源于现实生活

    前由 猫型少女卡萌酱 修改
  • c
    cleanery

    太溜了, 联想的电脑我不敢碰.

  • g
    gk153577

    这,就是说有对应电路,但接头没有装吗,这也太坑爹了吧

    原来是这样。当初想着拿来玩P社游戏,就弄了个高CPU中显卡,其他都随便上了,现在感觉坑了

    可能跟我的固态是SATA也有关系。哪天我把全部都强行塞固态里再试试看

  • g
    gk153577

    应该是可以的。符号链接的问题在于如果连接的是exe,dll等可执行文件时,当这些程序想要通过 ../ 等方式寻找相对位置的其他文件时,这个相对位置可能就会与正常情况下不同,造成出错。不过一般游戏的大部分容量还是纯粹的数据文件,对这些数据文件连接一下理论上还是可行的。

    感觉不错~~可惜没有插口,也不大想拆23333

    不抛弃不放弃任何一个硬件

  • s
    s852111397

    怎么说呢,就是得有一定的底线吧,第一台笔记本买的时候当时并不懂这些,买了个i7+750m的奇怪组合,就导致玩独立游戏或者lol这样不吃显卡的游戏完全是轻松加愉快,但只要是吃点显卡立马就gg,然而我并不是全高党,我只是中高能玩就行,所以这次就是1660ti+9400就差不多了.在选的过程中顺路把高色域高刷新率这样的条件加进去,最后上了个船,半年了快,体验真心好啊,尤其是我这种从4代英特尔7代英伟达直接跨到9代+20系,就一下子飞跃很大..

    而且我之前的固态那三四百m的读写,新电脑摸奖摸了一块儿660P,读写1000+大神觉着拉闸,在我这直接就是飞起来的感觉了...由俭入奢易啊.

  • g
    gk153577

    我现在这个倒也还行,虽然不能全高,但也没什么玩不了的。一般游戏只是开场时需要加载也还行,全战每打一仗都加载就太折磨人了2333

    大神都用什么啊,读写1000+都嫌弃

  • a
    archmagetony

    这个实在是没有办法,我那个根本就没有m2的接口,只能这么搞了。。。反正闪迪也有十年的保修,笔记本不用了以后,就拆下来放我家路由器上面了。

    当年年少无知啊,13年买的,当时我也是找不到什么好的游戏本了。就被坑掉了。。。我室友也买的y510p,但是他买的是美版的水货,比我的便宜,还没阉割配置。当时真的是想骂街了,我第一台用了两天不到显卡虚焊了,还去换了一台新的。这质量也没谁了。

    是。。。没有接口。。。。。。跟维修他们聊过,大概就是当时国行前几批的货这个接口全都被阉割掉了。后来才加上的。。。。我室友买的美版就有这个接口,还有蓝牙=、=我特么的连蓝牙都没有

  • s
    s852111397

    pm981啦这种读写3000+的

  • 梦幻妖精

    使用系统自带的符号链接,这确实是个比较通用而且可行的方法呢!

    原理挺简单的,但操作过程繁琐复杂,如果是长期稳定在电脑中的工程软件还好说,

    游戏这种过一会就要搬掉的软件搞这么多得不偿失!www

  • J
    JAHOO

    SSD只装系统和常玩线上游戏其他都存在HDD就没问题了,反正HDD便宜多买几个当外接也不心痛。

  • g
    gk153577

    不知道延迟如何,这速度都快赶上DDR2了啊

  • g
    gk153577

    估摸着还是能用一段时间的,更新后还能不能用到时再看吧23333

    因为把命令都集合到bat里了,实际上麻烦程度还可以啦~~

    128G固态的痛啊

  • s
    saviliana

    只是这种方式一但电源失效就会导致固态坏区,而且也会因为持续读写而引致损伤,得不偿失吧?

  • g
    gk153577

    这是为什么呢?能不能细讲一下~~

    我个人感觉符号链接只是一种系统级以上的软件实现,应该不会有特别的影响?如果考虑瞬间掉电或者持续读写导致固态损伤,那么即使不用符号链接,正常地把游戏全部放到固态上,也一样会产生这些问题呀?

  • s
    saviliana

    问题是你这是在假raid,只是换了说法而已…虽然正常地把游戏放到固态上也是有所消耗,但是远比同时读写硬盘和固态好的多,因为调用资源的时候系统永远会优先写入最快的固态盘储存区,然後缓存完了再调动到设置的硬盘区域上,长期这麽硬干会对固态消耗很大的,因为同一档案要分割调动好几次才能转完,就像是你开BT重复上下传某个档案在固态分区上,是物理消耗的啊…

  • g
    gk153577

    确实是假raid,不过这里用来加速的特点并不是raid的多个硬盘同时读写,只是依赖于固态的速度啊。符号连接也不像真正的raid一样,有不同硬盘间自动把数据倒来腾去,以及做备份做校验等功能。按我对软连接的理解,它只是会在程序请求使用相应文件时,系统会改向符号连接所指向的地方去使用而已。在什么情况下会发生从固态硬盘调到原位置的情况呢?

  • s
    saviliana

    你忘了程序读取的时候会建立一个备份空间来缓存资料啊,假raid利用的就是这点来把整个程序加速加载啊…结构上就是把慢吞吞的软件先读取到固态的缓冲区上加载而已,也就是一样的倒腾着,只是不会整个盘区粘在一起,而是一部份目录链接起来,断电同样会损坏MBT上的目录条导致坏道的啊,因为你缓冲区也是建立在raid上的,即使是假raid同样也是在加载不同硬盘的资料在一起…长期使用也会有重复读写导致的desync问题的啊

    所以我不建议你继续使用这种加载方式,还是老实点去存钱买个大的外置硬盘箱装上大型固态吧…反正现在的得用USB3.11的速度比走SATA还高…

  • g
    gk153577

    额,这个备份空间指的是什么呢?虚拟内存吗?还是raid中的文件调动?

    如果指raid的话,但我这个并不是raid啊,我觉得不能按raid直接往上套呀

    我只是指定了数个特定文件,当它们被访问时直接去访问固态里的文件而已。微软说它的实现结果和unix一样,按照linux上的经验,甚至都只会在第一次access访问HDD,剩下的时候都直接走SSD,除此以外并没有和SSD产生其他关联。如果不是程序的要求,系统是不会往固态里传输文件的啊?

  • g
    gk153577

    我使用的是软连接,只对特定文件生效,两块盘并没有实际粘连啊。除了特定文件,两块盘并无瓜葛,要是原位置创建的连接文件被删了覆盖了修改了,两块盘就再无关联了。从系统角度看,在程序没有读取特定文件时,系统也不知道程序和文件究竟有什么关系。如果程序用到了特定文件,就会直接去固态硬盘中使用。不会发生两边来回倒的情况啊

  • s
    s852111397

    其实nvme协议固态已经算是普及了,速度一个个都不太讲道理,这七八年之前我那块固态当时已经让我感受到了从1000块钱安卓直接过渡到iphone的感觉了,结果这个1500读写的固态又直接让我起飞了

  • g
    gk153577

    羡慕……等闲了一定给台式配个强力的固态

  • s
    s852111397

    当然还要有个强力的显卡!

  • g
    gk153577

    三千块钱进游区,加钱加到九万七(误)

  • M
    Mr.K 018

    原来Windows也有符号链接啊!我以前一直以为符号链接是Linux特有的东西来着。

    好像比Linux的符号链接功能还强大一点,我记得Linux的符号链接只能链接目录来的

    好像是Windows 10新增的特性?这么看来Linux是越走越远了啊(悲)

  • g
    gk153577

    其实只是看起来还行,实际上怎么说,属于一个劣质模仿

    主要问题就是windows的符号链接一般只能用来连接纯数据文件,当连接可执行文件时,如果遇到程序要访问 ../ 这类相对路径时,就会进行一堆奇奇怪怪的处理,导致程序出错。

    这点已被诟病已久了,至于微软为什么不修正一下,一直是一个谜……

  • M
    Mr.K 018

    这么说,windows的符号链接时不能连接到目录上吗?

  • g
    gk153577

    连接目录是可以的,主要是连接 exe dll 这类文件时,容易出错。