0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

複数人で遊ぶアプリを作る場合のアイデア

0
Last updated at Posted at 2026-08-18

複数人で遊ぶWebアプリでは、

  • 1台の端末を回す
  • 1人が画面を読み上げる
  • サーバーでリアルタイム通信する

といった方法があります。

ただ、簡単なパーティーゲーム程度なら、共有用URLを使うだけでも複数人プレイを実現できます。

例:正体隠匿系ゲーム

例えばワンナイト人狼のようなゲームです。

通常は、

田中さんが役職を見る
↓
端末を鈴木さんへ渡す
↓
鈴木さんが役職を見る

という形でも遊べます。

ここでゲーム情報をURLに入れて、

https://example.com/game?share=XXXXXXXX

のような共有URLを発行します。

これをLINEなどで参加者へ送ります。

各プレイヤーはURLを開き、自分の名前を選択します。

あなたの名前を選択

・田中
・鈴木
・佐藤

田中さんを選んだ場合は、

あなたは「占い師」です。

鈴木さんは村人判定です。

のように、その人に必要な情報だけを表示します。

これなら端末を回す必要がありません。

パスワードの設定

各プレイヤーに任意のパスワードを設定したい場合は、パスワードのハッシュ化処理を実装し、共有する側が各プレイヤーからハッシュ値を受け取る形式が望ましいです。

各プレイヤー自身がパスワードを生成する場合は、パスワードをランダムに生成してIndexedDBに保存し、保存と同時にコピーされるハッシュ値をGMに送信します。そのハッシュ値を、共有する側の入力画面で入力する形式が望ましいです。

この仕組みを実装する場合、実際に会って遊ぶ程度ならば、Base64を解析している暇がないため、秘匿すべき情報はパスワードそのものだけになると考えられます。

そのため、適切に実装されていれば、実際のプレイ時に必要とするパスワードに関しては、現時点で知られている技術では突破することは困難なはずです。

カジュアルな対面プレイでは参加者がURLを意図的に解析しないことを前提とする簡易方式ではあるものの、「そこまで不審な動きができるかどうか」「知識があるかどうか」「不正が軽い気持ち程度ならば、そこまでやるか」等を考慮すると、効果は高いと推測されます。

一方で、共有する側が5桁のパスワードを設定し、個別チャットで伝えたり、紙に書いて渡したりして入力してもらえるように、手動設定にも対応しましょう。

確かに、セキュリティ面では強固とは言えませんが、「隣の参加者にちょっと覗かれるのを防止する」程度であれば、一定の有効性があります。そのため、この方式も用意しておくことで、共有する側がより簡単に運営できるようになると考えます。

URLにゲーム情報を入れる

例えばゲーム状態をJSONにして、

const game = {
  players: [
    {
      name: "田中",
      role: "占い師"
    }
  ]
};

Base64URL形式などに変換し、クエリパラメータへ入れます。

?share=eyJwbGF5ZXJzIjpb...

受け取った側ではURLからデータを復元し、自分用の画面を表示します。

プレイヤーから結果を返すこともできる

逆方向にも使えます。

例えばプレイヤーが、

鈴木さんを占う

という行動を選んだ場合、その結果を再びURL化します。

https://example.com/game?result=XXXXXXXX

そのURLをホストへ送り返し、ホスト側のアプリへ貼り付けて読み込めば、ゲーム状態へ反映できます。

つまり、

ホスト
↓
共有URL
↓
プレイヤー
↓
行動
↓
結果URL or 結果Text
↓
ホストへ反映

という流れです。

サーバーなしでも使える

この方法なら、GitHub Pagesなどの静的サイトでも実装できます。

WebSocketやデータベースを用意せずに、簡易的な複数人プレイを作れるのがメリットです。

まとめ

小規模な複数人ゲームなら、

ゲーム情報
↓
JSON
↓
Base64URL
↓
LINEなどで共有

という方法でも十分遊べます。

特に、

  • 正体隠匿ゲーム
  • カード配布
  • 秘密のお題
  • 個別ミッション
  • 投票ゲーム
  • TRPGの秘密情報

などと相性が良いです。

端末を回すゲームを、共有URLで各自のスマホ対応にするという考え方は、個人開発でも使いやすいアイデアだと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?