罰ゲーム抽選アプリ「誰がアウト?」を公開しました!
グループで匿名の言葉を送り、その日のOUTを決める「誰がアウト?」を公開しました。 基本的な使い方と、本文を保存しない設計、再現可能な判定、複数人の進行同期など、開発で工夫した点を紹介します。
CONTENTSこの記事の目次6項目
グループの中で「今日のOUT」を決めたい。 でもランダムだと盛り上がらない。 そんな場面を、匿名の言葉と同じ条件なら同じ結果になる判定ルールで楽しめるアプリ「誰がアウト?」を公開しました。 この記事では、基本的な使い方と、作るときに気をつけたこと、実装で難しかったところを開発記録としてまとめます。
「誰がアウト?」はどんなアプリ?
「誰がアウト?」は、招待したグループの参加者が匿名で「OUTになりたくない思い」を送り、そのラウンドのOUT対象を決めるゲームです。 具体的な罰の内容を決めたり記録したりする機能は持たせず、アプリが担当するのは対象者の決定までです。
READ MORE「誰がアウト?」を開くグループを作るか、共有されたグループID・参加リンクからゲームへ参加できます。→基本的な使い方
1. グループを作り、IDか参加リンクを共有する
作成者はグループ名を入力してグループを作成します。 待機画面に表示されるグループID、または参加リンクを一緒に遊ぶ人へ共有します。参加者はIDを入力するか、リンクを開くだけで参加できます。
2. OUT人数を選んで受付を締め切る
メンバーが2人以上集まると、作成者は今回のOUT人数を選んでラウンドを開始できます。 必ずSAFEが1人以上残る人数だけを選べるようにし、参加者が増減した場合も開始時に人数を再確認します。
3. 5分以内に「OUTになりたくない思い」を送る
ラウンドが始まると、各参加者が自由な文章を入力します。送信ボタンは「思いを封印して送る」。 文章そのものはほかの参加者にも運営者にも表示されず、全員の送信が完了すると自動で判定へ進みます。 未送信の人がいても5分で自動提出となるため、途中離脱でゲームが止まりません。
4. 結果と履歴を確認し、次のラウンドへ
結果画面では今回OUTになった匿名番号、自分がOUTかSAFEか、参加者ごとの累計OUT回数を確認できます。 作成者は次のラウンドのOUT人数を選び直して再戦でき、同じグループで最大30ラウンドまで遊べます。
作成するときに気をつけたこと
具体的な罰を扱わない
このアプリは、誰がOUTかを決めるところまでに役割を限定しました。 罰の内容を入力・提案・保存する機能はありません。違法・危険な行為、いじめ、強要、本人が同意しない罰に使わないことも、作成画面・参加画面・結果画面で案内しています。 ジャンケンのような感覚で、それぞれ思いを綴って勝負する。そんなアプリケーションです。 ※テキスト情報を元に一番思いが弱い人がアウトになるわけではございません。
入力した文章をサーバーへ送らない
自由記述には、意図せず個人情報や秘密が含まれる可能性があります。 そこで、入力した文章はブラウザ内で表記を整えたあと特定のハッシュ値へ変換し、サーバーには元の文章ではなく64文字のダイジェストだけを送る設計にしました。本文は表示にも履歴にも残りません。
匿名性と操作権限を分ける
共有されたグループIDは参加の入口ですが、それだけで締め切り、再戦、削除といった作成者操作はできません。 参加者の資格と作成者の資格を分け、画面上では名前を集めず匿名番号だけを表示しました。 推測しにくいグループID、端末内のセッション、操作ごとの権限確認を組み合わせています。
遊びが止まらない上限と自動処理を決める
- 参加人数は2〜20人
- 各ラウンドは5分。未送信者がいても自動提出して判定へ進む
- OUT人数は1〜19人。ただしSAFEが最低1人残る範囲
- 同じグループで最大30ラウンド
- グループと履歴は作成から7日後に自動削除
実装で難しかったところ
同じ条件なら同じ結果になる判定
単純な乱数だけで決めると、同じリクエストの再送や同時操作で結果が変わる可能性があります。 「誰がアウト?」では、グループごとの非公開シードと、グループID、ラウンド番号、日本の日付、匿名メンバーID、文章のダイジェストを特定のハッシュ値へ入力して各参加者の値を作り、その並び順からOUTを決めます。同じ条件なら同じ結果になり、送信順や文章の長さは有利・不利に使いません。
複数人の画面を同じ進行へそろえる
複数端末から、締め切り・送信・結果取得・再戦がほぼ同時に発生します。二重判定や31回目の開始を防ぐため、サーバー側で現在のフェーズとラウンド番号を確認し、データベースの一意制約とバージョン管理も使っています。画面側は定期的に状態を取得し、全員が送信した瞬間やタイムアップ後に結果画面へ移ります。
EXIT後の復帰と次ラウンドへの追従
ブラウザを閉じたりEXITしたりしても、グループの有効期間中は共有リンクから現在のラウンドへ戻れるようにしました。また、作成者が次のラウンドを始めたとき、結果画面で待っている参加者も再読み込みなしで新しい入力画面へ移ります。複数人ゲームでは「一人だけ古い画面に残る」状態が起きやすく、復帰と同期を一つの流れとして設計する必要がありました。
スマートフォンで主要操作を先に見せる
参加リンクをメッセージで受け取り、そのままスマートフォンで開く場面を想定しました。小さな画面でも、現在の状態、参加人数、残り時間、その場で必要なボタンが先に見えるようにし、説明や装飾は後から読める位置へ整理しています。ゲームらしさは黄色いカード、封筒、OUTスタンプ、結果カードなどで表現しました。
作ってみて感じたこと
「複数人から一人を決める」だけなら簡単に見えますが、実際には文章をどう守るか、誰にどの操作を許すか、参加者が途中で離れたときにどう進めるか、同時操作でも結果を一つに保てるかを考える必要がありました。遊びのテンポを損なわずに安全側へ寄せるため、収集する情報と機能を増やしすぎないことが一番大切な判断だったと思います。
まずはグループを作って試してみてください
「誰がアウト?」は、会員登録なしでもグループを作成・参加できます。友人や家族など、全員が納得した安全な遊びの中で使ってみてください。実際に何人かで遊んだ流れや盛り上がったポイントは、今後の「使って遊んでみた」記事で改めて紹介します。
READ MORE「誰がアウト?」でグループを作るグループIDや参加リンクを共有して、2〜20人で始められます。→会員登録をしなくても遊べますか?
はい。ゲストのままグループを作成・参加できます。作成・参加した端末で共有リンクを開くと、グループの有効期間中は現在のラウンドへ戻れます。
入力した文章はほかの人に見えますか?
いいえ。文章はブラウザ内で特定のハッシュ値へ変換され、サーバーには本文を送信しません。ほかの参加者や運営者が文章を表示・保存・復元する機能もありません。