技術部落格

集結國內外精選文章,掌握最新雲端技術新知與應用

iKala Cloud / 最新消息與洞察 / 【爐邊對談】遊戲人必讀!《遊戲技術爐邊對談:開發突圍》活動精華,重點筆記帶著走

【爐邊對談】遊戲人必讀!《遊戲技術爐邊對談:開發突圍》活動精華,重點筆記帶著走

儘管 2020 年大環境受疫情衝擊,對遊戲業來說卻是豐碩的一年;然而新的機遇也帶來新的挑戰,不論是玩家更重視體驗、或是更多代理商加入市場使競爭白熱化⋯都使得開發新作有更巨大的阻力。為此,iKala Cloud 與 Google Cloud 今年舉辦一系列的《遊戲技術爐邊對談》活動。3 月 24 日首場我們力邀三強講師與遊戲業者親身交流,探索全新 IT 與雲端技術,活動聚焦「簡化 IT 管理」、「快速建構部署」、「基礎架構擴展」等議題。本文就帶讀者一同回顧 3/24 爐邊對談的精彩片段!

Google Cloud 助攻 大幅簡化基礎架構管理人力

本土遊戲產業往往面對開發/維運人手不足的窘境。首場 Google Cloud 客戶工程師 Edward 就以 2 個解決方案為聽眾暖身,介紹 Google 代管的專屬遊戲伺服器 (Dedicated Game Servers) 以及 Open Match 解決方案如何幫助遊戲人專注開發,而不需要耗費大把心力在伺服器管理上。

運算與網路的順暢度將非常直接地影響玩家體驗。舉凡遊戲的幀率 (frame rate) 、連線配對的等待時間等,都是玩家在乎的重點,而這些都關乎到遊戲伺服器的調度與擴展,至於伺服器放哪、開多少台機器、網路怎麼連又是一門學問。

Google Cloud 客戶工程師 Edward Chuang 與現場觀眾分享 Google Cloud 解決方案。
Google Cloud 客戶工程師  Edward Chuang 與現場觀眾分享 Google Cloud 解決方案。

為有效解決這些伺服器調度議題,Google 提供一項代管的遊戲伺服器解決方案。Edward 分享,該解決方案以 Kubernetes 容器技術為核心,因此能快速擴展、簡化多叢集管理,並部署至所需的環境。用戶也不必與 ISP 業者預購頻寬,從而避免冷門時段的資源浪費。

Edward 舉例,假設今天 2 位玩家登錄遊戲時,程式就會呼叫 API,尋找應提供哪台伺服器給玩家。取得該機器的 IP、編號後,玩家即配對完成、進入遊戲,遊戲結束後就會回報並關閉伺服器,同時收集玩家資訊 (log) 讓用戶做分析。這讓業者能以單一入口 (API) 決定哪一台伺服器可用、是否要加開伺服器。而實務上,遊戲或許會擺在不同雲端環境,藉此方案,營運人員只需透過一個 YAML 檔,就能明確設定部署的方式,而無須撰寫各種程式碼去管理不同雲上的叢集。用戶也可以在像是「公會戰」等熱門時段,設定提前擴展、快速部署架構。

該方案提供多種語言版本的 SDK,包括 Unity、Unreal Engine、C#、C++、Node JS 等。

帶上您的玩家配對邏輯,交給 Google Cloud 全球擴展

由開源做延伸,Edward 也向開發人員分享了另一項開源的 Open Match 處理玩家配對問題。此方案的宗旨,就是讓開發人員能專注在玩家配對邏輯與分群機制上,至於玩家要分配到哪個伺服器、彈性擴展、網路延遲校正等問題,就交給 Open Match 處理。

這個方案經常與遊戲伺服器搭配使用。具體來說,此方案提供用戶前端與後端的 API 及調度功能。當玩家在前端等待、觸發配對邏輯、系統根據開發人員設計的邏輯配對完成後,後端 API 就會呼叫遊戲伺服器,讓玩家進行遊戲。而如前所述,開關機器的任務,自然交給 Google 處理。

現場演示 CI/CD 與全球負載平衡,維持玩家順暢遊戲體驗

「擴展」對跨國營運的遊戲商來說至關重要。而上述網路與運算機制,是如何做到「全球擴展」的?Google Cloud 又如何打造「全球同服」的高可玩度呢?Google 的網路節點與全球機房,正是實現以上的技術。

iKala Cloud 首席雲端架構師 Browny 與觀眾分享,Google 自建的海底電纜與資料中心遍及全球,具備超過 140 個網路邊緣位置、服務遍及 200 多個地區;許多小工具也都能幫助尋找最近的機房位置,從而最大程度降低網路延遲。以 Google Cloud 的 Load Balancing 為例,後端能判定發出請求的位置,將流量分配至就近的區域 (location-based),而前端也能設置 forwarding 規則,將不同 IP、路徑的流量分配到不同的伺服器 (content-based),藉此確保玩家擁有最順暢的遊玩體驗。

Load Balancing 能有效管理分配全球各地的流量請求。
Load Balancing 能有效管理分配全球各地的流量請求。

要更快地推出新功能、提高開發效率自然是遊戲開發人員所追求的。會中 Browny 分享,Google Cloud 具備完善的 CI/CD 工具生態鏈,與 Github、Jenkins 等各項開源工具整合。Google 也擁有 Cloud Build 這項 CI/CD 平台;開發人員能將程式碼藉此平台建立映像檔 (image)、設定部署方式與觸發條件等,藉由各步驟的堆疊,實現強大的流程安排

使用 Cloud Build 建立 container image (示範畫面)。
使用 Cloud Build 建立 container image (示範畫面)。

講者也現場示範如何在短短幾分鐘內建立自動化建構作業、進行測試、部署環境。在建立好 image、以之作為 instance template 後,即可快速複製出多個 instance group,按 instance group 定義服務所在的區域、自動擴展的機制等(如:平均 CPU 超過 60% 就將 instance 增加等),目的就是大規模彈性擴展,並區分不同 group 之間的功能/版本控管

另外,用戶部署在各環境的機器的效能指標都會回傳,如 CPU、記憶體、頻寬的使用率,用戶能根據這些數值反饋,調整部署架構。

遊戲客戶實戰經驗分享:3 大痛點,迎刃而解

在展示了快速整合部署後,iKala Cloud 資深客戶工程師 Sasa 接力分享一間遊戲業者的成功案例。過去業者將遊戲部署於地端機房,然而當遊戲面臨玩家增長、營運拓展海外時,便陸續產生網路延遲、惡意攻擊等問題。此外,業者也希望能藉由 log 資料分析,預測玩家是否會課金、買裝備,或了解玩家的上線頻次,好更加掌握遊戲的運營。

Sasa 分享,借助 Google Cloud Load Balancing,系統不只能乘載大規模的流量,採用 HTTPS Load Balancer (L7 load balancer),也能避免 DDoS 攻擊癱瘓遊戲伺服器。此外,業者也能利用 Cloud Armor 服務建構應用程式防火牆 (WAF),針對特定 IP 或 request 做白名單/黑名單的篩選。此外,在架構上 iKala Cloud 也建議客戶將部分靜態網頁,使用 Cloud CDN 加速傳遞。

在資料分析方面,Google Cloud 更提供健全完整的服務,滿足資料分析生命週期。以該業者為例,資料以串流形式進入,Cloud Pub/Sub 負責擷取、排序並傳送事件,透過 Pub/Sub 及 ETL 工具 Cloud Dataflow,這些行為資料都能進入分析式資料倉儲 BigQuery 供業者做後續的分析。BigQuery 也內建 BQML 的模型, 讓分析師得以 SQL 語法設定,就能執行 ML 分析。舉例來說,預測哪些玩家課金機率、單價較高等。

Google Cloud 的資料分析解決方案。
Google Cloud 的資料分析與 ETL 解決方案。

活動現場,觀眾也拋出許多網路架構的議題與講者們探討,以及成本面的諸多考量。Google Cloud 雲端服務發展至今,已成功服務許多 AAA 遊戲和中小型遊戲工作室,讓遊戲業者的 IT 管理複雜度降到最低,進而持續推出佳作迎接新一波商機。歡迎讀者持續追蹤《遊戲技術爐邊對談》系列講座,一同尋找遊戲創新的可能。

 

分享本文:
FacebookLineTwitter
回到頂端