存储、计算、显示。这是游戏玩得爽的基本要求。
- 存储指的是你需要一些存储空间用来保存游戏文件。
- 计算指的是你需要一些优秀的计算资源,例如:显卡、CPU、内存来计算游戏画面
- 显示指的是你需要一个优秀的显示器(高刷新率、高分辨率、低延迟)来展示游戏画面
显然,大部分人都会在家里组装一台电脑来做这件事,并且认为这理所当然。
为什么你不应该组装一台电脑来打游戏?
当然,不分离的体验是非常不错的。设备之间有最低的延迟,最高的性能,最简单的结构。
但是缺点非常明显:
家里可能不止有一台设备。你可能有一台Nas,有一台游戏电脑,有一个平板电脑,有一个笔记本电脑,还有手机。你希望在冬天的时候能够在床上使用平板电脑继续游戏。你又希望你在玩排位比赛的时候使用舒适的键盘鼠标进行游戏。你还想在手机上看别人玩Dota的画面。没事儿的时候你携带笔记本给别人演示你的游戏。
你的设备性能不同
设备性能有高有低。你的游戏电脑呢可以畅玩最高画质,而笔记本就需要降低分辨率。
这非常令人痛苦:我明明已经买了4090,却不能提升笔记本的游戏体验。非常痛苦。
你每次更换设备都需要重新下载游戏
游戏都很大,动辄数百GB。游戏电脑上刚刚下完的赛博朋克,笔记本想玩就得再下一遍。非常痛苦。
磁盘空间不大需要你不停卸了装,装了卸
游戏主机只有2TB磁盘空间。装10个游戏就没空间了。每次想体验新游戏,就空间不足,还得卸载掉没通关的游戏。回头基友喊你开黑,你还得重新下回来。
浪费带宽、浪费硬盘、天天捣鼓,浪费时间。非常痛苦。
每次重新安装系统后都需要大量的重新配置工作
电脑总会坏,总会买新的,总会卖老的。
每次家里来新电脑,光是装系统就很痛苦了,还得重新配游戏。还得拷键位、装插件、恢复存档……非常痛苦。
结论
多台设备就意味着每个游戏都需要重复安装在每台设备上。而且不同设备之间性能可能不同,这导致游戏体验也截然不同。
如果你能发挥每个设备最大优势,让Nas去存储游戏的数据,让游戏主机负责游戏的渲染和计算,再让平板、手机负责游戏画面的展示,就可以在被窝里体验4090的性能,畅玩10TB的游戏库了。
因此,你必须分离三件事:
存储和计算分离
存储和计算分离是现代软件系统必备的基础架构。这是考虑到存储设备可能计算性能不强,而计算设备可能存储空间不大又易于损坏。存储和计算分离能够让计算设备变成非常容易替代和更换的。
计算和显示分离
计算和显示分离,换句话说,就是串流。这是考虑到你的显示器虽然舒服,但是它无法带到被窝里、客厅和厕所。很多时候你更想用平板、手机来玩游戏。
而且,如果你购买的比较高质量的iPad,它的高分辨率、高刷新率、HDR和舒适的面板和色彩,不亚于现在主流的电竞屏幕。用一个舒适的平板来观赏游戏画面相当的爽。
只是,计算和显示分离,并没有“存储和计算分离”那么有必要。
结构
在这个结构中,你需要准备下列内容:
网络
显然,你最好上万兆网络。这可以跑出每秒 1200MB 的速度,媲美大部分 NVME 固态硬盘。
当然,如果你穷,上千兆网络也不错。这可以跑出每秒 120MB 的速度。我实测,大部分游戏体验不错。赛博朋克2077中经常有贴图加载不出来。不过问题不大。
显然,你的所有设备最好都连到同一个子网(同一个Wifi\路由器)下。不然你又得配置匪夷所思的端口转发和NAT。计算机网络充满玄学,不要试图de那些奇怪的bug。
显然,你应该尽量用有线网。无线跑个千兆我都觉得跑不满,还经常丢东西。
存储设备
存储方面,我个人推荐:
- 先插满12块硬盘上Raid6。当然如果你勇,上Raid0也可以。
- 硬盘建议选购垂直硬盘,建议选购7200转
- 再插一块NVME固态,做Raid6的缓存。我估计大部分游戏都能Hit缓存。
- 安装Debian Linux,考虑到它很稳定。
- 配置LVM,这会让你更方便的配置缓存。
- 安装NFS服务。
上面的这些内容,你可以在我之前已经写好的:存储与计算分离的博客中找到。
当然,你也可以阅读这里学习NFS服务器的配置方法:
如果你非要用 Windows
如果你非要用 Windows 来跑存储服务器,也无所谓。记得安装 Windows Server。
Windows可以开出来 SMB 服务器,然后通过映射网络驱动器挂载给其它设备。亲测 Steam 可以接受挂载的 SMB 网络驱动器。
选择你的存储与计算分离的通信协议
如果你能搞定 ISCSI,自然是最好的。但是这样可能会丧失一部分跨设备使用的能力,也会丧失远程管理文件的能力。
不要使用 WebDav 或 FTP 来挂载远程路径。
个人建议 NFS。如果是 Windows 狂热爱好者,SMB也可以。
推荐顺序:
- ISCSI
- NFS
- SMB
- WebDav (非常不推荐)
- FTP(非常不推荐)
但是,对于某些游戏,他们会坚定的认为:一个挂载的远程路径不是一个硬盘,然后拒绝安装在上面。比如微软的 XBox 游戏,还有暴雪的游戏。
这非常痛苦。但是,也可以绕过这个检查。方法就是:
- 在远程 NFS 或 SMB 上创建一个 VHDX 文件,然后挂载这个 VHDX 文件为一个本地硬盘。
此时这个 Location 页面就可以选择远程路径了!
挂载完成以后,和本地磁盘无异:
如果你很懒
如果你很懒,懒得自己建设 Nas,那么购买一台群晖也不错。
计算设备
计算设备和平时没有什么不同。但是:
它不需要安装太大的硬盘。插一个 256GB 的小固态,装个 Windows 足矣。
这年头组装个电脑应该没什么障碍。
装完了以后可以安装一些游戏平台,例如:
- Steam
- XBox
- Battle.net
- Uplay
- EA Origin
然后试着让它访问远程盘,阅读里面的游戏吧。这里给出 Steam 的方法:
然后选择远程盘即可。 Steam 不会给你重新下载一遍,而是直接就识别出这些游戏了。
显示设备
显示设备的目的是,展示计算设备渲染出来的游戏画面。
曾经在上古时代,显示与计算分离是个坑很大的事情:延迟高、画面垃圾。
如今Wifi6普及,光纤进房间,万兆跑起来,把游戏画面串流到床还是不难的。
这里可以参考 极客湾的做法:https://www.youtube.com/watch?v=_sHFL_ekYko
当然首先你需要购买一个iPad。安卓的平板可能也行。
你需要在 AppStore 里下载 Moonlight。有手柄的话可以把 Xbox 手柄与 iPad 配对。
我是NVIDIA的显卡。在Geforce Experience里开启Game Stream。
确保 iPad 和电脑连接了同一个子网。然后打开 Moonlight,就会显示你的 PC。
如果你出现了上下黑边,想调整分辨率的话,请参考教程:
https://www.youtube.com/watch?v=_sHFL_ekYko
首先,我非常赞赏您对存储、计算、显示分离的游戏体验的探索。这篇博客详细地阐述了这种体验的优点和实现方法,让读者能够更好地理解这种游戏体验的优越性。特别是您对于不同设备性能、游戏下载及安装的问题以及如何实现存储与计算分离的详细解释,让人印象深刻。
在博客中,您提到了使用Nas、群晖等存储设备,并详细介绍了如何配置网络、选择通信协议等。这些内容都非常实用,对于想要尝试这种游戏体验的读者来说非常有帮助。同时,您还提供了一些教程链接,方便读者进一步了解相关知识。
此外,您对于如何实现计算与显示分离的讨论也很有价值。通过使用iPad和Moonlight等工具,可以实现游戏画面的无线串流,让玩家在不同设备上获得更好的游戏体验。
然而,我认为在博客的结构方面还有一些改进空间。例如,在文章开头部分,可以加入一些背景信息,介绍一下为什么要探讨这个话题,以及这种游戏体验的优点和潜在挑战。这样可以帮助读者更好地理解文章的核心内容。
此外,在讨论如何实现存储与计算分离时,您提到了一些具体的操作步骤和建议。虽然这些内容对于熟悉相关技术的读者来说非常有帮助,但对于不太了解这方面知识的读者来说可能会感到有些困惑。在这里,可以考虑添加一些简化版的步骤,以便让更多读者能够理解和尝试。
总的来说,这篇博客非常详实且有趣,为读者提供了很好的参考。希望您能继续探索这个领域,为我们带来更多有价值的内容。
niubitlity