遊戲分析最重要的挑戰之一是充分利用定量分析並讓每一個人能理解分析的結果,而不僅僅是那些經驗豐富的分析師才能理解。在本文中,我們將描述開發一個行為概要檔案生成方法的全過程,以及如何隨著時間的遷移將這些檔案視覺化。為了便於理解,我們後面將使用拍賣的行為作為案例來分析,來自於非常有趣的一款MMORPG頁遊《Glitch》。最後,我們將會討論為什麼這樣的視覺化在螢幕中是不錯的表現。
遊戲可以生成大量的行為資料,這些資料可能是時間序列的也可能是高緯的。例如,記錄玩家在數月內的遊戲行為,會有幾十種不同型別的行為、活動和相似的跟蹤記錄。問題其一是分析這些資料,其二是得出這些資料的分析結果,然後讓相關人士基於這些分析結果做出下一步決策。
在過去的2-3年中,資料視覺化領域在處理通訊資料和分析結果的挑戰中不斷成長。在遊戲中,鑑於其資料的複雜特性,視覺化將是一個相當大的挑戰。
貫穿在遊戲中的行為分析將是另一個挑戰。我們想去熟悉玩家,從而進行行為監測、銷售記錄、病毒傳播資料的分析等等。提供優質的原始資料,生成和驗證行為概要檔案,從而得出玩家的模型元件,這需要一些資料探勘方面知識。此外,隨著時間的推移,玩家的行為會不斷改變,所以描述檔案必須是動態的。
在本文中,我們會試圖應對這兩個挑戰,專注於遊戲內行為監測(遊戲玩法監測)和一個獨特的機器學習方法:叢集。我們所呈現的不會在所有情況下有效,叢集構建配置檔案也不是唯一途徑,但它將提供一個生成行為概要檔案的有效性,並作為時間函式的動態視覺化的案例(我們希望如此)。
我們將採用《Glitch》為例子。由Tiny Speck開發的這款熱門的MMORPG頁遊,已經上線大約14個月,擁有超過2W的玩家。我們需要關注的重點是這些玩家的交易行為,在遊戲的整個生命週期中,大約生成300萬次拍賣和超過650款物品,並且高達85%的成功率。
《Glitch》在遊戲中使用一種軟貨幣——醋栗。玩家可以通過探索、研磨/收穫或者售賣給其他玩家來獲得此貨幣。與其他的MMO遊戲類似,玩家可以將此物品掛在拍賣行。3天的期限,Tiny Speck會從這些交易中抽取少量的費用。
將玩家分組
真正瞭解玩家的最好辦法是細分玩家,將玩家分配到一個或多個特徵的組中,例如:年齡、所在地區、是否付費、流失率等等。研究領域越緊密則會導致不同玩家群體更明確;而且可以用來評估參與度,A/B測試,封測情況等等。這就是為什麼遊戲分析工具值得去做某種形式的功能分割(包括佇列分析和漏斗分析)。
非監督式的資料探勘——是指我們不對我們關注的資料做任何類別的假設(概括來說就是不對資料自身做任何假設),但會採用更多的探索性方式——最常見的一種發現資料中的模式的方法是聚類分析
聚類分析,或者僅是聚類,是將一組物件進行分組(通常是玩家),這樣任何一組物件(稱一個叢集)他們之間相對於其他的群組在某種程度上會存在相似的地方。而這種組成員之間特定的相似性可以利用模型來計算獲得。
眾多聚類分析的技術,也許最常見的是k-means 聚類。這個特定的技術是為了把具有相似性的並且非常不同於其他組的玩家聚在一起。新的觀察結果通過組中心的最短距離進行分類,可以基於任何你選擇的維度(付費、遊戲時間、遊戲天數、遊戲中的朋友、遊戲等級…..等等)。雖然有一些規則可以完成這個任務的定義,但將玩家進行分類是一門藝術,我們將玩家分成幾組,這些組應該怎麼命名(事實上,給叢集命名相比較解釋更重要)。
我們將k – means聚類應用到一系列拍賣行指標中(像已完成拍賣,總拍賣等KPI指標),通過《Glitch》14個月中的玩家如何使用和參與拍賣的行為將他們分類。我們還有包括玩家在遊戲的經濟論壇中是否活躍的資訊。
這個細分導致每月4個等級的玩家群組,以及一些基於發生頻率較低的特定指標的一些額外的細分。
硬核:在拍賣系統中有頻繁的銷售成功紀錄,這些玩家處於所有KPI的上限。
論壇:核心群體中較小的一部分群體,更多的參與社群論壇活動。
中度:這個群體處於KPI中比較適度的值,有三種分類:在一個較小類別範圍內每天釋出大量拍賣的農場主(Farmers),這些玩家在貿易區都比較集中;混合者(Miscellanea)會更少關注,在一個更廣泛的類別中代替拍賣釋出(也就是每天很少進行拍賣);失敗者(Losers )比混合者在拍賣行中釋出更為頻繁,但是成功率比中度其他2類低很多。
休閒:這個群體的特點是活動頻率很低,在不同的KPI值中普遍較低。一般有兩個不同的類別:一種是很少通過拍賣賺錢或者是乾脆沒去過拍賣,另一種是特別容易流失群體。
視覺化流
另一個處理行為資料的挑戰(並且挺有趣)是玩家一時的頭腦發熱。隨著時間的推移玩家很難有持續的行為。雖然我們可以概括玩家的行為型別,如果我們想看到這些行為隨時間變化會怎樣改變呢?玩家會在接下來的時間內從一個階段進行到另一個階段麼(還是流失掉)?
視覺化流,我們來看桑基圖,歷史上曾經應用在自然科學領域,視覺化能量狀態之間的轉移或者製造行業中的流程。當然,本文如果不包含最著名的桑基圖的話會顯的不夠專業,桑基圖經常在資料教科書中出現:Charles Minard的拿破崙入侵俄羅斯的圖解,顯示3月份俄羅斯大量的軍隊數量下降。我們覺得這個的修訂版作為玩家隨著時間推移的不同遊戲行為研究是一個非常不錯的工具。
桑基圖示例
上圖展示了右邊能源需求之間的連線,左邊是原材料輸出,中間是材料轉化,連結是在接收節點的大小與量的多少的對應。單機並拖動在演示中內建,讓觀眾在螢幕上可以拖動節點。
我們如何想象行為變化?
我們想從發電能源跳躍到隨著時間推移的玩家行為。雖然桑基圖視覺效果豐富,但我們需要通過深入點選功能和原始值以及玩家的資訊讓功能更齊全。堆疊柱形圖的合併元素可以為更多樣的玩家建立更豐富的圖表。
過濾例子
通過上圖我們可以更好的瞭解玩家分佈,從而進行選擇,包含新的玩家。雖然更復雜,但也不會阻礙桑基圖連結到這個系統檢視。
建立分段條形圖
下圖是一些程式碼。雖然D3可以在任何格式處理資料,Sankey.js在包含的資訊節點解析JSON檔案(分層資料格式)。
節點和連結
圖形生成
我們將這些輸入來生成堆疊柱形圖的格式。特別是,我們減少了節點並將其填充為零(垂直節點之間空格的數量),改變佈局為1(用處理迭代定位演算法來找到最好的位置,併為我們減少從頂端向下的條狀圖),利用SVG轉換特性來上翻轉到螢幕上,這樣節點就能從下往上生成。最重要的是,我們規範JSON檔案以確保段的順序保持一致(在每個區間段存在)。
視覺化動態玩家行為
我們可以很容易的擴充套件這種型別資料不同維度的想法,這個在等級、XP進展、事件或漏斗分析的基礎上檢視玩家趨勢非常強大。
這個框架也可以在移動遊戲中用來檢視隨著時間的推移玩家的付費情況。測量在不同時間的ARPU和ARPPU值,不用再去計算隨著時間的變化獨立玩家的話費情況。例如,是否所有玩家購買後才進入遊戲,或者是否在遊戲中持續進行付費?此外,此組不需要分割結果,僅僅是代表玩家的花費、交易、遊戲中完成事件、渠道等等。另一個例子,通過此工具簡單新增不同的圖表來追蹤新玩家和下線玩家的流失行為。《Glitch》的視覺化表明這些文字資訊展示在圖示的底部。不管怎樣,經營資料的視覺化很簡單。總的來說,桑基圖在遊戲分析領域有很廣泛的應用,可以修改各種利益相關的關鍵效能指標。
總之,為了獲得這些視覺化並執行多個視覺化工具,需要更多的可定製互動視覺解決方案來監控玩家行為。在這種情況下,視覺化包含很多資訊,例如,使用更少的叢集或時間盒建立一個密度較低的圖。然而,桑基圖是有效組織複雜性和多維度以及在一個小範圍內展示大量資訊的技術。桑基圖的外掛提供了一個較溫和的條目來得到視覺化和執行最小的自定義程式碼。
希望這篇文章能夠引出一些在視覺化和快速的實施路線圖的新想法。