見出し画像

データで考える、勝つための武器選択【スプラトゥーン2】

対戦型ゲームをやる上で一番といっていいほど重要なのはキャラクターの選択ですよね。誰もが自分のプレイスタイルに合ったキャラクターを使っていると思います。

スプラトゥーン2におけるキャラクター選択とは、武器選択です。基本のスプラシューターから始まり、遠距離型のチャージャー、近距離で爆発的な強さを誇るローラー、仲間を守りながら戦えるシェルターなど、本当に色々あります。

今回は、色々ある武器を使ってみたけど、何使えばいいかわからない!どの武器なら勝てるの?と悩んでいる方がデータに基づいて武器を選ぶ方法を解説していきます。

はじめに述べておきたいこととして、データに基づいた選択には、データが必要ということです。いきなり勝つための武器選択をするのではなく、とりあえず使ったら面白そうな武器を使いながらデータを集めましょう!

イカリング2を使えば、試合をしながら簡単にデータを集められます。

僕の場合は、マニューバー系のスライドがかっこよくて、ビュンビュンやってたら撃たれないんじゃないかという甘い考えから、スプラマニューバーコラボを使っていました。

コラボのサブウェポンであるカーリングボムも好きで、使っててとても面白いです。

しかし、マニューバー系は射程で勝てる武器がほとんどないので、相手に挟み撃ちにされて負けるという悲しい経験をたくさんしました。。。

そこで基本に立ち返ってスプラシューターを使ってみたらそこそこ勝てたので、この2つの武器のデータを使って分析していきます。


今回も、イカリング2から手に入れたデータを使います。前回公開したデータでも同じように分析できるのでよかったらやってみてください。(追加のデータがあるので、まったく同じ結果にはなりません!)

コード的にはこうなります。

d = read.csv(file="data/splatoon.csv", header=TRUE)

このデータには、勝敗のデータが入っているのですが、分析するうえで

勝ち=1

負け=0

とした数値データの方が使いやすいので、少しだけ加工します。

#勝敗を数値化
wl = c()
for(i in d$勝敗){
 if(i == "win"){
   wl = c(wl,1)
 }
 else{
   wl = c(wl,0)
 }
}
d = cbind(d,wl)

このデータを、武器毎のデータに分割して、それぞれの勝率を計算するとこんな結果が出ました。

#武器毎に分割
d.m = d[d$武器=="スプラマニューバーコラボ",]
d.s = d[d$武器=="スプラシューター",]

#勝率の計算
winrate.m = mean(d.m$wl)
winrate.s = mean(d.s$wl)

c(winrate.m, winrate.s)
# 0.5113636 0.5925926

このように、

スプラマニューバーを使ったときの勝率が51%

スプラシューターを使ったときの勝率が59%

となり、平均だけ見ると明らかにスプラシューターの方が良さそうですね。

ちなみにイカリング2ではステージ毎の勝率を見ることができます!どのステージが得意なのか調べるのに使えますね。(武器の勝率も見れたら良かったのに!)

平均を見る以外にも、仮説検定するともっと明らかになるかもしれません。正直、ゲームをするうえでは大体のことが分かればよいので、スプラシューターを使った方が勝てるという事実が分かれば良い気もします。

仮説検定について少し触れているnoteも書いているのでよかったら見てください。


せっかくなので、信頼区間を考えることで、勝率を点ではなく幅を持たせて考えてみましょう。

今回のデータは、勝ちと負けの2つの値しかとりません。つまり、コイン投げと同じです。

勝ち=コインの表、負け=コインの裏

と考えることができます。

コイン投げの確率分布はベルヌーイ分布で考えられます。それぞれのデータにおける分散は

分散=平均×(1−平均)/標本数

の公式を使うと

#スプラマニューバーコラボの場合
n.m = length(d.m$wl)
var.m = (1 - winrate.m) * winrate.m/n.m
#スプラシューターの場合
n.s = length(d.m$wl)
var.s = (1 - winrate.s) * winrate.s/n.s

として、求めることができます。標本数が大きいとき、中心極限定理を使うと、平均の分布は正規分布に近づいていくので、それぞれの勝率の95%信頼区間は

勝率の推定値 ± 1.96×√分散

で求められるので、

#スプラマニューバーコラボの場合
winrate.m + c(-1,1)*1.96*sqrt(var.m)
# 0.4069223 0.6158050

#スプラシューターの場合
winrate.s + c(-1,1)*1.96*sqrt(var.s)
#  0.4899312 0.6952540

のように計算できました。スプラマニューバーコラボの場合は良くても6割くらいしか勝てませんが、スプラシューターの場合は上手くいけば7割くらいは勝てそうですね。

このように、平均や信頼区間を求めてみるだけでも自分がどの武器をどのくらい使えているのかが客観的にわかるので、おすすめです。


みんな、スプラトゥーンやろう!(ついでにデータ分析も!)


Twitterもしくはnoteをフォローすると最新の記事がすぐに見れます!

今回はここまで!ではまた!

最後まで読んでいただきありがとうございました!サポートしてくれると非常に嬉しく、noteを書くモチベーションになります。