音ゲーのスコアツールを作ってメンテした話
音ゲーのスコアツールを作ってメンテした話:
この記事は個人開発 Advent Calendar 2018の8日目です。
オンゲキスコアツール
github
SEGAの出している音楽ゲーム「オンゲキ」のスコアを管理、公開出来るツールです。
スコアを登録するには、オンゲキをプレイした後オンゲキNET有料コースに入る必要がありますが、
サンプルとして乗っているcsvをインポートすることで未プレイでも体感することは出来ると思います。
Laravel+Vue.jsで作りました。
オンゲキスコアツールは主に4つの機能から構成されています。
ユーザー登録やログイン、csvをアップロードしてスコアテーブルに保存するなど
いわゆる普通の部分です。
スコアを閲覧、絞り込み出来る部分です。
Vue.js製です。
オンゲキの公式サイトにログインして、javascriptを実行するとスコアをcsvとして吐き出します。
javascriptはブックマークレット化することで、ワンプッシュでスコアを出力可能です。
「曲名」「難易度」など曲の基本データを登録します。
shellからコマンドで実行するため、一般ユーザーの目には見えない部分になります。
オンゲキの前にSEGAが出した音楽ゲーム「チュウニズム」にまで話は遡ります。
会員サイトにログインすると曲ごとのスコア、プレイ回数が見れたのですが、閲覧出来るのは自分のみ。
また、曲の絞り込みも最低限しかありません。
稼働1週間で簡易的なスコアツールを作り公開したところ
反響が大きく、本腰を入れて作っていきました。
その過程で様々なプレイヤーとも知り合いになり、交友関係も広がりました。
ただし、基幹部分が突貫であり当時の技術力もあわさりゴミコードでした。
また3年ほどの運用で知見も溜まっていきました。
githubに公開して、誰で見れるようにすれば恥ずかしいコードは書かないのではと考えました
githubに公開して課題をissue化してもらったりPRをもらえれば、更新頻度は高くなるのではと考えました
ロケテストに通い必要な要素をチェックしました。
会員サイト自体はチュウニズムと大きく外れることもないだろうと、必要な機能等予想して事前に作成していました。
突貫で作るとコードが汚くなるのは分かっていたのと、
チュウニズムでは月に2回ほど新曲が追加されます。
データベースを手動でいじり追加していたのですが、非常に面倒で更新ペースが落ちていきました。
途中からはコマンド化し自動化したら
(現状半手動なのでなんとかしたいです)
収入にならない個人開発ではモチベーションが一番大事です。
慣れ親しんだCakePHP+jQueryではなく、あまり知見のないLaravelとVue.jsで作ることで趣味と勉強を両立させました
Vue.jsで作る過程でAPI化したのですが、簡単にドキュメントを作り誰でも使ってもらえるようにしました。
これについては、SoundVoltexというKONAMIの音ゲーのスコアツール に感銘を受けたのが大きいです。
API化することで、専用のビュワーアプリを別の方が作っていたりコミュニティ全体がかなり盛り上がっていた記憶があります。
データベースを見ながら「どのくらい使ってくれるかな?」とにやにやしてましたが、1週間たってもアカウント登録人数は8人。
実際にスコアを登録したのは2人でした。
たったの25%しか使ってくれていません。
なんらかの原因があるのは明らかです。
でも自分では分からなかったので、何人かに使って意見をもらいました。
離脱してしまった6人のユーザーには悪いことをしたなと思いました。
上記の対応をしても、予想より全然ユーザーが増えません。チュウニズムのときはもっと早く増えたのに。
チュウニズムのときはプレイさえすれば、誰でも「CHUNITHM.net」でスコアを閲覧できました。
オンゲキは有料サービスに登録しないとスコアを見れないという仕様。正直予想していませんでした。
スコアを見たくなるのは、曲を一通りプレイし苦手曲や得意曲を確認したい時。
無料なら最初から使ってみようとなりますが、有料だと必要なときまで課金しませんよね。
オンゲキも稼働から約3ヵ月経ち、スコアツールの需要も伸びてきました。
ユーザーも70人を超えたため、issue化された要望を実装しようと思っております。
サービス公開はノリと勢いでいけますが、メンテナンスはいかにモチベーションを維持するかに掛かっていると思いました
この記事は個人開発 Advent Calendar 2018の8日目です。
作ったもの
オンゲキスコアツールgithub
どんなアプリ?
SEGAの出している音楽ゲーム「オンゲキ」のスコアを管理、公開出来るツールです。スコアを登録するには、オンゲキをプレイした後オンゲキNET有料コースに入る必要がありますが、
サンプルとして乗っているcsvをインポートすることで未プレイでも体感することは出来ると思います。
Laravel+Vue.jsで作りました。
構成
オンゲキスコアツールは主に4つの機能から構成されています。
スコア登録部分
ユーザー登録やログイン、csvをアップロードしてスコアテーブルに保存するなど
いわゆる普通の部分です。
スコア表示部分
スコアを閲覧、絞り込み出来る部分です。Vue.js製です。
スクレイピング部分
オンゲキの公式サイトにログインして、javascriptを実行するとスコアをcsvとして吐き出します。javascriptはブックマークレット化することで、ワンプッシュでスコアを出力可能です。
マスターデータ登録部分
「曲名」「難易度」など曲の基本データを登録します。shellからコマンドで実行するため、一般ユーザーの目には見えない部分になります。
何故作ろうと思ったのか。
オンゲキの前にSEGAが出した音楽ゲーム「チュウニズム」にまで話は遡ります。会員サイトにログインすると曲ごとのスコア、プレイ回数が見れたのですが、閲覧出来るのは自分のみ。
また、曲の絞り込みも最低限しかありません。
- うまく出来たからtwitterで自慢する
- 友達とスコアを見せ合い、競い合う
- この曲スコア低いけどプレイ回数少ないしやれば伸びるのでは?みたいな分析
稼働1週間で簡易的なスコアツールを作り公開したところ
反響が大きく、本腰を入れて作っていきました。
その過程で様々なプレイヤーとも知り合いになり、交友関係も広がりました。
ただし、基幹部分が突貫であり当時の技術力もあわさりゴミコードでした。
また3年ほどの運用で知見も溜まっていきました。
「SEGAが新しい音ゲーを出すらしいぞ?」
と聞き、今の知識で作ってみたいと思いました。
前回の反省を生かして工夫した点
コードが汚い
githubに公開して、誰で見れるようにすれば恥ずかしいコードは書かないのではと考えました
更新が面倒
githubに公開して課題をissue化してもらったりPRをもらえれば、更新頻度は高くなるのではと考えました
稼働前から準備する
ロケテストに通い必要な要素をチェックしました。会員サイト自体はチュウニズムと大きく外れることもないだろうと、必要な機能等予想して事前に作成していました。
突貫で作るとコードが汚くなるのは分かっていたのと、
「誰よりも最初に作る」
というスピード感を強く意識しました。
曲の管理が面倒
チュウニズムでは月に2回ほど新曲が追加されます。データベースを手動でいじり追加していたのですが、非常に面倒で更新ペースが落ちていきました。
途中からはコマンド化し自動化したら
みんな Happy!!
になったので、今回は最初からそれでいこうと思いました(現状半手動なのでなんとかしたいです)
モチベの上がる技術で作る
収入にならない個人開発ではモチベーションが一番大事です。慣れ親しんだCakePHP+jQueryではなく、あまり知見のないLaravelとVue.jsで作ることで趣味と勉強を両立させました
API化
Vue.jsで作る過程でAPI化したのですが、簡単にドキュメントを作り誰でも使ってもらえるようにしました。これについては、SoundVoltexというKONAMIの音ゲーのスコアツール に感銘を受けたのが大きいです。
API化することで、専用のビュワーアプリを別の方が作っていたりコミュニティ全体がかなり盛り上がっていた記憶があります。
誤算 1
データベースを見ながら「どのくらい使ってくれるかな?」とにやにやしてましたが、1週間たってもアカウント登録人数は8人。実際にスコアを登録したのは2人でした。
たったの25%しか使ってくれていません。
音ゲー仲間にお願いして使ってもらう
なんらかの原因があるのは明らかです。でも自分では分からなかったので、何人かに使って意見をもらいました。
- 「jsをブックマークレットに登録してスコアを抽出」 と言われても分からない。
- 「どこから登録するのか」
離脱してしまった6人のユーザーには悪いことをしたなと思いました。
誤算 2
上記の対応をしても、予想より全然ユーザーが増えません。チュウニズムのときはもっと早く増えたのに。チュウニズムのときはプレイさえすれば、誰でも「CHUNITHM.net」でスコアを閲覧できました。
オンゲキは有料サービスに登録しないとスコアを見れないという仕様。正直予想していませんでした。
スコアを見たくなるのは、曲を一通りプレイし苦手曲や得意曲を確認したい時。
無料なら最初から使ってみようとなりますが、有料だと必要なときまで課金しませんよね。
最後に
オンゲキも稼働から約3ヵ月経ち、スコアツールの需要も伸びてきました。ユーザーも70人を超えたため、issue化された要望を実装しようと思っております。
サービス公開はノリと勢いでいけますが、メンテナンスはいかにモチベーションを維持するかに掛かっていると思いました
コメント
コメントを投稿