View a markdown version of this page

定義 - 遊戲產業鏡頭

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

定義

AWS Well-Architected Framework 以六大支柱為基礎:卓越營運、安全性、可靠性、效能效率、成本最佳化和永續性。 AWS 提供多個核心元件,可讓您為遊戲工作負載設計state-of-the-art架構。在本節中,我們將介紹金鑰定義的概觀。

基於本文的目的,遊戲架構包含建置和操作遊戲所需的後端技術基礎設施。有些遊戲可能沒有社交、多玩家或其他線上功能,而且可能不需要使用本文所述的後端技術基礎設施的某些層面。如需經常部署以支援遊戲架構之不同類型的工作負載的詳細討論,請參閱案例。

AWS 雲端 基礎設施是以區域和可用區域為基礎建置。

  • 區域是世界上一個實體位置,我們擁有多個可用區域。

  • 可用區域由一或多個離散資料中心組成,每個資料中心都具有備援電源、聯網和連線能力,並存放在不同的設施中。

根據遊戲的特性,您可能想要將遊戲架構的特定元件部署到多個區域,例如改善玩家的效能,或根據玩家的位置為玩家提供自訂體驗。

遊戲有許多不同類型的遊戲,支援遊戲所需的後端技術基礎設施會因開發的遊戲類型而有所不同。例如,熱門的遊戲類型可能包括第一人稱射擊遊戲 (FPS)、角色遊戲 (RPG)、大量多玩家線上遊戲 (MMOG)、戰鬥角色 (BR)、運動遊戲、拼圖遊戲等。也有不同的遊戲互動模式會影響遊戲的架構,例如輪換式和同時播放,具有不同的效能特性。

遊戲的開發是在一或多個遊戲系統上進行,包括桌上型電腦、Web、行動裝置、主控台和較新的互動模式,例如擴增實境 (AR)、虛擬實境 (VR) 和遊戲串流解決方案。遊戲通常支援跨系統遊戲,這表示玩家可以儲存其遊戲進度,並在其他系統上繼續遊戲,以及與其他系統上的玩家啟動遊戲工作階段。

影片遊戲獲利可讓遊戲發行者使用不同的策略來產生收入,例如廣告、數位和零售遊戲購買、遊戲內購買稱為微交易的可下載內容 (DLC),以及透過必要的付費訂閱來玩遊戲。遊戲產業中最常見的一些關鍵效能指標 (KPIs) 包括:

  • 每日作用中使用者 (DAU)

  • 每月作用中使用者 (MAU)

  • 並行使用者 (CCU)

  • 工作階段持續時間

  • 每次安裝成本 (CPI)

  • 玩家生命週期值 (LTV)

  • 每個使用者的平均營收 (ARPU)

遊戲系統

視訊遊戲是在提供用戶端輸入控制、圖形、用戶端軟體 (稱為遊戲用戶端) 和硬體的遊戲系統上開發的,在某些情況下,還有支援遊戲的系統專屬功能。

遊戲系統通常分為以下類別:

  • 主控台:專為遊戲設計的專用娛樂系統,包括熱門範例,例如 Sony PlayStation、Microsoft Xbox 和 Nintendo Switch。主控台透過將實體或數位分散式遊戲內容安裝到遊戲系統供應商製造的主控台硬體上,提供遊戲的能力。在此定義中,主控台可以是手持或固定式,且旨在用於家庭娛樂案例。

  • 個人電腦 (PC):使用安裝在可由玩家自訂之用戶端機器上的電腦軟體播放的遊戲。因此,PC 遊戲在玩家之間很熱門,因為它提供彈性和控制。

  • Web:旨在使用 Web 瀏覽器播放的遊戲,這通常有利於讓玩家無論其作業系統如何都能存取遊戲。

  • 行動裝置:開發為在行動電話上播放的遊戲,通常是智慧型手機作業系統。行動遊戲通常從數位應用程式存放區下載,並安裝在手機上。

除了先前提到的系統之外,還有一些較新且持續成長的系統,相較於較主要的系統,其市佔率要小得多。此類別中的遊戲系統範例包括 AR、VR 和遊戲串流,有時稱為雲端遊戲。

遊戲串流涉及在雲端渲染遊戲體驗,以及串流到精簡型用戶端,通常是瀏覽器。遊戲串流可讓玩家玩完全由遠端託管的遊戲,通常是由遊戲串流服務供應商在雲端。在遊戲串流中,玩家會透過瀏覽器或雲端遊戲服務供應商 (遊戲系統) 提供的精簡型用戶端連線至雲端遊戲。

遊戲伺服器

遊戲伺服器代表遊戲運算基礎設施最重要的層面之一。遊戲伺服器有時稱為專用遊戲伺服器,會在開發多玩家遊戲或需要伺服器授權處理遊戲事件時使用。遊戲伺服器位於遊戲架構的中心,做為核心邏輯執行的位置,其中包括管理玩家和遊戲狀態,以及管理連線遊戲用戶端和遊戲伺服器之間的互動。遊戲伺服器通常是遊戲架構中效能最敏感的層面之一,因為它負責處理玩家遊戲用戶端的輸入,並即時將其正確分發給其他連線的玩家。效能不佳的遊戲伺服器會影響遊戲體驗的整體效能。因此,您應該最佳化遊戲伺服器效能並提供足夠的容量,尤其是在遊戲啟動或尖峰遊戲期間。

基於本文件的目的,遊戲伺服器或遊戲伺服器執行個體是指託管一或多個遊戲伺服器程序的運算,例如虛擬機器。遊戲伺服器程序代表遊戲伺服器組建的單一執行個體託管遊戲工作階段,這是您執行中遊戲的執行個體,玩家可以透過玩家工作階段連線到此執行個體。因此,由於遊戲工作階段與託管遊戲伺服器程序之間的隱含一對一關係,我們通常會互換地參考遊戲伺服器程序或遊戲工作階段。在 中 AWS,有多個運算選項可託管遊戲伺服器,可透過彈性佈建資源來存取可擴展的雲端容量。

Amazon EC2 提供雲端型虛擬伺服器,稱為執行個體,並支援多個版本的 Linux 和 Windows。您可以像其他伺服器或虛擬機器一樣,直接建立執行個體並進行管理。一般而言,多個遊戲伺服器程序會部署到執行個體,以提高效率並降低成本。如果您想要對運算基礎設施進行最大控制,Amazon EC2 是遊戲伺服器的最佳選擇。

Amazon GameLift 為雲端中的專用遊戲伺服器託管提供全受管解決方案,以及其他功能,例如使用 GameLift FlexMatch 進行配對。GameLift 在 Amazon EC2 之上提供一層抽象,讓遊戲伺服器管理變得簡單明瞭,並可在大多數 中使用, AWS 區域 因此您可以託管靠近玩家的遊戲伺服器,以減少延遲、實現高可用性,並使用 Spot 執行個體大幅降低成本。雖然 GameLift 可以整合到現有的遊戲後端,但對於不想開發自己的遊戲伺服器管理和配對解決方案,並偏好由 管理 AWS 且可以隨著遊戲成長擴展的解決方案的遊戲開發人員來說,此功能特別有用。

Amazon Elastic Container Service (Amazon ECS) 是一種全受管容器協同運作服務,可用來執行 Docker 型容器。您也可以使用 Amazon Elastic Kubernetes Service (Amazon EKS) 來執行使用 Kubernetes 建置的 Docker 型容器。使用 Amazon ECS 和 Amazon EKS 提供的容器技術,可透過將許多遊戲伺服器程序或其他遊戲應用程式執行個體有效地封裝到 EC2 執行個體,協助您改善運算使用率。

使用容器也可以透過使用開發人員在開發期間本機機器上使用的相同 Docker 映像操作執行時間來託管應用程式,從而提高開發人員的生產力。您可以使用 進一步降低營運開銷 AWS Fargate,這是用於執行容器的無伺服器運算解決方案,並且與 Amazon EKS 和 Amazon ECS 相容。Fargate 最適合您想要在容器中執行遊戲伺服器的使用案例,無需負責操作容器執行的基礎執行個體。

您可以使用 在資料中心或內部部署設施中 AWS Outposts 執行 AWS 基礎設施和服務,這可讓遊戲在內部部署環境中執行,並使用 AWS 相同的基礎設施來支援混合雲端採用策略。 AWS 本機區域做為 的延伸 AWS 區域 ,可讓您的遊戲伺服器和其他延遲敏感工作負載更接近您的玩家或開發團隊。此外,若要降低遊戲伺服器的全域網路延遲,您可以使用 AWS Global Accelerator 來改善玩家流量到遊戲伺服器的效能。

AWS Lambda 是一種無伺服器運算服務,可在不佈建或管理伺服器的情況下執行程式碼,因此適用於非同步遊戲伺服器使用案例,例如輪換型遊戲或具有輕量型運算需求的遊戲、小型程式碼庫,以及可使用無狀態微服務架構設計遊戲功能。請務必記住,Lambda 函數是以事件驅動的每次請求為基礎執行,而不是執行長時間執行的遊戲伺服器程序。Lambda 提供本白皮書中選項執行時間最多的摘要,因為基礎應用程式可供開發人員選擇託管程式碼。

選擇遊戲伺服器託管的方法時,請考慮各種需求,包括操作開銷、舊版程式碼庫、效能需求和規模。EC2 執行個體和容器是舊版程式碼庫的良好選項,因為它們需要最小的變更才能移至雲端,而且您可以使用 EC2 執行個體來專用運算執行個體的資源,而容器可以讓管理和高使用率更容易實現。無伺服器函數提供最高層級的抽象,可用來定義僅回應事件而執行的程式碼,進而降低成本。

遊戲用戶端

遊戲用戶端代表玩家用來玩遊戲的軟體和硬體裝置。遊戲用戶端提供軟體,將玩家的輸入轉換為傳送至伺服器進行處理的訊息,並負責處理來自伺服器的傳入回應,並將圖形等輸出轉譯給玩家。在即時網路多玩家遊戲中,遊戲用戶端通常會在遊戲工作階段期間維持與遊戲伺服器的持久性網路連線,以減少網路延遲並將處理時間降至最低。不過,遊戲用戶端也可能使用 REST 與遊戲伺服器或後端服務互動。

簡訊

遊戲中通常有三種主要訊息類別: 

  • 針對特定使用者或使用者群組的玩家參與訊息,例如遊戲邀請或推播通知

  • 玩家之間的群組傳訊,例如遊戲內聊天

  • Service-to-service傳訊,例如用於整合兩個或多個應用程式的 JSON 訊息

傳送和接收這類訊息的常見策略是使用發佈者訂閱者和非同步處理架構模式。 AWS 提供多種服務,可協助您在遊戲中實作訊息。

  • Amazon Simple Notification Service (SNS):使用 pub/sub 架構模式在發佈者和訂閱者之間傳遞訊息的受管服務。發佈者使用 API 將訊息傳送到 Amazon SNS,以非同步方式將訊息傳送到訂閱應用程式,並且可以直接將推播通知傳送到行動用戶端或桌面,並支援一些最常用的推播通知服務。Amazon SNS 可用於推送通知給用戶端,以及service-to-service傳訊使用案例。

  • Amazon Simple Queue Service (SQS):全受管佇列服務,無論每個 中使用的程式設計語言為何,都能直接整合遊戲伺服器和您的遊戲。許多遊戲任務可以在背景解耦和處理,例如更新資料庫中的排行榜或播放時間值。這種方法是一種有效的方法,可分離遊戲的各個部分,並從後端處理獨立擴展面向玩家的功能。

  • Amazon Managed Streaming for Apache Kafka (MSK):一種全受管服務,使用熱門的開放原始碼解決方案 Apache Kafka,簡化建置資料串流和生產者或消費者應用程式。Kafka 通常用於擷取和處理即時串流資料,並可用於service-to-service傳訊。

  • Amazon ElastiCache (Redis OSS):提供全受管記憶體內資料存放區,其中包含對 Redis 熱門 pub/sub 功能的支援,該功能通常用於開發聊天室應用程式和高效能service-to-service簡訊。Redis 也支援豐富的資料類型,例如清單和集,以便開發人員可以使用 Redis 進行高效能佇列。

  • Amazon Pinpoint:透過電子郵件、簡訊、語音和推送通知提供使用者互動訊息。例如,Amazon Pinpoint 可用來將使用者參與訊息傳遞給玩家,邀請他們返回遊戲,並可用於交易使用案例,例如支援多重驗證字符、訂單確認和密碼重設電子郵件。

即時遊戲操作 (即時操作)

即時遊戲操作 (即時操作) 是一種遊戲管理和操作風格,可將遊戲視為即時服務,並持續為已啟動的遊戲提供新功能、更新、促銷、遊戲內事件和改進,以改善玩家社群的體驗。

傳統上,遊戲以產品而非 服務的形式交付,而新內容和功能經常納入後續版本或後置版本,而非已啟動的產品。透過遊戲管理的即時操作方法,遊戲操作團隊可以透過實驗、提升、遊戲內活動和創新來啟動遊戲並維護參與的玩家社群,讓玩家享受娛樂。

雖然這種方法具有解鎖新玩家參與策略和交付經常性收入串流的優勢,但它需要更多的操作專業知識。例如,若要實作成功的即時營運策略,開發人員可能需要與雲端服務整合或操作自己的後端技術基礎設施。他們還需要一種有效的方法來識別和回應遊戲或玩家社群中出現的問題,這些問題可能會對玩家體驗產生負面影響。