やりたいこと
2020/07/01 ~ 2020/07/14(4周年期間中)のDead by Daylightで僕がご一緒したサバイバーのプレイヤーのパークを分析します.このゲームをプレイする上で役に立ちそうな情報を分析したくなったのがきっかけです.
Dead by Daylightについて
最近ハマっている4vs1の非対称型対戦ゲームです.殺人鬼(キラー)1名と生存者(サバイバー)4名に分かれて,箱庭と呼ばれるステージで追いかけっこをします.最近4周年を迎えたり芸人の狩野英考さんがYouTubeでゲーム実況を始めたりと,今とてもアツいと個人的に思っているゲームです.
パークとは
ゲームを有利に進めるために4つまで特殊能力を試合に持ち込むことができます.この特殊能力のことをパークといって,代表的なものには以下のような能力があります.※ PERKSより引用
- デッドハード(Dead Hard): 疲労状態でない負傷中に走っている時、Eキーを押すと効果発動.短時間だけ前方にダッシュし、その間あらゆるダメージを受けない.このパーク効果が発動すると60・50・40秒間は疲労状態となる.
- セルフケア(Self Care): 回復キット無しで自分自身を治療可能(ただし治療速度は通常の50%).自分に使う時のみ回復キット使用時の使用効率が10・15・20%上昇.
今回は生存者側のパークの共起性(同時採用率)を中心に分析したいと思います.
集めたデータ
生存者のランクと採用されたパーク4つを80名分記録しました.僕と一緒にプレイしていただいた方のみを対象にデータ収集しているため,全ユーザの統計データとはならないので一例として考えてください.ランク自体を記録したはいいものの,公式がランクシステムの廃止をアナウンスしていたため,あまり意味はなかったです.
データの形式はこんな感じです.
df = pd.read_csv("perks.csv")
df
分析
パーク同士の共起性を示す指標としてJaccard係数を採用しました.Jaccard係数を利用した共起ネットワークについてはこちらの記事を参考にさせていただきました.
Jaccard係数は以下の式で表され,集合の類似度を示します.
$Jaccard = \frac{n(A \cap B)}{n(A \cup B)}$
今回はパークが採用されることを事象の単位とするため,パークAとパークBの同時採用回数とどちらか一つでも採用されている回数の比を計算することになります.$n(A \cup B)$は以下の式で簡単に計算できます.
$n(A \cup B) = n(A) + n(B) - n(A \cap B)$
今回集めたデータから簡単に計算できます.
中心にあるほど採用数が高く,エッジが太いほど共起性が高くなっています.デッドハード(Dead hard)・鋼の意思(Iron Will)・与えられた猶予(Borrowd Time)・決死の一撃(Decisive Strike)などはどんなパークとでも組み合わせやすいため,中心に分布しています.一方で,素早く静かに(Quick & Quiet)と真っ向勝負(Head On),ソウルガード(Soul Guard)と不滅(Unbreakable),コソ泥の本能(Plunderer's Instinct)と最後の切り札(Ace in the Hole)などの採用数が少ないものの組み合わさることによって効果を発揮するパークは外側に配置されて太い線で繋がっています.
採用数と共起性を考えると,テンプレ構成は以下のようなものが考えられます.
- デッドハード・鋼の意思・セルフケア・決死の一撃
- デッドハード・鋼の意思・与えられた猶予・決死の一撃
- デッドハード・凍りつく背筋・与えられた猶予・決死の一撃
デッドハードはほとんどの構成に採用されていて,デッドハードの枠を全力疾走に変えている構成も頻繁に見られました.
後ほどコードを公開しようと思います.