about 2 years ago

今天早上看到 Victor 在 FB 上分享了一篇文章 Run your own high-end cloud gaming service on EC2。大意是如何惡搞 EC2 在上面玩 GTA5。看了看覺得很新鮮,加上這個方法要是成功了,Steam 上的 Windows 遊戲 幾乎就可以玩了,所以動手實驗看看。

會用中文重寫一篇指南是這件事沒有想像中的簡單,踩了一堆雷也害我燒了一整個下午弄機器,想了想還是把步驟重新寫下來以免將來忘記。

想法與成本

這個惡搞大招主要是基於

  • EC2 上提供了 Windows 2012 R2 的 Server,而 g2.2xlarge 的機器上面有 NVIDIA GRID K520 graphics card。
  • Steam 提供了同區網可以 Stream 遊玩的功能
  • 買一台可以打 GTAV 或 Cities Skylines 的 PC 要台幣 30000 - 40000 不等。而用這招惡搞的方式,一個小時成本大概在台幣 15 元,可以當租台機器在網咖打。(特別是方便我們這種只有 Mac 的人)(如果租到 Spot Instance 大概一小時台幣 3 元...)

所以要克服的主要的點,就是如何讓遊戲可以跑在 EC2 的顯卡上,然後穿牆 VPN 同網段,用 Mac 開 Stream 模式開來玩。

設定 EC2 機器

  • 上 EC2 租 g2.2xlarge 的機器(儘量找離自己近一點的 zone)。

  • EBS 開大一點,至少 150 GB 掛上去。(因為 Windows 本身就 30GB,GTAV 至少 60GB)。
  • Security Group 開 All traffic。
  • 記得要產生 key pair,這是拿來取得 Windows 密碼用的。

一但機器開好了,用 Mac 上的 Microsoft Remote Desktop 連進去,然後架 VNC Server。

設定顯卡與音效

裝完記得要把系統內建的顯卡驅動程式停用並砍掉。

裝完驅動程式要記得重開機

設定 VNC

這邊值得注意的是,如果上 RDP 是玩不動 Steam 的,所以 RDP 只是讓你進去裝 VNC 的。VNC 我是用 UltraVNC。(因為跑了 RealVNC,TightVNC,Service Mode 的密碼都設不上去...)

記得 UltraVNC 要開 Service mode 跑成常註。

然後到 Admin Properties 裡面去設定 VNC 密碼。

記得要開內部防火牆

當初 EC2 的 Allow Anywhere 雖然有開。但是 Windows 自己裡面還有 Firewall。記得要去 Security 那邊加 rules allow 5900 Inbound / Outbound 流量都可以過。

設定 VPN

我是直接跑商用的 Hamachi 點對點直接做 Private Network。

做法是建立一個 network,EC2 與 Macbook 都連到這個 Network 進來。

我完全不建議裝 OpenVPN ,是因為表面上省錢,其實浪費一堆時間,因為 OpenVPN debug 實在太困難....。(我燒掉一堆無謂的時間,最後生氣了就直接裝Hamachi,一年 29 美金而已。)

設定 Steam

打開 Steam 的帳號設定,加入 Beta Program,然後重開

(因為加入 Beta Program 才可以玩串流遊戲)

然後啟用串流

兩台都要啟用串流,理論上在同一個網路的話,就可以看到對方機器了。

再把硬體編碼這些選項都打開...

安裝 GTAV

  • 安裝 GTAV。(這邊沒什麼技巧,不過當初硬碟真的要留大一點...,不夠的話 EBS 是還能再追加,只是要重開機)
  • 安裝 Windows Media Foundation

實際安裝完 GTAV 並登入後,GTAV 會出現一個錯誤

"Dependency MFREADWRITE.DLL is missing. Please reinstall the game." errors on GTAV for PC"
官方有提出解法,不過這是給家用 Windows 7/8 用的。沒有 Windows 2012 Server 用的。最後 google 了超久才試到怎樣在 Server 上裝上去

到 Server Manager

Add Roles and features

裝 Media Foundation

然後重開機器。

Happy Gaming

然後基本上之後,只要 VNC 進去

  • 打開 VPN
  • 打開 Steam,確認兩檯機器連線
  • 在 Mac 上執行 Stream,接著就可以玩了。

成果

我在 100M 的 Comcast 上面玩 1280x960的大概有 50fps 左右。

錄了一段參考影片

原始檔:http://d.pr/v/1dDDu。其實蠻清楚的。

同場加映

如何租便宜的 Spot 機器

有朋友反映,不知道怎樣把 root volume 掛到 Spot 機器上。我是用 on-demand 的機器先裝好環境,然後對該檯機器做一個 AMI出來,然後再用該 AMI 跑去租 Spot。一小時才 0.1X 美金而已。(租一個小時台幣不到 5 元...)

← Startup 前期應不應該導入 TDD / BDD? 用 EC2 上的 Windows 玩模擬市民 3 →
 
comments powered by Disqus