1. 程式人生 > >遊戲數據挖掘開發訓練營(一)遊戲大數據概述

遊戲數據挖掘開發訓練營(一)遊戲大數據概述

推薦 大數據 red lin 海量 熱力圖 tro pin 操作

遊戲數據挖掘開發訓練營(一)遊戲大數據概述

遊戲數據

  1. 產品實時利潤計算 min 級
  2. 玩家行為 參與率 完成情況 點擊率 轉化率
  3. 遊戲內言論信息 玩家偏好 動機挖掘 海量
  4. 自主查詢平臺
  5. 遊戲貨幣系統 可視化
  6. 推薦系統

介紹

  1. 工作內容
  2. 大數據開發工具 語言
  3. 遊戲從業者的術語

一 為什麽需要遊戲數據挖掘崗位 (重點介紹算法之前工程方面工作)

  • 職業平衡性
  • 怪物難度
  • 遊戲道具投放策略
  • 貨幣投放
  • 遊戲技能
  • 商城出售

如何決策

直覺-->經驗-->輿情-->(有了數據) 對比, 趨勢, 細分, 聚類, 分類

數據只有相關性, 沒有因果性

雷火用戶體驗中心(數據挖掘工程師)

二 遊戲數據挖掘

  • 基於核心運行數據指標(DAU日活躍用戶/新增/留存/付費)開發了一個web應用/APP
  • 基於遊戲玩法開發數據平臺 (參與率, 完成率, 吃雞次數分布, BOSS擊殺次數, 天梯段位分布, 通關玩家的平均戰力)
  • 面向數據分析-主題導向 可視化 a.大小表示玩家交易出入之和, b.線表示玩家交易流入方向, c.線的粗細表示交易量大小

案例分析

5V5 PVP, 輸出, 治療, 坦克, 控制. 如何從100萬場戰鬥找出劃水玩家.

盡可能多的指標, 再利用聚類算法分成三類. 較低的認為是劃水玩家

三 遊戲數據挖掘做什麽 大數據開發掌握的工具

需求目標

玩家數據+策劃需求-->改善體驗

流程

開始--需求確認--日誌對接(遊戲日誌, 技能釋放, 玩家某時間x,y,z位置釋放a技能.例如1天10億條)--a. 離線處理(隔天) b. 實時處理 c. ETL(extract提取字段 transform 轉換表格 load到數據倉庫)--數據倉庫--分布式計算--結果展示(例如主題導向)

需求確認 需求轉化 (職業平衡性調整 相同段位 戰力接近玩家的1v1勝負數據)

技術分享圖片

遊戲日誌 行為數據(操作數據) 狀態數據

可從行為數據計算的

A. 全服前3擊殺X的玩家
B. ....

日誌接入

遊戲日誌在遊戲服務器, 數據傳輸到大數據的服務器
Kafka 分布式消息系統. 分布式, 支持分區partition(目的: 做副本用, 保證數據容錯性 備份), 多副本replica, (一個生產者, 多個消費者, 離線數據打標簽a, 實時數據相互獨立). 基於zookeeper協調

日誌存儲

  1. HDFS 分布式存儲master/slave架構
  2. HBase 基於HDFS的key-value數據庫, 基於key快速查找
  3. Elasticsearch 基於lucene的實時搜索引擎 (根據玩家ID搜索記錄, 分析行為, 分析是否作弊)

HDFS架構 master/slave架構 海量存儲 2PB 50臺機器.

master: namenode存儲metadata, 存儲路徑. 三個備份, 存儲block信息.

數據存儲 datanode. 數據按塊block存儲 128MB.

lucene全文索引: 對全文內容進行分詞, 建立倒排索引(通過詞找文本 "坦克"在哪些出現 搜索引擎)

離線計算 MapReduce

全服擊殺怪物前3名 (10億行數據)

word count

Input

Dear Bear River Car Car River .......

Spliting

Dear Bear River

... ... ...

... ... ...

Mapping 每一行單獨處理 list(K, V)

Dear 1

Bear 1

River 1

Shuffing !!!!

性能優化重點, 減少磁盤IO

Bear (1, 1)

Reduce

Bear 2

Car 3

... .

... .

Final Result

大數據倉庫 HIVE

MapReduce 寫起來麻煩

SQL (一段文本出現最多的詞 SQL無法處理 需要分詞)

引入Hive

叠代計算 Spark

適合需要不斷叠代計算的場景 惰性計算. 轉換為最後統一計算

spark 把中間結果存儲在內存而不是磁盤, 優化計算.

交互式查詢 Impala

對內存使用更激進. 分配256g內存. 適合驗算和中小型(10億級)數據快速查詢

K-means算法應使用哪個工具?
Spark

實時計算

Spark 縮小時間窗口 (偽實時, 批處理偽裝)

把批處理當成特殊的流處理

要實現 延遲不低於0.1s的實時計算

Spark不適合(適合秒級)

apache airflow 作業調度

數據展示 可視化

  1. 監控一批遊戲新增玩家的留存狀況? 色階圖
  2. 不同職業玩家強弱對比 戰力 提琴圖(95置信空間, 中位數, 四分位數, 密度)
  3. 遊戲地圖 死亡地點分布 熱力圖
  4. 詞頻分布表 詞雲圖

用戶研究團隊合作 (玩家職業)

必備技能

遊戲體驗

專業技能

編程語言 SQL Python Java 頻率降低, 能力要求提高
分布式計算
數據可視化 結果展示 (偏前端)

案例

數據存哪裏 存什麽數據 怎麽計算 結果輸出

實時: 歷史賬號存在哪裏, 實時數據流 判斷是否新增. 性能要求!

T+1 第二天 T+0 當天計算 時間不超過1分鐘

技術分享圖片

遊戲數據挖掘開發訓練營(一)遊戲大數據概述