No.003 / 2025.11

人狼

友だちと、オンラインで人狼ゲーム。

Webブラウザで遊べる人狼ゲーム。マップを移動しながら、昼と夜のフェーズで進む。

WHYきっかけ

友だちと「人狼ゲームがオンラインでできたらいいよね」と話していて、作ってみることにした。

夜のフェーズの画面。チャット、役職カード、マップ、残り時間

FIG.1

夜のフェーズ

役職ごとの行動を選ぶ。画面の上には自分の役職カードとマップ、残り時間が出る。

昼のフェーズの画面。マップが明るくなり、移動のボタンが並ぶ

FIG.2

昼のフェーズ

マップの中を移動して、まわりに誰がいるかを確かめながら話し合う。

TECH POINTS

技術のポイント

POINT 1

サーバーがゲームをまとめて進める

プレイヤーの操作はすべてPythonのサーバーに集まる。サーバーがフェーズ・マップ・役職を管理して、Web画面とLINEへ結果を出す。Arduinoには、デバッグ用にサーバーのログを出す。

プレイヤーWebブラウザ・LINEPythonサーバーFlask / SocketIOフェーズ・マップ・役職Web画面チャット・マップ・役職LINE通知Arduino UNO R4 WiFiログ表示(デバッグ用)

01仕組み

  1. INPUT入力

    LINE・Webブラウザ(操作・入力)

  2. PROCESS演算

    Python(Flask / SocketIO)でゲームの進行・マップ・役職を管理

  3. OUTPUT出力

    Web画面・LINE(Arduino UNO R4 WiFiは、サーバーのログを見るデバッグ用)

02工夫と苦労

  • ゲームの進行(フェーズ、マップ、役職)をサーバー側のPythonでまとめて管理している
  • Web画面だけでなく、LINEにも情報を出せるようにした
  • Arduino UNO R4 WiFiは、Pythonサーバーのログを表示するデバッグ用の端末として使った。プレイ中にこれを見ながら、ブラウザの描画の問題か、サーバーのデータの問題かを切り分けた
  • 役職カードのイラストは、友だちが描いてくれた

03使った技術

  • Python
  • JavaScript
  • HTML / CSS
  • Arduino UNO R4 WiFi
  • LINE Messaging API

04いまの状態

動く