存储、计算、显示。这是游戏玩得爽的基本要求。

  • 存储指的是你需要一些存储空间用来保存游戏文件。
  • 计算指的是你需要一些优秀的计算资源,例如:显卡、CPU、内存来计算游戏画面
  • 显示指的是你需要一个优秀的显示器(高刷新率、高分辨率、低延迟)来展示游戏画面

显然,大部分人都会在家里组装一台电脑来做这件事,并且认为这理所当然。

file

为什么你不应该组装一台电脑来打游戏?

当然,不分离的体验是非常不错的。设备之间有最低的延迟,最高的性能,最简单的结构。

但是缺点非常明显:

家里可能不止有一台设备。你可能有一台Nas,有一台游戏电脑,有一个平板电脑,有一个笔记本电脑,还有手机。你希望在冬天的时候能够在床上使用平板电脑继续游戏。你又希望你在玩排位比赛的时候使用舒适的键盘鼠标进行游戏。你还想在手机上看别人玩Dota的画面。没事儿的时候你携带笔记本给别人演示你的游戏。

file

你的设备性能不同

设备性能有高有低。你的游戏电脑呢可以畅玩最高画质,而笔记本就需要降低分辨率。

这非常令人痛苦:我明明已经买了4090,却不能提升笔记本的游戏体验。非常痛苦。

你每次更换设备都需要重新下载游戏

游戏都很大,动辄数百GB。游戏电脑上刚刚下完的赛博朋克,笔记本想玩就得再下一遍。非常痛苦。

file

磁盘空间不大需要你不停卸了装,装了卸

游戏主机只有2TB磁盘空间。装10个游戏就没空间了。每次想体验新游戏,就空间不足,还得卸载掉没通关的游戏。回头基友喊你开黑,你还得重新下回来。

浪费带宽、浪费硬盘、天天捣鼓,浪费时间。非常痛苦。

file

每次重新安装系统后都需要大量的重新配置工作

电脑总会坏,总会买新的,总会卖老的。

每次家里来新电脑,光是装系统就很痛苦了,还得重新配游戏。还得拷键位、装插件、恢复存档……非常痛苦。

结论

多台设备就意味着每个游戏都需要重复安装在每台设备上。而且不同设备之间性能可能不同,这导致游戏体验也截然不同。

file

如果你能发挥每个设备最大优势,让Nas去存储游戏的数据,让游戏主机负责游戏的渲染和计算,再让平板、手机负责游戏画面的展示,就可以在被窝里体验4090的性能,畅玩10TB的游戏库了。

因此,你必须分离三件事:

存储和计算分离

存储和计算分离是现代软件系统必备的基础架构。这是考虑到存储设备可能计算性能不强,而计算设备可能存储空间不大又易于损坏。存储和计算分离能够让计算设备变成非常容易替代和更换的。

计算和显示分离

计算和显示分离,换句话说,就是串流。这是考虑到你的显示器虽然舒服,但是它无法带到被窝里、客厅和厕所。很多时候你更想用平板、手机来玩游戏。

而且,如果你购买的比较高质量的iPad,它的高分辨率、高刷新率、HDR和舒适的面板和色彩,不亚于现在主流的电竞屏幕。用一个舒适的平板来观赏游戏画面相当的爽。

只是,计算和显示分离,并没有“存储和计算分离”那么有必要。

结构

file

在这个结构中,你需要准备下列内容:

网络

显然,你最好上万兆网络。这可以跑出每秒 1200MB 的速度,媲美大部分 NVME 固态硬盘。

当然,如果你穷,上千兆网络也不错。这可以跑出每秒 120MB 的速度。我实测,大部分游戏体验不错。赛博朋克2077中经常有贴图加载不出来。不过问题不大。

显然,你的所有设备最好都连到同一个子网(同一个Wifi\路由器)下。不然你又得配置匪夷所思的端口转发和NAT。计算机网络充满玄学,不要试图de那些奇怪的bug。

显然,你应该尽量用有线网。无线跑个千兆我都觉得跑不满,还经常丢东西。

存储设备

存储方面,我个人推荐:

  • 先插满12块硬盘上Raid6。当然如果你勇,上Raid0也可以。
    • 硬盘建议选购垂直硬盘,建议选购7200转
  • 再插一块NVME固态,做Raid6的缓存。我估计大部分游戏都能Hit缓存。
  • 安装Debian Linux,考虑到它很稳定。
  • 配置LVM,这会让你更方便的配置缓存。
  • 安装NFS服务。

上面的这些内容,你可以在我之前已经写好的:存储与计算分离的博客中找到。

存储与计算分离配置法

当然,你也可以阅读这里学习NFS服务器的配置方法:

NFS服务器的搭建方法

如果你非要用 Windows

如果你非要用 Windows 来跑存储服务器,也无所谓。记得安装 Windows Server。

Windows可以开出来 SMB 服务器,然后通过映射网络驱动器挂载给其它设备。亲测 Steam 可以接受挂载的 SMB 网络驱动器。

file

选择你的存储与计算分离的通信协议

如果你能搞定 ISCSI,自然是最好的。但是这样可能会丧失一部分跨设备使用的能力,也会丧失远程管理文件的能力。

不要使用 WebDav 或 FTP 来挂载远程路径。

个人建议 NFS。如果是 Windows 狂热爱好者,SMB也可以。

推荐顺序:

  • ISCSI
  • NFS
  • SMB
  • WebDav (非常不推荐)
  • FTP(非常不推荐)

但是,对于某些游戏,他们会坚定的认为:一个挂载的远程路径不是一个硬盘,然后拒绝安装在上面。比如微软的 XBox 游戏,还有暴雪的游戏。

file

这非常痛苦。但是,也可以绕过这个检查。方法就是:

  • 在远程 NFS 或 SMB 上创建一个 VHDX 文件,然后挂载这个 VHDX 文件为一个本地硬盘。

file

此时这个 Location 页面就可以选择远程路径了!

file

挂载完成以后,和本地磁盘无异:

file

如果你很懒

如果你很懒,懒得自己建设 Nas,那么购买一台群晖也不错。

计算设备

计算设备和平时没有什么不同。但是:

它不需要安装太大的硬盘。插一个 256GB 的小固态,装个 Windows 足矣。

file

这年头组装个电脑应该没什么障碍。

装完了以后可以安装一些游戏平台,例如:

  • Steam
  • XBox
  • Battle.net
  • Uplay
  • EA Origin

然后试着让它访问远程盘,阅读里面的游戏吧。这里给出 Steam 的方法:

file

file

file

然后选择远程盘即可。 Steam 不会给你重新下载一遍,而是直接就识别出这些游戏了。

显示设备

显示设备的目的是,展示计算设备渲染出来的游戏画面。

曾经在上古时代,显示与计算分离是个坑很大的事情:延迟高、画面垃圾。

如今Wifi6普及,光纤进房间,万兆跑起来,把游戏画面串流到床还是不难的。

这里可以参考 极客湾的做法:https://www.youtube.com/watch?v=_sHFL_ekYko

当然首先你需要购买一个iPad。安卓的平板可能也行。

file

你需要在 AppStore 里下载 Moonlight。有手柄的话可以把 Xbox 手柄与 iPad 配对。

我是NVIDIA的显卡。在Geforce Experience里开启Game Stream。

file

确保 iPad 和电脑连接了同一个子网。然后打开 Moonlight,就会显示你的 PC。

file

如果你出现了上下黑边,想调整分辨率的话,请参考教程:

https://www.youtube.com/watch?v=_sHFL_ekYko