2021.01.31

スマブラが上手くなりたすぎてアプリを作りました

スマブラの戦績を記録・分析できるアプリ スマレポ をリリースしました🎉<br> 作ったきっかけから開発の流れ、今後の予定について書きます。<br>

きっかけ

もともと自分はゲームが苦手で、スマブラは楽しいけど基本的に地元最弱で、前のインターン先でも復帰できない勢を除くと一番最初に死んでました。
せめて他の人と勝負になるくらいには上手くなりたいなと思い、ちゃんと練習しようと思いました。
しっかり練習し始めたのが2020年の春です。<br> スマブラのオンライン対戦には世界戦闘力という指標があり、世界戦闘力が一定ラインを超えるとVIPマッチと呼ばれる上位数%にだけ解放される部屋があります。<br> まずは目標をVIP入りすることに据えて練習し始めたんですが、半年経っても一向に逆VIPを抜けられず、最近ようやく抜けられたと思ってもVIPへの道はまだまだ遠いです。<br> やってくうちに気づいたのが、オンラインで当たるキャラにはかなり偏りがあります。オンラインでよく当たる相手から順に優先的に対策していけば限られた時間の中でも効率的に世界戦闘力を上げられるのではないかと思いました。
それで戦績をつけたくなったのがスマレポを作ろうと思ったきっかけです。<br> ※あくまで直近の目標はVIP入りすることで、大会で勝ち上がる/本質的に上手くなることを目指しているわけではないです。(もちろん大事だけどね。)

アプリのイメージ

コンセプト

VIP入りすることを目指しているので、大切なことは練習時間の適切な使い方を定量的に判断することとモチベーションを保つことの2つです。<br> そのためには
1.自分に足りないもの・重点的に取り組むべきところを把握する
2.練習の成果が見れる(フィードバックがある)
3.2が次のモチベーションになる
がアプリに必要な要素です。<br> ここでアプリのコンセプトは 「成長を実感できて、それがモチベーションになるアプリ」 に決まりました。

作りたい機能

必要な機能は
・オンライン対戦の戦績を記録する
・記録した戦績を分析する
の2つです。<br> これに加えて欲しい機能は
・分析結果をグラフで表示する
・他の人のデータと比較できる
・専用部屋の戦績も記録できる です。<br> 分析というのは各ファイターへの勝率、勝敗数はもちろんのこと、ステージごとやストック数などいろんな観点で勝率を分析したい。<br> あとは連戦した場合は除いたり、似たファイターはまとめて勝率計算したり、細かい分析軸はいくらでも考えられます。<br> まず必須の2つを作ったらリリースし、記録をためながら残りも作っていこうという流れをざっくり決めました。

開発

開発方針

ペルソナは自分です。
自分が欲しいものを作る。他に使う人がいなくても自分が使い続けたいものを作る。<br> あとは趣味開発なのでマネタイズは一旦考えないことにします。やばくなったらそのとき考えます。<br> それともう一つ意識したことは類似アプリとの違いです。
既存の記録アプリは国内製・海外製問わずたくさんあり、自分もいろいろ使ったり、スプレッドシートで記録してみたりといろいろ試しました。<br> それでも自分が欲しいと思うドンピシャのものがなかったのでそれなら作ってしまおうと。既存で満たされてたら自分で作ってなかったと思います。自作ならあとから欲しくなった機能も追加できるしね。<br> 特に開発する上で意識した違いは
・アプリの軽さ
・成長が実感できることに重きを置く
の2つです。<br> あとはSPだとブラウザのタブとして開かれるのが地味に不便なのでアプリとして使いたいなとか小さいものもあります。<br> これらを念頭に技術選定しました。

技術構成

NuxtとFirebaseを使ってます。
Firestoreの速さが一番使いたかった理由です。グラフ機能も見据えてchart.jsも使えたり、PWA化しやすいのも踏まえて、慣れてるNuxtでよさそうだと判断しました。<br> 新しい技術に挑戦するというよりは手堅く作る方向性にしました。あとはデザインをFigmaで作るという工程を初めて挟みました。<br> 自分の中ではメンヘラテクノロジーでがっつり開発させてもらった1年間の集大成感あります。<br>

実際に開発する

そんな感じで開発に着手したのが年末感が漂ってきた2020年12月の終盤です。修論真っ只中ですが合間に作ってました。<br> 前のインターン先の後輩も手伝ってくれたり、ルキナ使いのサソリ系プログラマーに相談に乗ってもらったりしながら年内には一応動くものができました。
年明けくらいからは仲の良いスマブラーに触ってもらったりもしてました。某鯖のみんなありがとう。<br> 特につまづいたこともなく、地に足をつけて作業していく日々です。

リリースして

わりとデバッグもできたのでリリースしちゃおうーと思って前日に予告ツイートしたところ1000いいね超えてびっくりしました。自分と同じ課題を抱えてる人がこんなにいるんだなと安心(?)しました。逆にリリースがこy<br> 2021年1月10日にリリースし、ありがたいことに初日でユーザー数500人突破しました!🎉 使っていただいてる方々ありがとうございます🙇‍<br> 2021年の目標としてだいぶ高めに設定した「個人開発でユーザー数500人」が年明け10日であっさり達成できてしまいました。(ちなみに2020年にひっそりとリリースした趣味開発のアプリは2つともユーザー数5人未満(しかも全員身内)だったので500人はかなり背伸びした目標設定のつもりでした)<br> リリースして3週間経つ今はユーザー数が1000人弱、DAUは150人くらいで安定してます。初めてまともに世に出した個人開発でまさかこんなに使っていただけるなんて夢にも思ってませんでした。本当にありがとうございます。<br> 開発周りの小咄としては実はユーザIDにバリデーションをかけ忘れてたことにリリース後に気づいたとかそもそもfirestoreで発行されるuuidをdocumentIdにすればよかったとかいろいろあってリリース直後はてんやわんやしたなんてエピソードもあったりします。

今後の予定

今後追加したい機能は
・グラフ機能
・統計タブ
・他ユーザのプロフィールのブックマーク
が大きなものになってきます。<br> 特にグラフで勝率とか世界戦闘力の推移を見れるようにするのがこのアプリの当初の構想です。記録や分析機能が作り終わって、ようやく本命に着手できそうです。<br> リアルの忙しさ的にこれらを3月までに作り終わって、4月以降はバグfixとグロースに専念するのがなんとなくの予定です。でも作りたい機能思いついたらどうせ開発してそう。<br> 小ネタになりそうなエンタメ機能としては時間帯や戦闘力帯による使用ファイターの分布とか重量級とか参戦シリーズごととかの勝率とかも見れたら面白そう。

さいごに

開発を手伝ってくれたジョーカー使い、相談に乗ってくださったルキナ使い、クッパ使い、スティーブ使い、ルカリオ使いの奥さん、スマブラはしてないけどアドバイスをくださった方々、リリース前に触ってデバッグを手伝ってくれた某鯖のみんな、いろんな人に助けられてるなぁと思いました。ありがとうございます。<br> エンジニアに向けて
欲しい機能があったらissueとかプルリクお待ちしてます。気になったらリポジトリとdev環境の権限お渡しします<br> 開発はできないけどスマ知識なら任せろ!って方へ
開発者はスマブラ歴がまだまだ浅いのでスマブラについて詳しい方が手伝ってくれたらとても心強いです<br> 「スマレポを使って苦手なキャラの対策したらVIPいけた」と言ってもらえたときはめちゃくちゃうれしかったです。<br> これからもマイペースに開発していきます。よろしくお願いします🙇‍

さいごのさいごに

全くマネタイズできてないので、スパチャとか開発者のコーヒー代だと思って開発費の援助としてアマギフで数百円をTwitterのDMに送ってくださったら泣いて喜びます😭😭😭
何卒🙏🙏🙏