[SEO 子標題]
本指引可協助遊戲開發人員使用 Amazon GameLift 和無伺服器後端元件,在 AWS 上建置永續性世界遊戲及託管虛擬世界。該架構利用受管和無伺服器元件減少營運工作,並可根據玩家需求進行擴展。開發人員可以使用此架構開始在 MacOS 和 Windows 上開發永續性虛擬世界遊戲。本指引介紹基礎設施即程式碼 (IaC) 自動化、用於設定相依性的組態指令碼以及範例 Unity 用戶端/伺服器實作。
架構圖
請注意:步驟 AC 涉及系統後端,步驟 1-9 涉及前端。
步驟 A
Amazon Eventbridge 觸發 WorldManager
AWS Lambda 每分鐘執行一次。此函數透過 Amazon GameLift API 檢查現有世界的狀態。
步驟 B
WorldManager Lambda 函數將工作階段和世界的當前狀態儲存到 Amazon DynamoDB,以便更快地進行後端存取。
步驟 C
WorldManager 從 DynamoDB 查詢已設定的世界,並透過呼叫 Amazon GameLift API CreateGameSession 建立任何未執行的世界。
步驟 1
遊戲用戶端從 Amazon Cognito 身分池請求身分和憑證來簽署授權的 API 請求。
步驟 2
遊戲用戶端透過 Amazon API Gateway 請求世界清單。API Gateway 觸發 Lambda 函數 ListWorlds,從 DynamoDB 檢查指定區域中的遊戲工作階段資訊。
步驟 3
遊戲用戶端透過 API Gateway呼叫 Lambda 函數 JoinWorld 來請求加入位於區域的特定世界。
步驟 4
Lambda 函數為玩家建立玩家工作階段,在 DynamoDB 中增加該世界的玩家數量,並將連線資訊傳送到遊戲用戶端。
步驟 5
用戶端直接透過傳輸控制協定 (TCP) 連線至 Amazon GameLift 工作階段並傳送玩家工作階段 ID。
步驟 6
Amazon GameLift 工作階段使用 Amazon GameLift 伺服器軟體開發套件 (SDK) 驗證玩家工作階段 ID。
步驟 7
Amazon GameLift 檢查特定世界的玩家資料並根據需要更新玩家資料。玩家離開後,它會儲存玩家最後的位置。
步驟 8
Amazon GameLift 工作階段檢查 DynamoDB 是否排程終止,並根據請求終止。
步驟 9
遊戲伺服器使用 CloudWatch 代理程式將日誌和指標傳送到 Amazon CloudWatch。
開始使用
Well-Architected 支柱
AWS Well-Architected Framework 可協助您了解在雲端建立系統時所做決策的利弊。該架構的六根支柱讓您能夠學習設計和操作可靠、安全、高效、經濟高效且永續的系統的架構最佳實務。使用 AWS Well-Architected Tool (在 AWS 管理主控台中免費提供),您可以透過回答每根支柱的一組問題來針對這些最佳實務審查您的工作負載。
上方的架構圖是一個考量到 Well-Architected 最佳實務而建立的的解決方案的範例。若要完全實現 Well-Architected,您應該盡可能地多遵循 Well-Architected 的最佳實務。
-
卓越營運
AWS Cloud Development Kit (AWS CDK) 藉助 AWS CloudFormation 控制資源更新和回溯,以此處理部署和更新。這減少了手動組態變更造成的錯誤。
對於 AmazonGameLift 機群更新,CloudFormation 會建立替代機群。在此替代機群完全可用並可接受流量後,舊機群才會終止。
-
安全性
遊戲用戶端使用 Amazon Cognito 身分池身分來保護對後端服務的存取。這是由使用身分池提供的 AWS Identity and Access Management (IAM) 憑證對請求進行簽署實現。API Gateway 上所提供的託管的 API 僅允許經過驗證的請求。此外,遊戲用戶端只能存取自己帳戶的資料。
-
可靠性
如果遊戲伺服器當機,某個遊戲世界因此當機,該架構將自動用一個新世界取代該世界,並且這個新世界將可以存取該特定世界的永續性資料。
-
效能達成效率
Amazon GameLift 允許用戶端與伺服器直接通訊,以最佳化近乎即時的效能。該架構允許開發人員跨多個 AWS 區域託管遊戲伺服器,從而降低遊戲用戶端和伺服器之間的延遲。
-
成本最佳化
此架構利用了無伺服器元件,包括 API Gateway、Lambda 和 DynamoDB,讓資源用量可以根據玩家流量自動調整,從而幫助您降低成本。此外,AmazonGameLift 可設定為根據需求進行擴展,讓您可以在任何指定時間將閒置資源減至最少。
-
永續發展此架構使用受管和無伺服器服務,可根據當前玩家負載調節資源用量,從而降低貴公司對環境的影響。
相關內容
免責聲明
範例程式碼、軟體庫、命令列工具、概念驗證、範本或其他相關技術 (包括我們的人員提供的任何上述技術) 依據 AWS 客戶協議或您與 AWS 之間的相關書面協議 (以適用者為準) 作為 AWS 內容提供給您。您不得在您的生產帳戶、生產或其他關鍵資料中使用此 AWS 內容。您有責任根據您的特定品質控制實務和標準,依生產級用途來測試、保護和最佳化 AWS 內容 (如範例程式碼)。部署 AWS 內容可能會因建立或使用 AWS 收費資源 (如執行 Amazon EC2 執行個體或使用 Amazon S3 儲存) 而產生 AWS 費用。
本指引中對第三方服務或組織的參考並不意味著 Amazon 或 AWS 與第三方之間的認可、贊助或聯繫。AWS 的指引是技術起點,您可以在部署架構時自訂與第三方服務的整合。