遊戲行業應該如何建設資料中臺?

June發表於2020-08-03
遊戲行業應該如何建設資料中臺?

隨著網路世界的迅猛發展,“遊戲”進入了前所未有的蓬勃發展期。根據Newzoo資料顯示,2019年全球遊戲市場規模約為1521億美元,2015-2019年複合增長率達到13.4%,預計2020年全球遊戲市場規模將進一步增加到1960億美元。

與此同時,遊戲行業競爭日益激烈,遊戲的種類與內容也越來越豐富多樣化,要想在激烈的競爭中持續擴容並非易事。僅僅在“資料”層面上就面臨著不少難題,例如,重複性工作與資源的浪費,不同遊戲開發團隊對資料與系統的重複開發,使得開發出一款新遊戲時間週期過長;資料孤島造成業務溝通壁壘,業務部門想要獲取一份全域性的資訊基本要延遲至幾天,最終導致玩家快速變化的需求無法及時響應;資料分析難以形成有效閉環,無法利用資料作出有價值的分析結果與全面的反饋……

遇到“資料”方面的難題,尤其是面對“重複性工作”“資源浪費”“資料孤島”等問題,其實不難想到用“資料中臺”來解決上述困境。畢竟馬雲當年就是受到了芬蘭遊戲公司Supercell的啟示,才將“中臺”引入國內。

“資料中臺”的魅力之大,不僅遊戲公司,很多傳統企業、中小公司也對其躍躍欲試。但往往因一開始就對它沒有全面的瞭解,亦或是沒有得到清晰的規劃,導致實際投入中遇到不少難題,最終草草收場。

其實不少人有這樣的疑問:

  • 為什麼要建設資料中臺?
  • 資料中臺如何建設?
  • 資料中臺能夠為企業帶來哪些價值?
  • 從0開始落地,有什麼可參考的方法論?有沒有一線的真實案例?

為解決這些棘手的問題,帶領大家攻克資料中臺建設中的種種難點,智領雲聯合創始人&CTO,前EA(藝電)大資料平臺高階工程經理宋文欣博士,特別以著名遊戲公司EA(藝電)為例,詳細的講述了EA構建資料中臺的實戰過程,從而一次性講透資料中臺在遊戲行業的應用。

EA經久不衰的祕訣

眾所周知,EA是一家著名的遊戲公司,聞名遐邇的《FIFA》、《戰地》、《麥登橄欖球》系列等千、百萬級銷量的遊戲大作均出自EA之手。其遊戲家族分為主機/PC平臺遊戲和移動遊戲兩部分,主要的遊戲大類是體育類遊戲,例如為EA貢獻營收最多的《FIFA》系列,美國最熱門的體育遊戲《麥登橄欖球》,久負盛名的戰鬥射擊類遊戲《戰地》系列,以及擁有20年曆史仍經久不衰的《模擬人生》系列;在移動端的遊戲就更多了,比較知名的《植物大戰殭屍》《寶石迷陣》系列都是玩家愛不釋手的遊戲。

憑藉數不勝數的遊戲大作,口耳相傳的好口碑,靈氣十足的作品以及超強的遊戲體驗,讓不少玩家提到最強遊戲公司的時候,第一個就會想到它,EA至今也仍然是最賺錢,手握IP最多,歷史最悠久的遊戲公司之一。那麼,在如此多種類的遊戲中EA是如何做到照顧到每位玩家的體驗,又能夠不斷創新呢?接下來就讓我們一探究竟。

遊戲行業應該如何建設資料中臺?
遊戲家族

宋文欣博士首先以一名典型的EA遊戲玩家在EA系統中的歷程,闡述了EA是如何利用資料與玩家進行互動的。

遊戲行業應該如何建設資料中臺?
遊戲玩家經歷

在遊戲推廣階段,EA會通過Facebook廣告或智慧推薦,推送電子郵件給之前玩過EA遊戲的玩家,以獲取對該遊戲感興趣的遊戲玩家;當玩家進入遊戲以後,資料還有幾種重要的體現,一是遊戲中能為公司帶來很大利潤的廣告,叫做In-game Banner,被要求做到既能達到廣告效果又不干擾遊戲體驗;另外,Personalized features 個性化配置,能夠根據玩家習慣、經歷與水平動態調整難度與歷程,從而讓玩家能夠獲得和自己相匹配的遊戲難度和劇情設定;最後則是Customer Experience客服體驗,通過歷史使用者行為分析,進行更多為使用者著想的設計以確保玩家獲得最好的遊戲體驗。

通過EA遊戲玩家在遊戲前、遊戲中、離開遊戲後的整個過程,我們可以大致看到遊戲玩家與EA資料部門的互動活動。

瞭解完EA遊戲玩家與資料部門的互動後,我們再來看看EA龐大的遊戲資料,近百種遊戲品類分佈在各種平臺之上,僅EA的幾款熱門遊戲的資料量就十分驚人:

  • 《FIFA》,在2019年,各平臺玩家達到4500萬名,玩家們每90分鐘完成5萬場比賽,3百多萬腳射門,接近兩百萬個撲救,99萬個進球;
  • 射擊類遊戲《戰地 battlefied 1》,2017年有超過2100萬的遊戲玩家,每天大約產生1TB的資料;
  • 《模擬人生》系列,在全球有超過兩千萬的遊戲玩家,Sims系列遊戲20年間在PC上一共賣出兩億份;
  • 去年大火的《Apex英雄》,2019年2月釋出8小時後,玩家數達到100萬,72小時內,達到1000萬,同時線上玩家峰值突破200萬,最終全球玩家數約達7千萬。

面對如此龐大的資料量,EA早期的資料分析狀態是什麼樣的?從圖中可以看出,EA早期的資料分析狀態是一個典型的資料孤島模式,不同的遊戲部門、不同平臺的資料分析都有一套自己的資料流水線。因為幾乎無法將這些跨遊戲平臺的資料、跨不同遊戲的資料以及跨部門的資料,整合在一起來分析,使得EA的業務部門要獲取一個全域性的資訊,其延時基本達到一到三天,造成的問題除了不能及時的反映該遊戲的經營狀況,對客戶提出的問題也不能及時的響應,遊戲玩家體驗差,加之遊戲故障頻發,導致使用者逐漸減少。此時,當務之急是如何擺脫早期這種滯後的數字化狀態。

遊戲行業應該如何建設資料中臺?
EA早期資料分析的狀態

為應對以上困境,EA數字平臺初步形成,集中的資料平臺使得所有不同來源的資料,彙總在以Hadoop為基礎的資料平臺之上,並通過統一的Data Warehouse、統一的演算法支撐不同分析、推薦、演算法報表等,資料延遲從原來的幾天縮短至幾小時,響應時間大大縮短,玩家體驗自然隨之上升。

遊戲行業應該如何建設資料中臺?
EA數字平臺初步形成

EA“資料中臺”建設的步驟

接下來,宋文欣博士重點講述了EA“資料中臺”建設的詳細步驟。

遊戲行業應該如何建設資料中臺?
EA“資料中臺”建設

宋文欣博士強調,資料中臺的建設並不是在一開始就要建一個大而全的系統,它是一個逐步迭代的過程。第一步是快速迭代,其動作非常簡單,無需做任何資料分析工作,逐漸將資料從各遊戲平臺匯聚到大資料平臺,並提供基礎的資料瀏覽、檢視和下載功能;

第二步是工具的開發,儘管資料能夠下載,但由於人工計算並不是很方便,所以第一階段開發了基於Hive平臺的自助資料分析工具,讓業務部門能夠通過一些簡單的操作,去做自助式的資料分析;第二階段是製作出ETL作業釋出工具,可以簡單運營ETL作業,客戶也可以通過自助的分析工具提交作業;

當該平臺慢慢形成規模後,平臺上可以開發一些針對不同遊戲部門專有的系統,比如專門針對FIFA(提供了EA 50%營收的遊戲部門)的標籤系統與反欺詐模型,當該系統解決完FIFA的痛點,其價值得以體現後,可以將系統、前端介面等開放給其他遊戲部門複用,這就是資料中臺建設的第三步——能力複用;

第四個階段是形成閉環,根據使用者歷史行為為遊戲動態推薦遊戲難度,動態組成遊戲戰隊。因為資料最終還是要回到遊戲中,除了提供一些預測和支援的分析以便更好的獲客,遊戲還需要用資料做出更全面的反饋。基於此,EA的大資料部門通過人工智慧、機器學習的演算法,讓資料形成有價值的分析結果,最終回饋到業務當中去。以上,便是EA資料中臺建設的四個階段。

值得強調的是,EA在資料中臺建設的過程中,始終秉持著四大原則。

首先,擁抱開源,不重複造輪子,幾乎所有的科技公司都會使用這樣的方式和規則,元件有開源的系統儘量使用開源,在開源的基礎上可以進行一些改造,而不會重複去做,這也是矽谷的科技公司共同遵循的一個原則;

第二,使用基於公有云的混合架構,私有云主要服務於EA的遊戲伺服器,因為這些服務的實時性要求很高,EA希望能自己掌控這些資源,而公有云主要服務於離線的資料分析,因為這部分服務沒有那麼緊急,並不會對業務造成巨大的影響,所以EA使用的是基於公有云的混合雲架構;

第三,彙集所有資料到統一平臺,由於EA的很多遊戲工作室是收購過來且分佈在全球,所以每個遊戲部門都說自己有特殊的情況,需要保留己有的一套資料平臺,可想而知,想要把所有的遊戲資料全部匯聚到統一的平臺,操作的難度很大。儘管如此,彙集所有資料到統一平臺仍然是必須要堅持的關鍵原則;

第四,重點投資人工智慧、機器學習“皇冠”元件,包括對於人才、技術的投資,將遊戲資料反饋到遊戲當中,從而提升遊戲玩家的體驗感。

秉持著上述四大原則,EA“資料中臺”終於建設完成,那麼結果如何呢?對此,宋文欣博士表示通過EA“資料中臺”的建設,成功解決了EA遊戲以下五大難題。

  • 遊戲設計及開發:遊戲更新及補丁、新功能新貨品、新遊戲的釋出
  • 遊戲線上服務:遊戲運營狀況、玩家難度推薦、反欺詐
  • 遊戲市場:玩家獲取、跨平臺推薦、遊戲廣告
  • 遊戲客服:玩家熱點投訴、個性化解答
  • 高層決策:月報季報、營收預測、戰略決策

EA的數字化驅動架構

在講解EA數字化驅動架構之前,宋文欣博士強調了建立資料中臺統一的資料標準和規範的重要性。據介紹,EA在建設資料平臺之前首先建立了統一的資料標準(術語),之所以要建立統一的資料標準,是因為我們知道遊戲工作室是產生資料的部門,業務部門是分析資料的部門,兩個部門之間涉及幾十個部門近千人,統一的語言描述同一件事情十分重要。對此,大資料的產品部門,花費了一年的時間建設資料標準,用一本很厚的字典來講解相關術語(即對於指標統一的解釋)。

遊戲行業應該如何建設資料中臺?
統一的資料標準(術語)

同步進行的是資料規範,即對資料來源的規範。比如在Telemetry Event中的通用屬性,即所有平臺所有遊戲都需要上報的資料,包括玩家的ID、平臺型號、遊戲名稱、事件編號、事件發生時間、SDK版本等。特殊屬性則是每個遊戲所具有的特殊屬性,比如射擊類遊戲中使用的武器編號、FIFA足球遊戲中玩家所選球員號碼等;另外,SDK的版本迭代,指標體系Taxonomy與Telemetry版本同步升級,在實施流程中,各遊戲工作室在制定遊戲開發和釋出計劃的時候,必須與EA大資料部門確定Telemetry SDK的版本整合計劃相符。

遊戲行業應該如何建設資料中臺?
統一的資料規範

有了統一的資料規範之後,我們就可以放心地建設EA數字化驅動架構了。EA數字化驅動的架構如下圖所示,是一個稱之為Wholesale Engineering的架構。這個數字化驅動架構,是針對EA所有的遊戲工作室、部門來制定的一個設計準則。但在實際的建設過程中,並不是一開始就去做這樣一個通用的系統。雖然總體原則是要保證該系統最後是服務所有的遊戲工作室和部門,但是具體到每個元件和子系統的時候,都採用的是由特殊到一般的建設過程。

這個架構,首先要提的是命名的規則,基本採用的是以江河湖海這樣比較容易記憶的單詞來描述各個子系統,因為在EA這樣一個全球性的公司中,需要有一些比較規範的詞彙來描述元件,我們用River來描述資料的採集,Lightning表示快速的實時採集和處理,主要採集手機、遊戲客戶端以及PC端的實時遊戲資料。Tide元件表示批處理,主要是處理遊戲伺服器的資料。

遊戲行業應該如何建設資料中臺?

首先有一個基於Hadoop的分散式儲存,稱作為Ocean的不斷擴充套件的系統,在分散式儲存上面,構建了一個叫做Shark的元件,是整個ETL作業的元件,有幾千個作業在同時執行,不斷進行各種統計分析工作。在作業排程方面,使用Oozie開源軟體來進行作業排程,並對Oozie上面做了資料血緣分析的改造,也就是無論是一個作業或者資料表都可以在很短的時間,從成千上萬個作業中分析出這些表的上下游等資訊。為什麼要得到這樣的資訊?因為在整個運維的工作中會出現大量的工作要去做,有些作業要重新執行,因為遊戲伺服器有時候會出現一些故障,那麼資料輸送的不及時,有時候就需要補發一些資料,那麼一旦資料發生補送以後,就要重新執行一些作業,因此要很快的去定位到底有哪些作業需要進行這樣的操作。第二就是作業依賴的關係不理想,通常一個作業完成以後要能夠通過訊息機制,通知下一個作業馬上進行,但Oozie在這方面做得並不完美便,需要定義複雜的資料依賴。因此,在這個機制上面也做了一些改進,對於ETL作業,基本上都是用Java來寫MapReduce作業,還有Hive作業,後來還加入了一些Spark作業,這三種型別的作業比較多。

在資料處理的下面一層就是各種資料倉儲、資料儲存的子系統。從左往右,Surf是資料科學家使用的人工智慧機器學習模型庫;Black Pearl 實時資料倉儲,利用Couchbase,基本上類似於像Redis那樣的基於記憶體的儲存架構,它主要是儲存像標籤系統的結果以及一些快取的資料;Pond作為資料探索工具,會不斷從生產系統中拉取最新的生產資料,其探索能力之強大,不僅可以探索最近24小時、幾天內的一些熱資料,還能夠去載入一些冷資料。在Pond的整個建設過程當中,我們還做了包括優先順序的管理、郵件通知,以及統計分析和計費的功能。實際上,Pond也是一個用來考察各個業務部門對大資料平臺使用頻率、頻次以及價值的衡量的工具,因此,管理層經常需要這樣的資料。同時,這也是對業務部門的一種壓力,有了這個統計,就能夠對每個部門的價值進行資料的分析和衡量;最後是傳統的資料倉Pearl,在資料倉儲背後執行著各種BI工具,像Superset這樣的視覺化工具,都執行在這個傳統的資料倉儲之後。

接下來是資料服務層,就是把資料能力開放出來,以服務的方式提供給各個遊戲工作室、業務部門來使用。包括BI工具、異常檢測、遊戲分析、實時瀏覽、訂閱服務以及訪問介面。其中,異常檢測有兩種,一種是資料的異常檢測,另一種是運維的異常檢測,比如遊戲伺服器的網路狀況,這是遊戲釋出以及遊戲執行期間非常重要的一個指標。EA之前經常會出現區域性的網路故障,玩家對此抱怨頗多,而異常檢測可以極大地改善這種情況,減輕運維部門的壓力,使他們能夠及時獲知有網路問題的區域,並及時進行修復;遊戲分析則是比較常規的動作,比如像DAU、遊戲類購買情況等,很多部門做成實時大屏放在業務部門來檢視自己業務相關的資料,而且還可以自己定義、探索相關資料,能力較強的資料分析員,也可以用程式設計式的方式來訪問這些資料,並接入自己的系統。雖然是把資料分析的資料化驅動架構統一到一個平臺,但我們還是給了各個遊戲、業務部門一定的自由度,就是他們可以通過介面服務,把資料拉取到他們的系統中,做一些定製化的工作。

最下面一層是資料應用層,典型的應用包括360度玩家分析、標籤系統、推薦系統、遊戲實驗。首先是360度玩家分析,在EA的平臺上,每個玩家都可以跨平臺的玩各種遊戲。在構建資料驅動架構之前,很難去掌握每個玩家全面的動態,有了數字化驅動架構以後,就可以清晰分析出玩家的全貌動態,比如說一個玩家在不同時間不同地點,與誰玩了什麼遊戲,可以形成比較全面的玩家分析,更精準的去根據玩家的興趣推薦新的遊戲,甚至為玩家的朋友們推薦他們感興趣的遊戲。

標籤系統,它能夠讓遊戲推广部門快速的從幾百萬、上千萬玩家中去挑選出合適的玩家,並向他們傳送推廣郵件,比如說傳送折扣資訊,引導他們去購買更多類似遊戲等。在沒有標籤系統之前,市場推廣人員需要自己去執行查詢,還要把電子郵件全部下載下來放到系統中做分發,一天可能只能做一次這樣的推送。有了標籤系統以後,就可以在幾秒鐘之內從上千萬的玩家中,輕鬆篩選出符合某種條件的玩家,然後在電子郵件的模板點選傳送按鈕,就能輕鬆的將一次推廣工作完成,而且一天中可以做很多次。這個標籤系統,後來推廣到EA的所有遊戲,大大提升了遊戲推广部門的效率。

推薦系統是在EA的閉環裡面做的比較出色的一環。推薦系統可以針對遊戲進行動態的難度調整,以及動態的去匹配玩家的對手,推薦系統是基於人工智慧、機器學習以及大資料技術結合來開發的一個應用。整個推薦系統的流程則是,遊戲客戶端向伺服器傳送一些資料,然後遊戲客戶端與遊戲伺服器都會向推薦系統傳送推薦請求。推薦系統如何去處理反饋這些請求呢?首先會通過收集所有的歷史游戲資料,歷史資料會進入到資料倉儲中,那麼這個推薦系統會拿到歷史的資料,以及24小時之內最新鮮的遊戲資料,對這個推薦請求做出來判斷。在推薦系統後臺會有兩塊,一塊是模型及服務,這些模型及服務是一些程式碼在裡面做好的模型,它會根據推薦系統給出來的引數,然後提醒這個模型上面給出來一個推薦的結果反饋回來,推薦系統把之前的推薦反饋給遊戲伺服器或者客戶端。 還有一種服務是A/B測試,這時它會傳送到服務這塊A/B測試服務中,這裡會根據設定的引數,以及它的設定進行反饋,大致這樣一個流程。通過遊戲推薦系統,最終EA遊戲廣告點選率提升了80%,玩家遊戲參與度提升了10%,其效果顯而易見。

遊戲行業應該如何建設資料中臺?

最後一個典型的應用是遊戲實驗,EA遊戲演算法專利有動態難度調整和優化的玩家匹配模型,EA將這兩個專利真正用到了遊戲當中併產生了價值。首先,遊戲的客戶端傳送推薦請求,針對該推薦請求收集玩家的歷史資料,考察最近24小時內玩家的行為,然後再進行推薦,其原則是預測玩家留存,通過動態演算法,分析玩家行為,為玩家推薦遊戲的難度或匹配合適的對手。以上,就是EA整個數字化驅動架構的一個全貌。

遊戲行業應該如何建設資料中臺?

從EA的資料中臺建設中,我們其實能夠看到對於“資料中臺”的建設,其實就是從一個很小的一個系統開始反覆迭代,抓住業務當中的痛點並進行重點解決,在解決的過程中幫助企業樹立一套資料標準和規範,更清晰的建設資料中臺。重要的是,在資料中臺建設過程中,一定要想辦法讓資料中臺產生價值,讓客戶覺得資料中臺真正能將業務帶來質的提升,從而對其進行持續的投入與擴大,並不斷的將資料中臺應用到業務的各個層面,這是EA建設資料中臺的過程,當然也是我們在建設資料中臺中應該遵循的。


來源:智領雲科技
原文:https://mp.weixin.qq.com/s/nYJpDYJQyACMtiDgs7sC2w

相關文章