雲遊戲的未來是實現遊戲大眾化。任何一個喜歡遊戲的人都應該能夠享受遊戲,並與好友分享遊戲體驗,無論他們身在何處,即使他們沒有最新最貴的遊戲硬件。Facebook 在 2020 年啟動了雲遊戲平台,讓 Facebook 用戶可以通過各種屏幕和網頁瀏覽器即時地訪問原生 Android 和 Windows 遊戲。
這種前所未有的雲遊戲訪問體驗需要 Meta 的工程師們迎接新的挑戰,開發出能夠為世界各地的人們提供高質量遊戲體驗的硬件基礎設施。
遊戲本身也在不斷演化,從 AR 和 VR 等 3D 體驗到元宇宙,世界各地的人們都希望儘可能無縫且輕鬆地玩越來越具有沉浸感的遊戲。實現元宇宙需要整個行業投入巨大的努力,但我們相信創建基礎設施和解決雲遊戲的挑戰將為我們指明走向元宇宙的道路。
雲遊戲關注的是可訪問性——為人們提供遊戲,不管他們使用什麼設備,也不管他們位於世界何處。將遊戲應用放到雲端,人們就不需要購買新硬件,也不需要大量下載或等待更新。它支持遊戲跨桌面和移動設備無縫交叉,可以實現靈活的應用分發。
雲遊戲還為開發者提供了更輕鬆的開發體驗,因為他們不再需要過多地考慮針對多個硬件平台(如桌面和手機)優化遊戲。在理想的情況下,開發者只需要構建一次應用,就可以分發到多個設備上,而不需要構建多個二進制文件。對於關心安全和完整性的玩家和開發者來說,雲遊戲意味着更少的作弊和盜版問題。
在 Meta 實現雲遊戲意味着工程師們需要開發新的硬件和軟件基礎設施來解決雲遊戲所面臨的挑戰。雲遊戲要求較低的端到端延遲,並提供快速流暢的遊戲體驗,而高質量的視頻和音頻需要以儘可能小的抖動進行傳輸。為了提升成本效率,基礎設施還需要能夠在單個雲遊戲服務器上運行多款遊戲。所有這一切都必須受到保護,免受各種網絡攻擊,同時保持健壯和高效。
Meta 雲遊戲基礎設施為玩家提供低延遲體驗的方法是在網絡距離方面讓其儘可能地靠近玩家。Meta 的數據中心無法單獨為雲遊戲提供超低的延遲,所以我們依賴邊緣計算,在靠近大量人口的大都市地區邊緣部署服務,讓雲遊戲基礎設施更靠近玩家。
通過增加邊緣計算站點降低延遲
我們的目標是在每一個邊緣計算站點中都有一個統一的託管環境,確保我們可以儘可能平穩地運行儘可能多的遊戲。如今的遊戲都是為 GPU 設計的,所以我們與 NVIDIA 合作,基於 NVIDIA Ampere 架構的 GPU 構建託管環境。隨着遊戲圖像渲染變得越來越密集和複雜,GPU 將為遊戲的加載、運行和流化提供高保真度和低延遲。
為了運行遊戲,我們在我們的邊緣計算操作系統上使用了我們的集群管理系統 Twine。我們構建了編配服務來管理流媒體信號,並使用 Twine 來協調邊緣的遊戲服務器。
我們為 Windows 和 Android 遊戲使用了容器技術,提供了不同的託管解決方案,其中 Windows 託管解決方案集成了 PlayGiga。我們已經構建了一個統一的編配系統來管理和運行兩個操作系統平台的遊戲。這意味着我們可以更靈活地跨不同的平台交付遊戲和管理容量。
提供流暢的視頻和音頻是雲遊戲體驗最重要的部分之一。任何玩過在線遊戲的人都體會過延遲可能帶來的挫敗感。
考慮到技術的成熟度和兼容性,我們結合了 WebRTC 和安全實時傳輸協議(SRTP),將其作為流式處理用戶輸入和發送遊戲視音頻幀的解決方案。隨着時間的推移,這種方案顯著提高了視頻和音頻流式傳輸的性能。
我們將從剛開始的雲遊戲基本的流開始講起。
無論玩家在何時點擊執行遊戲中的動作(例如讓遊戲角色跳躍),我們都會捕捉到點擊事件並將其發送給服務器,服務器將接收到這個事件。然後,遊戲渲染包含該動作結果的幀(即角色跳躍)。我們捕獲並複製渲染的幀,使用視頻編碼器對其進行編碼,然後將其打包,裝入用戶數據報協議(UDP)數據包,再通過網絡發送給玩家。最後,玩家端有一個抖動緩衝區來平滑接收到的數據包。我們將數據包解碼為幀,然後為玩家渲染幀。
所有這一切都發生得如此之快,以至於玩家察覺不到點擊和角色動作之間存在延遲。然而,每一個步驟都需要花費一點時間,這些時間累積起來會給玩家帶來更高的延遲。
我們當前的模型在此基礎上進行了顯著改進,通過 GPU 編碼降低了延遲。使用 GPU 編碼意味着遊戲渲染幀是在 GPU 中進行的,並且在編碼完成之前不會離開 GPU 的內存。這個過程非常高效,並且不需要在 GPU 和主服務器之間占用大量的 PCI 總線帶寬。編碼後的幀也會比原始幀小。
目前的視頻和音頻流媒體模型,通過使用 GPU 編碼顯著降低了延遲
在網絡方面,讓邊緣計算站點靠近玩家也有助於降低視頻和音頻的延遲——甚至比將整個流式管道轉成 GPU 所節省的成本更加顯著。
在玩家端,我們現在也使用硬件解碼來縮短解碼時間。視頻和音頻通常是同步在一起的,但我們也可以為了降低延遲在音頻之前發送視頻。我們還可以利用玩家電腦顯示器或手機屏幕的固有延遲。屏幕會以一定的速率(如 30fps 或 60fps)逐幀顯示視頻。我們可以利用幀之間難以察覺的間隔吸收掉一些抖動,讓視頻變得更加平滑。對於支持更高 FPS 的設備,延遲可能會進一步下降。
玩家和開發者需要確保雲遊戲體驗是安全的。玩家希望他們的數據是安全的,遊戲不會被作弊者利用。開發者需要確保他們的產品不會受到盜版和其他安全漏洞的侵害。
邊緣計算、GPU 虛擬化和視頻 / 音頻流的結合使得雲遊戲基礎設施變得非常複雜。這種複雜性帶來了獨特的安全性挑戰。作為一個基於 Windows 和 Android 的系統,系統本身承擔了這些環境的安全性挑戰,還需要保護免受 DDOS 攻擊等威脅。
為了識別和解決安全問題,我們在開發的每個階段(從設計、實現到測試)都會評估安全性,包括威脅建模、安全代碼評審、模糊測試和安全測試。我們不希望雲遊戲成為攻擊其他 Meta 系統的入口,所以雲遊戲基礎設施與 Meta 的核心數據基礎設施是完全隔離的。我們還有一個內部安全團隊與外部公司一起工作,定期對系統進行安全評估。
元宇宙對遊戲的未來有着重要的影響——不僅是關於人們可以玩的遊戲類型,還包括如何向人們分發這些遊戲。元宇宙將比以往任何時候對網絡連接有着更高的要求。我們今天奠定的基礎將在幫助整個行業構建雲基礎設施方面發揮重要作用,這些基礎設施將承擔創建元宇宙體驗所需的複雜計算。
就像 3A 級遊戲一樣,未來的元宇宙體驗需要最高的保真度和最低的延遲。如果無法無障礙地實現這種體驗,那它就不適合任何人,這意味着元宇宙網絡必須具有超低延遲、高可伸縮性、高吞吐量和聯邦數據存儲。
無論這種新的網絡架構是什麼樣子,我們都需要對今天的整體網絡架構進行改進。它將需要一個可靠的、服務質量(QoS)感知的、點對點的通信鏈路和協議,讓在同一個區域內(例如,在相同的 Wi-Fi AP 覆蓋下)的人們可以相互交換信息。它需要一個統一的、無處不在的網絡拓撲來限制全球範圍內的延遲、抖動和丟包。降低延遲、提高可靠性、提升吞吐量和開發聯邦數據庫的挑戰可能會迫使工程師在端到端通信網絡中重新設計和分配計算和路由資源。然後,元宇宙在網絡的每一段以及每一個應用 / 網絡協議層(從頂部的應用層到底部的操作系統層)都需要無處不在的端到端 QoS 管理策略。
我們正在研究解決這些問題的方法。我們的雲遊戲基礎設施提供了一些見解,我們正在與移動網絡運營商和運營商、硬件芯片組製造商和其他合作夥伴合作,創建可以滿足元宇宙需求的解決方案。
許多人將通過遊戲進入元宇宙。我們朝着元宇宙的長期願景努力,我們將繼續構建新的二維體驗,幫助 Meta 應用用戶跨越元宇宙鴻溝。最近 Facebook 遊戲平台推出的 Crayta 就是一個很好的例子。
隨着雲遊戲平台的規模不斷擴大,我們也在不斷升級和完善雲遊戲基礎設施。在接下來的 2 到 3 年裡,我們將進行更多的國際擴張,將遊戲帶給世界各地更多的人。我們還與移動網絡運營商合作,顯著降低其接入網絡的延遲。在硬件方面,我們正在與芯片組製造商合作,降低用戶設備的延遲。我們還在研究新的容器技術,提供更好的流媒體效率。當然,隨着系統的發展和改進,安全性也會不斷提高。
開發者對顯著的改進有所期待,包括改進系統的兼容性,減少開發者負擔,並為他們提供更好的開發、測試、調試、實驗和分析工具。玩家是我們雲遊戲工作最重要的組成部分,他們可以期待即將到來的更具沉浸感的全新遊戲體驗。
我們的目標是讓人們在任何時刻、任何地點一起玩優秀的遊戲,這一點始終不變,我們在雲遊戲方面的持續努力將確保這些體驗變得更好。
原文鏈接:
https://engineering.fb.com/2022/06/09/web/cloud-gaming-infrastructure/
NGINX 局限太多,Cloudflare 最終放棄它並用 Rust 自研了全新替代品
CEO 們突然介入到 IT 建設, 企業紛紛遷出 VM 虛擬機基礎設施
「羊了個羊」一天宕機 3 次,馬化騰闢謠日賺 468 萬元;60 歲史玉柱「重返一線」改遊戲;曠工為由辭退員工,脈脈被判賠 24 萬|Q 資訊
Adobe 豪擲 200 億美元收購 Figma,開發者卻將其罵上了「熱搜」