Vol. 56 AWS上的遊戲產業架構應用

AWS:從手遊到3A大作背後的沉默功臣

無論您是手機遊戲開發人員,還是經驗豐富的3A遊戲製作公司,都必須要了解推出一款成功遊戲所面臨的各種挑戰。遊戲不僅必須引人注目,玩家還希望獲得各式各樣的線上功能,例如朋友列表、排行榜、每週任務、各種遊戲模式以及持續的內容更新。

為了要提供以上功能,您需要一個穩定的後端伺服器。伺服器須承載多人遊戲、聊天、對戰配對等服務。如果遊戲造成轟動,突然從100個用戶激增至100,000個用戶,則伺服器就必須能夠立即擴大規模。同時,必須具有成本效益,這樣您才不會為未使用的伺服器容量支付過多的費用。

透過在AWS上運行遊戲,您可以隨用戶用戶的增長按需擴展。許多獨立遊戲、手遊、3A大作開發人員已經了解到AWS的優勢,並成功在AWS 上運行他們的遊戲,如:Epic Game、Rovio、Ubisoft、Capcom。本期電子報,博弘將整理遊戲裡面常用的功能,並帶您了解如何透過AWS建構出這些服務。

手機應用程式內購買

自從智慧型手機普及之後,開始出現大量的免費遊戲,在這種模式下,遊戲可以免費下載和遊玩,而遊戲公司透過應用程式內購買來賺錢,例如購買武器、服裝、道具等。即便是3A遊戲,現在的收入來源百分比大部分也來自內容更新(DLC)和遊戲內購買。下面為應用程式內購買及退貨架構流程圖:

購買及退貨架構流程圖

購買

1. 用戶端使用特定用於作業系統的SDK進行購買並將收據儲存在local
2. 用戶端向Amazon API Gateway發出API請求以驗證收據並接收購買的物品
3. Lambda函數檢查DynamoDB中的Transaction Table以確認收據尚未使用
4. Lambda函數透過Google Play商店或Apple App Store API驗證收據
5. 驗證後,Lambda函數將購買物品加到DynamoDB中的PlayerData Table,並將收據與任何其他中繼資料添加到DynamoDB中的Transaction Table。
6. 客戶端收到成功購買訊息,並在local同步購買的商品資料,並刪除local收據副本

退貨

7. API Gateway會收到有關iOS上已退款交易的通知
8. 預定的Lambda函數可在Android上查詢退款交易
9. Lambda函數將已退款的交易推送到Amazon SQS佇列。
10. Lambda函數處理退款及任何其他操作,例如關閉玩家帳戶。
11. Lambda函數更新DynamoDB表以刪除項目並標記已退款的交易。

應用程式訊息推播

讓玩家重回游戲的一種常見方法是推送通知發送到他們的手機。例如,用戶可能會收到一條通知,告知朋友的分數超過了他的分數,或是有新的挑戰。即使用戶當下沒有玩遊戲,也可以將玩家的注意力吸引到核心遊戲體驗中。以下為應用程式訊息推播流程圖:

1. 透過SDK存取基礎AWS服務,手遊用戶端會從Cognito身份池請求臨時憑證
2. 用戶端將通知訊息發送到API Gateway REST端點。此處的API版本可以輕鬆更新、擴展並可自動處理大量請求
3. 用戶端還可以透過AWS SDK提供的有效負載直接調用Amazon Pinpoint flow,裝置還可以動態註冊/更新端點
4. API Gateway請求Amazon Pinpoint執行其他邏輯,例如訊息Token翻譯,分段發送和串流分析
5. SNS設定透過提供的憑證和行動裝置 Token使用推播通知服務。所有訂閱者都會收到訊息提供商,如:Firebase或Apple所推送的訊息。
6. AWS Lambda訂閱了Amazon DynamoDB flow,以將用戶同步到Amazon Pinpoint
7. 行銷人員可以透過Amazon Pinpoint的AWS控制台,選擇廣告或個人發送以及A / B測試
8. 廣告活動和消息發送的資料被傳輸到Kinesis進行串流事件分析及儲存,或是傳輸到資料湖後再進行分析

遊戲動態內容

遊戲會根據玩家遊玩的進度以及載入下個關卡時,提供不同的動態內容,以下為遊戲動態內容提供架構圖:

1. 用戶端將帶有參數的請求發送到Amazon CloudFront以下載動態內容。請求參數代表有關玩家的屬性,但為低基數值,以保持較高的快取率並降低成本。
2. CloudFront觸發最接近用戶的AWS Lambda @ Edge函數。Lambda函數數動態修改應從原始位置檢索的內容。
3. Amazon DynamoDB Global Table用於為客製路由提供多區域規則引擎。 Lambda查詢最接近用戶的資料表,以確定要提供的內容。
4. Amazon CloudFront使用來自Lambda回應從Amazon S3(來源)獲取相關內容。Amazon CloudFront將內容返回給客戶端,並將回應暫存在節點,以降低成本並提高以後對相同內容的請求的效能。

一款造成轟動的遊戲除了吸引人的內容之外,整體營運的底層架構也是重要關鍵。透過本文所介紹的三大應用架構,使遊戲玩家能在遊玩時,有更深刻的沉浸式體驗!

博弘雲端曾幫助台灣遊戲業股王及多家遊戲公司搬遷並建立雲端架構,使企業享受成本優化、架構彈性等優勢。若您也想建立客戶順暢的遊戲體驗,歡迎撥打免費電話 0800-500-960 #620,將由專人為您服務!

博弘雲端 Nextlink 快訊

  • 最新消息:狂賀!博弘雲端榮獲 ChannelE2E 全球百大MSP服務商(閱讀更多)
  • 好文分享:AWS 容器起手式:容器三大應用(閱讀更多)
  • 好文分享:AWS 容器第二式:AWS容器服務及架構應用(閱讀更多)

AWS 產業新訊

  • S3 Object Lambda 透過程式碼來進行資料處理(閱讀更多)
  • AWS Fault Injection Simulator 進行錯誤模擬試驗 (閱讀更多)
  • Lookout for Metrics 助您找出企業洞見(閱讀更多)