推しアイデア
自分だけの音ゲーを製作 ローカルとネット通信の対戦機能で遊べる! 旧ニンテンドーハードも負けてないぞ
自分だけの音ゲーを製作 ローカルとネット通信の対戦機能で遊べる! 旧ニンテンドーハードも負けてないぞ
「2→対→対バン(2グループでライブを行うこと)→音ゲー!」 & 最近ライブにハマっている!
DBがあるバックエンドしっかり書いた! フロントのUI(音ゲー部分・作譜エディター)
本家バンドブラザーズにある機能を再現!
ホーム画面に遷移する
ローカルではソロプレイと対バン(2人)プレイが可能!
ソロプレイは[d,f,j,k]キーが上から対応している4鍵タイプの音ゲーになっている
Perfect : +5 Good : +2 Miss : -2
でスコアリングをしている
対バンプレイはそれぞれ[q,w,e,r]キー、[u,i,o,p]キーが上から対応している4鍵タイプの音ゲーになっている
4つの譜面をクリックで制作
フロント内にある既存曲6曲 | | 自分の好きなmp3ファイルを選択可能
タイトル、長さ、BPM、mp3の長さに合わせて同期する、音声のスライドバーで譜面が連動、過去に作った譜面の上書き等ができる。
投稿した曲は1人・2人プレイをすることができます
Redisのキューを使用してマッチングを行っている
Docker-composeを使用してRails,Go,Posgre,Redisを立ち上げて開発をしていた
GoとRailsを使用してみたいという気持ちがあったので両方をまとめてデプロイできるようにTerraformを使用した
Terraformのディレクトリ構成
. ├── apis.tf ├── cloudsql.tf ├── game-server.tf ├── provider.tf ├── rails-server.tf ├── redis.tf ├── terraform.tfstate ├── terraform.tfvars └── variables.tf
バックエンド・フロントエンドともにGithubActionsを設定し、mainブランチにプッシュされたら自動でデプロイされるようになっている (バックエンドの方は設定こそしたがうまくいっていない[手が回らなかった...])
規模感がミニマムかつ開発を楽にしたかったのでバックエンド全体にモノレポ構成を採用した
. ├── .git ├── .github │ └── workflows ├── game-server(Go-Game-Server) │ ├── bin │ └── cmd │ └── server ├── infra │ └── terraform関係フォルダ ├── rails-server ├── .github │ └── workflows ├── app ├── bin ├── config │ ├── environments │ ├── initializers │ └── locales ├── db └── migrate
ラズベリーパイでデータ取得用スクリプトを実行し取得したデータをフロントにwebsocketで送信する予定でした。
<今回の敗因>
テーマ「2」
最近バンドアニメ(ロックレディ・ガルクラ・バンドリ・ぼざろなど)にハマって、音楽系がパッと思いついた
音楽系 & 2 といえば対バン!(2グループで合同ライブ)
元ネタにしたい神作