rojecknet 发表于 2006-6-17 12:28:43

试试这个,很管用的,我都是这样做的

水平差没办法,游戏中多load了几次。才玩了2.5个赛季,该死的FM居然让我的存盘文件
超过380MB,而游戏运行中内存居然要占用到670MB。不知道有多少玩家和我一样,1GB内
存,AMD 3000+ CPU,8MB缓存的硬盘居然存盘和读盘都超过3分钟的情况。实在不堪其
苦,潜心研究,终于大白天下,哈哈哈哈!想在论坛潜水良久,期间获益良多,不敢独
享。

FM2006的游戏运行过程中,会不断将临时数据保存在硬盘中,这就是内存即使超过1GB,
玩游戏时候也硬盘不断响的原因。从这一点发现了搞定这个的办法。

FM2006临时文件会保存在“系统temp\Football Manager 2006”中,有几十上百个文件
,根据文件名大家也可以猜测到,都是一些新闻、球员属性、受伤状态等记载。而当我
们lsave时候,会在此目录下建立“savegame”目录,将内存中和这些临时文件的数据保
存到“savegame”目录下,然后进行压缩成1个单一文件xxx.fm,也就是说,我们保存的
存档xxx.fm实际是很多数据文件的一个打包合集(类似.rar文件),只是不知道它的打
包算法(如果游戏中选择压缩,那么游戏就是打包+压缩了)。我想,这也是“FMSaveC
leaner.exe”能够对存档文件进行减肥的原因吧,把一些垃圾历史记录都可以删除了。

那么反过来,当我们load时候,游戏也会先将xxx.fm解包到“系统temp\Football
Manager 2006\savegame”下,然后再将解包出来的百来个小文件一一读入内存,再删除
这个savegame目录。

在我的390MB存档文件中,load时候,我发现解压缩出来有一个文件“regeneration_man
ager.dat”居然是350多MB,显然是不合理的。而且根据文件名猜测(重生成_经理.dat
),估计这就是SI用来整人的垃圾文件了。如果搞定此文件,是不是可以解决?

尝试删除“regeneration_manager.dat”,结果游戏提示load失败,看来是不能删除的
。找一个小的替代?我重新开了一个档(随便选一个最简单的),通过上面了解的save
和load原理,搞到一个“regeneration_manager.dat”,才1KB。用此文件覆盖原有340M
B那个(在load过程中),系统顺利通过!!!

再选择save,哈哈,游戏存档变小了,只有110MB了,玩了半个赛季,没有发现其他问题
,搞定!!!现在存盘读盘都只要20~30秒,呵呵!

BTW:无论是现在的110MB存档,还是原来的390MB存档,选择压缩方式,都只有30MB,可
见那个“regeneration_manager.dat”果然就是用来整人的。

特别说明:

1)游戏load时候,是先把xxx.fm解包为一个个小文件,全部解包完毕,再一个个读取到
内存并删除,所以用小文件覆盖“regeneration_manager.dat”时候,一定要照准时机
!应该在游戏load过程中,此文件已经被完整解包到savegame下完毕,同时还没有应loa
d完毕被删除前覆盖,才是有效的。多练习一下任务切换吧。

2)游戏save时候,先将内存数据保存到savegame下,成为一个个小文件,全部小文件生
成完毕,会开始打包,打包过程应该也是打一个删一个。因此获得这个1KB的“regenera
tion_manager.dat”,应该在系统生成“regeneration_manager.dat”但还没删除前cop
y到其他目录下!手动操作两个难点
第一是那个1k的文件获得时比较困难,因为新开小数据库存档时一般都很快
解决方法:只能靠手快了
第二是覆盖的时机很难掌握,覆盖早了,原文件还没完全解开,覆盖等于没用的,覆盖晚了,原文件已经在载入,会出现读档失败的提示
解决方法:从savegame文件夹开始形成就覆盖,不停覆盖,直到文件大小不再变化停在1k大小的状态停止覆盖,我也是试了几次才成功
但之后存读档真的变快不少

boomslang 发表于 2006-6-17 12:31:41

下个减肥存档试试

刘很 发表于 2006-6-19 09:11:17

谢谢大家,还有个问题,关于 rojecknet 说的~

“系统temp\Football Manager 2006”是哪里?是“我的文档”里面的储存的文档吗?可我在里面没发现savegame目录……

刘很 发表于 2006-6-20 22:20:23

已经搞掂了,谢谢大家的帮忙
页: 1 [2]
查看完整版本: 求助,为什么我的fm2006越来越慢?