如果你决心成为一名Linux平台上的玩家,但是在 Steam 上拥有同时支持Linux和Windows平台的游戏,或则基于同样的缘由,拥有双重启动的系统linux格式化命令,则你可以考虑瞧瞧这篇文章。
我们中的许多玩家都拥有双重启动的Linux和Windows。有些人只拥有Linux系统,但同时拥有当前还没有被Linux平台上的Steam支持的游戏。所以我们同时保留这两个系统便于我们可以在忽视平台的前提下玩我们喜爱的游戏。
辛运的是 Linux游戏社区应运而生,越来越多在Windows平台上受欢迎的Steam游戏也发布在Linux平台上的Steam中。
我们中的许多人喜欢备份我们的Steam游戏,促使我们不再苦苦等待游戏下载完成。这种游戏很大程度上是Windows平台下的Steam游戏。
如今,好多游戏也早已登录了 Linux平台上的Steam,比如奇特人生LifeisStrange、古墓丽影2013TombRaider2013、中土世界:魔多阴影ShadowofMordor、幽浮:未知敌军XCOM:EnemyUnknown、幽浮2、与日赛跑RaceTheSun、公路救赎RoadRedemption、燥热SUPERHOT等等,但是这份名单仍然在下降。甚至还有杀出重围:人类分裂DeusEx:MankindDivided和疯狂的麦克斯MadMax!!!在一些游戏的Windows版发布以后,如今我们何必再等候多年,而只需等待几月左右,便可以看到类似的消息了linux安装,这而且大新闻啊!
下边的实验性方式将向你展示怎样使用你现存的任何平台上游戏文件来在Steam上恢复游戏的大部份数据。对于个别游戏,它们在两个平台下有好多相像的文件,借助下边事例中的方式,将降低你在享受这种游戏之前的漫长的等待时间。

在下边的方式中linux windows 文件,我们将一步一步地尝试借助Steam自身的备份与恢复功能或则以手工的方法来达到我们的目的。当涉及到这种方式的时侯,我们也将向你展示这两个平台上游戏文件的相同和不同之处,便于你也可以探求并作出你自己的调整。
下边的方式中,我们将使用Ubuntu14.04LTS和Windows10来执行备份与恢复Steam的测试。
1、Steam自身的备份与恢复
当我们尝试使用Windows平台上Steam中《燥热SUPERHOT》这个游戏的备份(这种加密文件是.csd格式)时,Linux平台上的Steam不能辨识那些文件,并重新开始下载整个游戏了!甚至在做了验证性检验后,一直有很大一部份文件不能被Steam辨识下来。我们在Windows上也做了类似的操作linux windows 文件,但结果是一样的!



如今到了我们用个别手工的方式来共享Windows和Linux上的Steam游戏的时刻了!
2、手工技巧
首先,让我们先瞧瞧Linux下这种游戏文件所处的位置(用户目录在/home中):
这是Linux平台上Steam游戏的默认安装位置。 .local 和 .steam 目录默认情况下是不可见的,你必须将它们凸显下来。我们将推荐使用一个自定义的Steam安装位置便于更容易地处理那些文件。这儿SUPERHOT.x86_64 是Linux下原生的可执行文件,与Windows中的 .exe 文件类似。

右图展示的位置包含我们须要的大部份文件(在Windows和Linux平台上相同):


下边我们来瞧瞧这种 .acf 格式的文件。appmanifest_322500.acf 便是那种我们须要的文件。编辑并调整这个文件有助于Steam辨识在 common 这个目录下现存的非加密的原始文件备份:

为了确认这个文件是一样的,用编辑器打开这个文件并检测它。我们越多地了解这个文件越好。这个链接是来自Steam峰会上的一个贴子,它展示了这个文件的主要意义。它类似于下边这样:
“AppState”{“appid”“322500”“Universe”“1”“name”“SUPERHOT”“StateFlags”“4”“installdir”“SUPERHOT”“LastUpdated”“1474466631”“UpdateResult”“0”“SizeOnDisk”“4156100762”“buildid”“1234395”“LastOwner”“”“BytesToDownload”“909578688”“BytesDownloaded”“909578688”“AutoUpdateBehavior”“0”“UserConfig”{“Language”“english”}“MountedDepots”{“322503”“34556837”}}
在Linux平台上卸载游戏后我们再进行测试。如今让我们瞧瞧在Windows10上相同的游戏安装目录里包含什么内容:



我们复制了 SUPERHOT 目录和 .acf 格式的清单文件(这个文件在Windows的Steam上格式是一样的)。在复制 .acf 文件和游戏目录到Linux中Steam它们对应的位置时,我们须要确保Steam没有在后台运行。
在转移完成以后,我们运行Steam并听到了这个:

所以右图显示只须要有235.5MB的文件须要下载,而不是整个867.4MB,这意味着超过70%的文件早已被Steam辨识了:)!相对来说,节约了一笔大量的时间开支。其实不同的游戏可能有所不同,但对于这些网速稳居平均水平或以下的玩家来说,这些技巧绝对值得一试,尤其是考虑到当前这些40-50GB大小的重量级游戏。
我们还进行了其他几种尝试:
理解清单目录的一个尝试
清单目录绝对可以被进一步地被编辑和更改借此来改善里面的结果,促使Steam检查出尽可能多的文件。
在Github上有一个项目,包含一个可以生成那些清单文件的python脚本。任何Steam游戏的AppID可以从SteamDB 上获取到。知晓了游戏的ID号后,你便可以用你喜爱的编辑器以下边的格式创建你自己的清单文件 appmanifest_.acf。在里面手工方式中,我们可以见到SUPERHOT这个游戏的AppID是322500,所以对应的清单文件名应当是 appmanifest_322500.acf。
下边以我们知晓的信息来尝试对该文件进行一些解释:
“AppState”//应用(游戏)的状态“appid”“322500”//游戏的AppID“Universe”“1”“name”“SUPERHOT”//游戏的名称“StateFlags”“4”“installdir”“SUPERHOT”//安装目录的名称“LastUpdated”“1474466631”“UpdateResult”“0”“SizeOnDisk”“4156100762”“buildid”“1234395”“LastOwner”“”//惟一的账号拥有者的“BytesToDownload”“909578688”//将这个数字乘以1073741824(1024x1024x1024)便可以估算出还须要下载的数据大小,以GB记。“BytesDownloaded”“909578688”//已下载数据的大小,以Bytes记。“AutoUpdateBehavior”“0”//当这个设为0时,该游戏将手动升级。“UserConfig”//用户的配置信息{“Language”“english”}“MountedDepots”//这个部份大多与游戏的DLC相关。{“322503”“34556837”}}
通过估算下载的数据的大小,你可以将它与Steam诠释的信息进行比较并进行更多的调整。
