Z 您現(xiàn)在的位置:首頁>產(chǎn)業(yè)專欄>國內(nèi)資訊> 游戲開發(fā)者如何有效“駕馭”數(shù)據(jù)分析?

游戲開發(fā)者如何有效“駕馭”數(shù)據(jù)分析?

2015-10-13 16:55:08來源:優(yōu)游網(wǎng)發(fā)布:優(yōu)游網(wǎng)

1、前言

作為一個獨(dú)立游戲開發(fā)者,在這里提出的一些觀點(diǎn)可能早已聽過無數(shù)遍。對一款游戲來說,分析是至關(guān)重要的!我們幾乎要衡量每個指標(biāo)!分析的關(guān)鍵在于快速識別游戲中存在的問題,以及應(yīng)該怎樣來改進(jìn)它。我們所需要做的就是通過SDK庫和代碼來幫助我們獲得勝利。

游戲開發(fā)者如何有效“駕馭”數(shù)據(jù)分析?

可能在大多數(shù)情況下,以上觀點(diǎn)并沒錯(除了簡單直白的“勝利”),不過我們的經(jīng)驗與分析表明,這結(jié)論似乎太草率了。難道沒有讓人出乎意料的事情嗎?在這個過程中我們經(jīng)常得出一些新穎的見解,其中一些經(jīng)常會被我們遺漏,但這仍然是極具挑戰(zhàn)性的。在這篇冗長的文章中,我將試著與大家分享關(guān)于Sharp Minds這款游戲的一些相關(guān)分析來與大家共同探討。

2、“快餐”

對于那些沒時間閱讀整篇文章的朋友們,我在這里先放出一些“快餐”(覺得篇幅過長無心閱讀的朋友們-可以直接跳到結(jié)論部分)

什么是分析

嚴(yán)格地說,“分析”是通過數(shù)據(jù)做出的有意義的見解。通常它是一個需要利用電腦完成的密集型計算過程。有時候,數(shù)據(jù)集有可能會非常巨大。計算能力的提升允許“分析”越來越多地應(yīng)用在生活跟工作的各個方面。在這里,我們將專注于游戲分析,特別是手機(jī)游戲的分析。

在游戲產(chǎn)業(yè)中,分析通常是指記錄關(guān)于玩家行為/游戲的重要數(shù)據(jù)并對其作出分析,發(fā)現(xiàn)在游戲中存在的各種問題及瓶頸。發(fā)現(xiàn)問題并通過游戲更新來糾正。而新的數(shù)據(jù)將會用于驗證是否成功地解決了問題。

即使糾正問題并不是分析的一部分,我認(rèn)為對游戲做出“治愈”是分析過程中一個至關(guān)重要的環(huán)節(jié)。沒有它,分析幾乎是浪費(fèi)了開發(fā)時間。

讓我們來糾正一些誤解:

在游戲中進(jìn)行分析意味著將一些平臺的SDK集成到代碼中。

NO,這只是分析過程中的一個簡單步驟,僅僅是在一開始。

事件報告是瑣碎的,僅在“開始階段”、“結(jié)束階段”以及一些類似事件發(fā)生的時候才發(fā)送

盡管可以使游戲幾乎沒有事件報告,然后處理所有計算中產(chǎn)生的數(shù)據(jù)集,有時候這會省去我們大量的時間以及簡化一些工作,并且使報告更智能以及發(fā)送一些上下文數(shù)據(jù)。

比如:“開始階段”事件可以包含關(guān)卡的嘗試次數(shù)。如果沒有關(guān)于玩家開始關(guān)卡的連續(xù)計算數(shù)據(jù)是很難得出結(jié)論的,有一點(diǎn)要很清楚,這是一種非常“奢侈”的分析統(tǒng)計計算。一開始在事件計算中就加入關(guān)卡嘗試次數(shù)則會讓這一過程簡單很多。

如果我記錄下每個可能在游戲中發(fā)生的事件,數(shù)據(jù)分析平臺將會給我一些有價值的見解幫我改進(jìn)游戲。

這可能是一種比較常見的誤解。雖然數(shù)據(jù)分析平臺有時會給出一些豐富而又華麗的圖表像我們展示游戲中一些看起來比較明顯的問題,但大多數(shù)是一些并沒有什么實(shí)際意義的數(shù)據(jù)。我們很難提取一些可以幫助我們付諸實(shí)踐的內(nèi)容。最有挑戰(zhàn)性的工作也正是在這里。

我并不需要現(xiàn)有的數(shù)據(jù)分析平臺,我可以使用自己的服務(wù)器完全控制和處理這些數(shù)據(jù)。

“每件事都自食其力”通常對獨(dú)立開發(fā)者來說是一個很大的問題。數(shù)據(jù)分析也不例外。數(shù)據(jù)分析的核心的確不是很復(fù)雜。只需通過一個RESTAPI或其他什么方法都系收集一些關(guān)鍵/有價值的數(shù)據(jù),但是這在細(xì)節(jié)上要求的深度和廣度都是超乎想象的;可行性、縮放比例、誤差處理、估算、數(shù)據(jù)存儲、冗余等等這些都是需要考慮在內(nèi)的,而這將耗費(fèi)大量的寶貴時間。

如果我得到的數(shù)據(jù)分析和圖表是準(zhǔn)確的,游戲中的瓶頸和問題將是顯而易見的。

這的確是數(shù)據(jù)分析的目標(biāo)。但是這需要大量的異常數(shù)據(jù)。下載數(shù)越少,數(shù)據(jù)就越不穩(wěn)定。如果下載量是10次下載/天,這將是很難實(shí)現(xiàn)的,而且會導(dǎo)致一個錯誤的結(jié)果。想象一下如果有一個策略游戲。在策略入門的時候就已經(jīng)很有特色,這將與那些的策略游戲展現(xiàn)出完全不同的行為。每一個外部事件都會影響到數(shù)據(jù)。這個問題在得到穩(wěn)定和相對數(shù)量級的數(shù)據(jù)或者新的有效安裝方式時會相應(yīng)減少。

當(dāng)我解釋這些例外情況的時候,剩下的分析數(shù)據(jù)將會給我一個明確的信息接下來要做什么。

并不一定。發(fā)現(xiàn)一個問題和知道造成這個問題的原因(因此能夠想出適當(dāng)?shù)慕鉀Q方案)之間還是存在一定的差距,我們不得不做出一些思考和猜測來彌補(bǔ)這個差距。比如,如果游戲中很多玩家在第四關(guān)的時候開始流失,很明顯在這個關(guān)卡存在一個用戶體驗的問題。而我們?nèi)匀徊恢肋@是什么造成的。現(xiàn)在如果我們?nèi)ネ诰蚋顚哟蔚脑?,結(jié)果發(fā)現(xiàn)玩家們在幾次嘗試失敗之后依然會流失?,F(xiàn)在我們回頭來看第四關(guān)的問題可能是因為難度太大或者這關(guān)的引導(dǎo)不能讓玩家清晰的認(rèn)識到該怎么做。當(dāng)更深層次的挖掘不再是最優(yōu)解的時候,我們只能靠猜,解決方案將基于我們最好的猜測,讓我們在下一個版本里看看會發(fā)生什么。

報表數(shù)據(jù)中尋找信息是一個離散的計算過程

這不是我們應(yīng)該關(guān)心的。數(shù)據(jù)分析主要是是關(guān)于統(tǒng)計學(xué)和或然率。我們不關(guān)心有多少玩家(或者百分比)在第四關(guān)的時候離開游戲。無論是80%還是75%-85%的信息,不要糾結(jié)于細(xì)枝末節(jié)的數(shù)字。我們要在數(shù)據(jù)分析和報告中找出來的是錯誤,而不是一個可能變化或者指數(shù)增長的不準(zhǔn)確的數(shù)字結(jié)果。

3、選擇平臺

要面對的第一件事就是選擇一個數(shù)據(jù)分析平臺。這里有幾件事要考慮:

a.易于集成(SDK庫)

這一標(biāo)準(zhǔn)是我首要考慮的。我仍然不確定這是否完全正確,但從長遠(yuǎn)的角度來看這是有問題的。我們應(yīng)該著重分析那些本地支持的游戲目標(biāo)平臺或者建立一個完整的庫。如果是針對多平臺,那么這一點(diǎn)就相當(dāng)重要了。我們不想驚訝于某些平臺只支持安卓系統(tǒng)卻不支持iOS系統(tǒng),反之亦然。我開始使用Unity的時候,因為之前有使用Prime31本地插件的經(jīng)驗,所以我選擇了Flurry和Localytics。許多分析平臺也竭盡全力地做到易于集成,很多都可以通過Unity3D支持(比如Google移動分析就有Unity3D插件)并且沒有要求用到少量的本機(jī)代碼集成。

b.價格

定價是一個很棘手的問題。以Localytics為例,它免費(fèi)提供10000MAU(月活躍用戶)的分析。乍一看感覺似乎很不錯,因為MAU一旦超過10000,一般情況下營收都會不錯。但在我們的例子中并非如此。SharpMinds始終免費(fèi),在營收超過一定數(shù)量后,我們不得不面對Localytics每月200美金的最低定價。盡管從我們的數(shù)據(jù)上來看,我們的確有接近10000的MAU。

無論如何,Localytics看起來非常專業(yè),所以我們并沒有因為它的最低定價而取消使用。Flurry和Google是免費(fèi)的。Google分析向來是業(yè)界翹楚,因它可以通過其現(xiàn)有的強(qiáng)大的網(wǎng)絡(luò)分析平臺的自然擴(kuò)張做到全面的分析。而Flurry并非如此,它并沒有這種能力,所以其一直保持免費(fèi)。

c.API功能

乍一看的時候,在我看來沒有一個平臺提供的報表能滿足我們的分析需求,所以我決定通過原始數(shù)據(jù)訪問來自己處理這些數(shù)據(jù)。

有趣的事情是,當(dāng)時Localytics網(wǎng)站的廣告上說他們提供原始API訪問,但當(dāng)我詢問關(guān)于API的使用細(xì)節(jié)時,他們給我的答復(fù)卻是“這是機(jī)密”。給出這種答案讓我們?nèi)绾芜x擇?難道有人會來竊取我們的API參數(shù)?這非常奇怪,并且不可思議,最終我將Localytics從我的選擇列表中剔除了。

Flurry通過輸出文檔提供一個比較粗糙的原始數(shù)據(jù)訪問,這樣我可以得知如何正確地使用它。Google并沒有解決這個問題,我誤認(rèn)為這是一個缺陷,最終選擇了Flurry。

經(jīng)驗教訓(xùn):

避免訪問和處理原始數(shù)據(jù)如果你能幫到它。你可能會創(chuàng)造奇跡,但是不久之后,有兩件事會打破你的如意算盤:

a)原始數(shù)據(jù)的數(shù)據(jù)量將會非常龐大。當(dāng)然,10000MAU以下可能還比較好辦,但當(dāng)我們著眼于一個全球范圍的成功游戲時就很棘手了,我們糟糕的代碼和免費(fèi)的云存儲不能處理原始數(shù)據(jù)。Google似乎更勝一籌,它僅僅是處理一些原始數(shù)據(jù)的樣本,但足具代表性,同時還能保持速度與功能。

b)當(dāng)我們需要添加功能和優(yōu)化時,代碼將會增長,最終整個子項目將會耗費(fèi)大量的開發(fā)時間。

d.報表功能/定制

Localytics似乎很擅長這方面,同時他們對API保密的很好。Flurry有著像樣的內(nèi)置報告,但其他類型的自定義查詢非常有限,過程需要花費(fèi)大量時間。幸運(yùn)的是,與此同時,Yahoo收購Flurry之后,添加了一個目前處于Beta測試的功能“Explorer”—一個非常炫酷的實(shí)時、特別的分析報告。

我瞄了一眼Google那邊,這一切似乎有太多的障礙。有大量的我不能理解的關(guān)于API的問題,并且分析控制平臺上的自定義報告似乎還需要及其復(fù)雜的配置。

經(jīng)驗教訓(xùn):

拋開Flurry的“Explorer”功能不談,我認(rèn)為我選擇Google的初衷是基于一個錯誤的觀點(diǎn)。即使有了Flurry的“Explorer”,Google的分析方法和心態(tài)似乎任然更勝一籌,。Flurry仍然是一個不錯的選擇,但是在下一次選擇的時候,我依然會首先選擇GoogleAnalytics,我依然堅信它將是我的長期選擇。

除了以上三個我們提到的分析平臺之外,還有大量的分析創(chuàng)業(yè)公司可供我們選擇。對于Unity3D的用戶來說,Unity同樣推出了它自己的分析平臺。盡管現(xiàn)在看起來仍有些稚嫩,但是我相信它會很快成長起來。

4、分析過程

目前仍缺少更好的術(shù)語來描述,我們將“分析過程”的一系列步驟充分應(yīng)用到分析游戲的開發(fā)生命周期中,使其充分受益。區(qū)分這過程中的每一步很重要:將分析工具集成到代碼中。雖然它自身無足輕重,但是這一步是要強(qiáng)制性執(zhí)行的。

如果只打算僅做這一步,我強(qiáng)烈建議不要糾結(jié)于分析,因為僅僅這樣并不會使我們從中受益。還不如將寶貴的開發(fā)時間用于別的地方。

下面以一款休閑益智游戲”SharpMinds“為例,探討一下其中的問題及缺點(diǎn)。

a.決定想分析的關(guān)鍵案例游戲(難度:10/100)

如果明確查詢的數(shù)據(jù)維度,會更容易建立數(shù)據(jù)報告模型。然而,事實(shí)經(jīng)常事與愿違。數(shù)據(jù)報告要體現(xiàn)其專業(yè)性。在質(zhì)問自己(和數(shù)據(jù))的時候得出新的想法。最好使用詳盡而又一致的報告,報告盡可能多的關(guān)于游戲核心機(jī)制。

不必同時報告多個事件(例如,兩個或三個連續(xù)事件描述一個邏輯),它們將很難被處理和查詢。

構(gòu)造事件,使其盡可能采用相同的參數(shù)數(shù)據(jù)(考慮基類和繼承)。使得不同的事件類型更容易查詢。

關(guān)于事件的時間戳、玩家ID、應(yīng)用版本(尤其重要)以及會話。大多數(shù)平臺會自動為你提供簡單的方法。玩家ID應(yīng)該采用匿名ID的形式并只允許儲存在報告中??梢允褂媚繕?biāo)平臺提供的ID或者創(chuàng)建一個自有賬號。

b.選擇服務(wù)供應(yīng)商并將分析工具集成到代碼中(難度:10/100)

在上文提到過,在ios和安卓系統(tǒng)上選擇了一些分析工具,以及使用FlurryAnalytics和Prime31本地插件的例子。有一些可能比較昂貴(50美元),但是Prime31在更新節(jié)奏和清晰簡潔的分析維度方面表現(xiàn)的確不錯。要知道,開發(fā)時間是極其寶貴的,我們很有可能要花幾個小時甚至數(shù)天去處理那些詭異的原代碼。如果不能編譯或者沒時間編譯,那就選擇一款合適的分析工具。

我認(rèn)為在游戲中創(chuàng)建一個獨(dú)立平臺代碼層是很有必要的。游戲知道怎樣在代碼中集成來進(jìn)行分析,報告都是隱藏在相應(yīng)的接口中—供應(yīng)商(或其他相同的服務(wù)提供模式)。這就使一些有用的東西得到了充分的利用。例如,出于測試目的,可以很容易地編寫文本日志,或無需修改事件代碼就切換到另一個分析平臺。

c.過程分析報告度量以及提取可操作的信息(難度:60/100)

對我們來說,在開發(fā)周期中這是迄今為止最困難的部分。很多是因為我們選擇了自己去處理數(shù)據(jù)報告中所需要的原始數(shù)據(jù)的。即使沒有自己處理,仍然是過程中最具挑戰(zhàn)性的一部分,往往能帶來最大的驚喜。

現(xiàn)在很有可能你在問自己“他在說什么?所有重要的圖表已經(jīng)可以在平臺上看到?!叭绻闶沁@么認(rèn)為的,那么你完全錯了。分析平臺可以為我們提供基本數(shù)據(jù),比如,每日會話、月活躍用戶、日活躍用戶及各種形式的留存數(shù)據(jù)。任何深層次的問題都是一個巨大的挑戰(zhàn)。在我解釋之前,讓我先告訴你一個很酷的東西——漏斗。

harpMinds是一款休閑益智游戲。玩法很簡單,一關(guān)一關(guān)地破解謎題,在每個關(guān)卡中賺取1、2、3顆星。漏斗模型可以看做是每個用戶試圖通過的一系列連續(xù)的選取標(biāo)準(zhǔn)(步驟)。漏斗模型的例子是:

第一步:玩家在1-9關(guān)失敗

第二步:玩家完成1-9關(guān)并獲得3星

L1-9的意思是第1章中的第9關(guān)。我們將用這個方式表示關(guān)卡。

這個漏斗模型將會檢查那些一開始在L1-9關(guān)失敗的玩家,也會檢查那些之后3星通過的玩家。像漏斗一樣,篩選處理實(shí)際通過的玩家數(shù)量及通過的標(biāo)準(zhǔn)。如果過濾出的數(shù)據(jù)報告中只有那些在關(guān)卡L1-9失敗的玩家(過濾就足夠了,并不需要漏斗模型中的第1個標(biāo)準(zhǔn)),并用于上述的漏斗模型中,我們將會得到一個結(jié)果,在L1-9關(guān)卡中失敗和3星通過的玩家百分比。

我們可以利用漏斗模型做一些很酷的東西。比如,如果需要評估關(guān)卡1-10之后的用戶,可以將漏斗模型定義如下:

漏斗模型1:

第一步:玩家完成L1-10關(guān)并獲得1星

第二步:玩家對游戲的接受程度

漏斗模型2:

第一步:玩家完成L1-10關(guān)并獲得3星

第二步:玩家對游戲的接受程度

漏斗之間玩家數(shù)量的差值將給我們一個明確的信息,通過關(guān)卡并獲得多少數(shù)量的星將影響到玩家對游戲的評估。

大多數(shù)分析平臺都會支持某種形式的漏斗。像往常一樣,取決于細(xì)節(jié)。比如,我們開始進(jìn)行分析工作之后,F(xiàn)lurry也有一些漏斗模型,但它們不支持自定義參數(shù)。所以基本上,所有的關(guān)卡完成事件都被視為相同的(我們不能插入一個標(biāo)準(zhǔn)來檢查特定關(guān)卡)。Flurry為不同事件的數(shù)量做出限制,使得每個關(guān)卡制定不同的事件也變得無法實(shí)現(xiàn)。

在此期間,F(xiàn)lurry增加了前文提到的ExplorerBeta版,將支持參數(shù)漏斗模型的各步驟??紤]一個實(shí)際的問題:“有多少玩家完成關(guān)卡L1-5到L1-8并且期間沒有一次失敗?”。漏斗模型看起來會像這樣:

第一步:玩家完成關(guān)卡L1-5

第二步:玩家沒有失敗

第三步:玩家完成關(guān)卡L1-6

為此,漏斗必須支持標(biāo)準(zhǔn)的否定。據(jù)我所知,F(xiàn)lurry目前并不支持。基于一些初步研究,GoogleAnalytics貌似支持。再考慮一個實(shí)際的問題“玩家們在第幾關(guān)開始流失”或者“玩家離開游戲前最后玩過的關(guān)卡前十排名”。

這個問題至關(guān)重要,因為它會給我們很多具體的信息,關(guān)卡是太難或太無聊,導(dǎo)致多數(shù)玩家流失。沒有關(guān)于玩家流失的事件是一個大問題。我不知道如何具體表達(dá)這種漏斗模型的標(biāo)準(zhǔn)。即使我可以,仍然有其他各種各樣的問題導(dǎo)致玩家流失。我并不想統(tǒng)計那些沒有關(guān)于玩家最后停留關(guān)卡的流失數(shù)據(jù)。

我敢肯定,大多數(shù)分析平臺不支持這個查詢/漏斗模型和更多復(fù)雜的我們能想到的功能(可能GoogleAnalytics會有,但是我還沒來得及徹底研究)。不幸的是,這些分析過程恰恰能給我們帶來極大的好處。

所有這一切背后的原因是原始數(shù)據(jù)導(dǎo)入和定制處理。游戲產(chǎn)業(yè)內(nèi)的一些大咖可以基于類似的原因做自己的分析模型。我有一個自定義順序處理器來計算我們的游戲事件中的所有重要指標(biāo)。報告迅速、功能強(qiáng)大,但仔細(xì)想想,這對獨(dú)立開發(fā)者來說成本太高。

d.基于提取信息實(shí)現(xiàn)游戲的更新(難度:20/100)

當(dāng)有一個點(diǎn)對點(diǎn)的分析出現(xiàn)在合適的地方,接下來要做的就是向報告系統(tǒng)提出許多問題,尋找一些看起來比較可疑的數(shù)據(jù)。這些數(shù)據(jù)不符合正常或預(yù)期的分布。分析可以使我們通過更新糾正很多問題,比如,游戲前十關(guān)的玩家流失導(dǎo)致了近40%的玩家流失。這不是一個好消息—在這些關(guān)卡中明顯存在一些問題。在10個關(guān)卡中,其中一個有著極高的流失率。

所以我們討論為什么會這樣。導(dǎo)致流失較高的關(guān)卡有L1-4、L1-5和L1-6,我們的結(jié)論是不可能是難度的問題,因為這些關(guān)卡的難度并不是很高。剩下的唯一的結(jié)論是,我們的引導(dǎo)很爛,玩家流失,是因為他們不知道如何玩這個游戲。

我們也對游戲做出了一些優(yōu)化,調(diào)整了一些關(guān)卡在游戲中的難度水平。

5、結(jié)論

不要低估分析的強(qiáng)大作用!

如果僅僅只是想追蹤會話、日活躍用戶和月活躍用戶,這基本上所有的分析平臺都可以做。如果想做點(diǎn)對點(diǎn)查詢并深入挖掘數(shù)據(jù),我們應(yīng)該仔細(xì)選擇工具,在確定選擇分析平臺之前多做研究。

認(rèn)真地對待客戶端事件報告,因為良好的事件設(shè)計和事件附加數(shù)據(jù)可以為我們在處理分析報告的時候節(jié)省大量的時間。如果想只花幾個小時在分析上,我建議完全跳過它,因為這樣不會得到任何有價值的東西。不要做自己做數(shù)據(jù)收集和處理,因為這些工作的代價十分昂貴。

希望我們做出的好或壞的決定經(jīng)驗,可以幫助大家更好地分析,不斷優(yōu)化自己的游戲。

最新禮包
熱門手游榜
1 王者榮耀
王者榮耀

手機(jī)網(wǎng)游

下載

2 陰陽師
陰陽師

角色養(yǎng)成

下載

5 一起來捉妖
一起來捉妖

角色養(yǎng)成

下載

8 奇跡暖暖
奇跡暖暖

角色養(yǎng)成

下載

9 少年歌行
少年歌行

角色養(yǎng)成

下載

優(yōu)游網(wǎng)訂閱號