游戏行业应该如何建设数据中台?
責編 | 晉兆雨
來源 |智領云科技
封圖 | CSDN 下載自視覺中國
隨著網絡世界的迅猛發展,“游戲”進入了前所未有的蓬勃發展期。根據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的痛點,其價值得以體現后,可以將系統、前端界面等開放給其他游戲部門復用,這就是數據中臺建設的第三步——能力復用;
第四個階段是形成閉環,根據用戶歷史行為為游戲動態推薦游戲難度,動態組成游戲戰隊。因為數據最終還是要回到游戲中,除了提供一些預測和支持的分析以便更好的獲客,游戲還需要用數據做出更全面的反饋?;诖?#xff0c;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建設數據中臺的過程,當然也是我們在建設數據中臺中應該遵循的。
更多推薦閱讀
30 年開源老兵,10 年躬耕 OpenStack,開源 1000 萬行核心代碼
開源項目如何掙錢? Spark 商業化公司創始人曝光心路歷程
云原生領域首本架構白皮書,你Get到了嗎?
騰訊或推動斗魚虎牙合并;印度禁止小米瀏覽器;Electron 9.2.0 發布| 極客頭條
倒計時3天,和V神一起點燃這個夏天
總結
以上是生活随笔為你收集整理的游戏行业应该如何建设数据中台?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 疫情中的2021,云原生会走向哪里
- 下一篇: 安迈云加入GDCA全球分布式云联盟,携手