全世界玩遊戲人口大幅提升,帶動遊戲產業蓬勃發展

根據遊戲市場調查公司 Newzoo 的研究顯示2019 年的全球遊戲產值將會達到1500億美元;2019 年觀看電子競技賽事的人數也從2018年的3.95億成長到4.56億,再加上行動裝置普及化,2021年預估全球手遊玩家將達到26億人次。面對這麼大幅度的產業發展,遊戲公司得要面對的問題除了穩定的營運、將內容傳遞的全球以及不斷發展創新的遊玩內容之外,還需要十分漫長的時間來經營以及大量的管理這一連串從開發、測試、上市到推廣的過程。AWS上面提供了非常多關於遊戲的解決方案從基礎設施、開發、後端服務、大數據分析到業務成功,都能幫助廠商加速遊戲佈建,這也是為什麼許多世界知名遊戲大廠,如: Ubisoft、Epic Game、Supercell、Bandai Namco Studios Inc.……等,採用 AWS 相關服務來使他們的遊戲業務更加成功。本期電子報將告訴您 AWS 相關服務如何幫助您加速遊戲開發佈建。

 

快速基礎建置 – Elastic Beanstalk

遊戲開發人員的一個常見開發模式是在電腦上地端運行 Web 伺服器進行開發,然後部署時將伺服器程式碼上傳至雲端。 如果您是使用這個模式,AWS Elastic Beanstalk 可以大大的簡化將程式碼部署到 AWS 的過程。Elastic Beanstalk 是一種部署管理服務,他整合了其他 AWS 服務,例如 Amazon Elastic Compute Cloud(Amazon EC2)、Elastic Load Balancing(ELB)和Amazon Relational Database Services(Amazon RDS)。您也可以將伺服器程式碼的 zip、war 或 git 儲存庫上傳到 Elastic Beanstalk。如果您的遊戲需要其他更多的功能,您可以輕鬆地將 Elastic Beanstalk 擴展連接到其他 AWS 服務,而不需要重頭建置。下面為 Elastic Beanstalk 用於遊戲基礎建置的架構圖:

 

遊戲資料靜態儲存、資料分析來源 – S3

無論是用戶產生的內容、分析還是遊戲保存,Amazon S3 可用於遊戲資料上傳。用戶生成的內容(UGC)是將資料上傳到 Amazon S3 的最佳範例。典型的 UGC 有兩部分:數位檔案(例如:圖形資產)及中繼資料(例如:名稱、日期、作者、標籤等)。通常的模式是將數位檔案儲存在 Amazon S3 中,然後將中繼資料儲存在資料庫中。

當玩家的資料上傳至 S3 之後,您可以在 S3 中建立一個資料湖 (Data Lake),做為未來做資料分析的來源。如果您能夠預先制定想要得知的問題,那麼您可以專注於收集幫助您回答這些特定問題的數據;如果您不確定,應考慮追蹤玩家可以會遇到的任何指標,例如:遊玩時間、喜歡的角色或項目、當前遊玩狀況和最高等級……等要衡量的內容。

 

遊戲排行榜、動態遊戲資料儲存-Amazon Aurora、Amazon Dynamo DB

線上遊戲的最大瓶頸往往是資料庫性能, 典型基於 Web 的應用程式具有大量讀取和少量寫入的性質例如: 部落格、線上影片等等;遊戲剛好相反,由於遊戲中的狀態會不斷變化,讀取和寫入經常會存取資料庫,所以資料庫決定了遊戲在執行時的效能 Amazon Aurora 是一個兼容 MySQL 的全受管的關聯式資料庫服務,它將高端商業資料庫的速度和可用性與開源資料庫的簡單性和成本效益相結合。如果您的遊戲超出了 MySQL 或 Amazon Aurora 等傳統關係數據庫的範圍,我們建議您執行性能評估,包括調整參數和分片(Sharding)。   此外,您應該考慮使用 NoSQL 產品(如Redis或DynamoDB)從 MySQL 減少一些工作負載。DynamoDB 是 AWS 提供的完全託管的 NoSQL 解決方案。 除了自動擴展和託管緩存之外,DynamoDB 還可以為您管理同步複製和 IO 配置等任務。 DynamoDB 使用 Provisioned Throughput 模型,您可以在其中指定每秒所需的讀取和寫入次數,其餘部分將由您自行設定。

 

遊戲訊息推播 – Simple Notification Service(SNS)

遊戲中有兩種主要類型的消息推播:針對特定用戶的消息,例如游戲邀請或是行動裝置訊息通知,以及群組訊息,例如聊天或遊戲包。 發送和接收這些消息的常見方式為使用具有有狀態連接的 Socket 伺服器。

如果您的玩家人數很少,少到讓每個人都可以連接到同一個伺服器,您只需選擇不同的 Socket 即可在玩家之間傳送訊息。 但是,在大多數情況下,您需要擁有多個伺服器,這代表著這些伺服器之間還需要某種方式來傳遞訊息。在 EC2 伺服器 Instances 之間傳遞消息是 Amazon SNS 可以提供服務的一個例子。假設您在伺服器A上有玩家1,他想在伺服器C上向玩家2發送消息。 在這種情況下,伺服器A可以查看本地連接的玩家,當它找不到玩家2時,伺服器A可以將消息轉發到 SNS,然後 SNS 將消息傳播到其他伺服器。

Amazon SNS 還支援將通知直接發送到行動用戶端的功能。您的伺服器程式碼根據某些遊戲內事件將消息放入相應的 SNS topic,然後將該消息傳遞給相對應用戶的裝置。

 

遊戲內容傳遞至全球 – Amazon CloudFront

從用戶黏著度角度來看,DLC (Downloadable Content)是現代遊戲的一個重要元素,用戶期望在遊戲發布後數月持續推出現新角色、關卡和挑戰。這個模式正在成為遊戲廠商主要的收入來源,能夠快速且有效率地提供此遊戲內容對 DLC 策略的獲利能力將會產生重大影響。如果要將內容分發給大量客戶端(例如:遊戲更新包、擴充內容或測試版本),您可以在 Amazon S3 前使用 AWS 的 CDN 服務: Amazon CloudFront 來將這些檔案傳遞給全球用戶,Amazon CloudFront 透過 AWS 在全球部署的節點 (Edge location) 讓終端使用者加速存取公司所提供的內容與服務。

下面為本期電子報介紹之服務應用於遊戲應用程式之架構圖:

 

Nextlink 快訊

  • 最新消息:Nextlink 榮獲全球暨亞太區唯一首批 Amazon QuickSight服務交付計劃認證之合作夥伴 (閱讀更多)
  • 活動資訊:6/12(三)-13(四) AWS 台北高峰會 (Nextlink將出席現場攤位,閱讀更多)
  • 客戶案例:里仁事業股份有限公司 (閱讀更多)

AWS 產業新訊