自建云游戏服务的尝试
为什么?
我最近经常玩《原神》,但是我:
- 只有一台能带动这游戏的远程工作站,我还很难物理访问它
- 平时在外面只能使用弱鸡的旧款 MacBook Pro
- 用 iPhone 12 Pro 玩,感觉体验堪忧
显然,再为这么一款游戏而专门购买游戏本是不划算的,而且游戏本有着笨重、噪音大、外观普遍中二感爆棚、电池续航几乎不存在等缺点。
考虑到近年来 Stadia、GeForce Now 等云游戏服务在国外的兴起,我有了新的主意:拿自己的远程工作站搭建云游戏服务。
本博文不是真正意义上的教程,但是记录了我对若干方案的尝试和使用体验。
环境
- 服务端(工作站)和客户端都在重重 NAT 之下
- 有一台阿里云 ECS 做跳板机,安装有:
- Wireguard(用于和不同的远程设备连接)
- nginx(通过 stream 模块向公网转发端口)
RDP
在此之前,我经常会使用 RDP 来连接我的远程工作站。启动 RDP 服务不需要复杂的服务端设置,在网关机上也只要简单转发一个端口到公网即可。
其实 RDP 对于一般的应用程序是没有问题的,但是完全不适合打游戏:
- 图形渲染过程是交给客户端完成的
- 鼠标工作不正常
Moonlight
我的工作站配备有 GTX 1650 Super,因此可以借助 GeForce Experience 的游戏串流功能和 Moonlight 客户端,轻松搭建自己的云游戏服务。
总体来说,在有合适的网络条件下,Moonlight 可以提供足够好的游戏体验。但是它也有一些蛋疼的问题:
- 配对时必须在远程主机上输入四位数字确认
- 一旦连接过 RDP(因为我平时还要工作!),串流服务就会停止工作
- 所以,上述的配对过程也不能在 RDP 进行,必须使用其它的远程桌面服务(如 Teamviewer);
同时,每次连接过 RDP,都需要用 Teamviewer 再连接一次。
- 所以,上述的配对过程也不能在 RDP 进行,必须使用其它的远程桌面服务(如 Teamviewer);
Parsec
Parsec 是一款与 Moonlight 类似的应用,但是解决了 Moonlight 的很多痛点:
- 验证是基于他们自家帐号系统的(比在远程主机确认配对方便多了!)
- 连完 RDP 以后可以直接连接
- 灵活的连接方式,可以自动视情况通过局域网、Wireguard 等方式连接到服务端
- 支持 A 卡(虽然我现在用的是 N 卡)
不过,你只能使用 Parsec 他们家的帐号系统,而且他们的客户端比较黑箱。我不是很在乎就是了……
让 GPU 一直工作
我在淘宝上随便买了个 HDMI 锁屏宝,解决了这个问题。
不过,也可以试试 虚拟显示器。
对比
总之,不同的连接方案有着它们的优缺点,所以还得视场合选择使用哪种方式连接到我的工作站。
服务/特性 | RDP | Moonlight | Parsec |
---|---|---|---|
支持显卡 | N/A | Nvidia | 各种 |
配置难度 | 低 | 中等 | 低 |
首次连接 | 输入本机登录信息 | 在服务端完成配对操作 | 输入 Parsec 登录信息 |
流量消耗 | 低 | 较高 | 中等 |
图形渲染位置 | 客户端 | 服务端 | 服务端 |
针对游戏优化 | 否 | 是 | 是 |
使用 RDP 后再连接 | N/A | 需要其它远程桌面工具再连接 | 可直接连接 |
自动打洞 | 无 | 无 | 有 |
剪贴板共享 | 有 | 无 | 无 |
开源软件 | 否 | 客户端开源 | 否 |
自建云游戏服务的优越性
就是可以玩各种自己喜欢的游戏啦,而不只局限于云游戏厂商提供的可玩游戏。
不过,如果你没有长期使用 Windows 远程桌面的需求,而且只想玩一些大众游戏,那么类似于 网易云游戏平台、腾讯云游戏 等服务都是可以考虑的。
Update: 如果你是原神国服玩家,还可以考虑一下官方的云・原神,不过看起来只能在手机上玩。
流量费
别人花 648 抽优菈,我花 648 让游戏跑起来。
然后我靠着免费的原石抽到了她(