Skip to content
kaikomziuPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

Repository files navigation

ドットバトル — マルチプレイ ブラウザゲーム

エサを食べて大きくなり、自分より小さい相手プレイヤーを飲み込む、リアルタイム対戦ゲームです。 PCとスマホはもちろん、クラウドにデプロイすれば遠方の友達ともオンラインで遊べます。

遊び方の概要

  • 操作・アイテム・ゲームモード・実績など詳しくはアプリ内の「❓ 遊び方」ボタンを参照
  • ゲスト参加、またはアカウント登録してログインしてプレイ可能
  • 管理者パネル(⚙、パスワードはデフォルト karwak)からBOT追加・ゲームモード切替・ラウンド管理などが可能

ローカルでの起動方法(LAN内プレイ)

1. 依存パッケージをインストール(初回のみ)

npm install

2. サーバーを起動

npm start

または start.bat をダブルクリック。

起動すると、コンソールに以下のようなアクセスURLが表示されます。

PCから: http://localhost:3000
スマホから(同じWi-Fiに接続して):
  http://192.168.x.x:3000

3. 同じWi-Fi内の他の端末からアクセス

  1. 他の端末をホストPCと**同じWi-Fi(同じルーター)**に接続
  2. コンソールに表示された http://192.168.x.x:3000(PCのLAN IP)を開く

IPアドレスが分からない場合は、PCで ipconfig(Windows)を実行し、「IPv4 アドレス」を確認してください。 繋がらない場合は、Windowsファイアウォールがポート(3000)をブロックしていないか確認してください(初回起動時の許可ダイアログで「許可」を選択)。


🌐 オンライン公開(遠方の友達と遊ぶ)

このゲームは Render などのNode.js対応クラウドサービスに無料でデプロイできます。デプロイすると、自分のPCを起動しっぱなしにしなくても、誰でも同じURLからいつでもアクセスできるようになります。

手順

  1. GitHubにコードを置く

    • GitHubアカウントを持っていなければ github.com で作成
    • 新しいリポジトリを作成し、このフォルダの中身をプッシュ(下記コマンド参照)
  2. Renderにデプロイ

    • render.com でアカウント作成(GitHubアカウントでログイン可能)
    • 「New +」→「Web Service」→ 先ほどのGitHubリポジトリを選択
    • このリポジトリには render.yaml が含まれているため、設定は自動で読み込まれます
      • Build Command: npm install
      • Start Command: npm start
    • 環境変数 ADMIN_PASSWORD に好きな管理者パスワードを設定(必須ではないが強く推奨 — 未設定の場合デフォルトの karwak のままになります)
    • 「Create Web Service」をクリックしてデプロイ
  3. デプロイ完了後に発行される https://xxxxx.onrender.com のようなURLを友達に共有すれば、世界中どこからでも一緒にプレイできます。

⚠️ 無料プランの注意点

  • 無料プランは一定時間アクセスがないとスリープします(次のアクセス時に数十秒起動待ちが発生)
  • 無料プランのディスクは再起動のたびにリセットされるため、登録したアカウント(users.json)は永続的には保存されません。継続的に使う場合は有料プランの永続ディスク、または外部データベースへの移行を検討してください
  • 管理者パスワードは必ず環境変数で独自の値に変更してから公開してください(していないと誰でも管理者操作ができてしまいます)

GitHubへのプッシュ例

git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/あなたのユーザー名/リポジトリ名.git
git push -u origin main

技術構成

  • サーバー: Node.js + Express + Socket.io(server.js)— 全プレイヤーの位置・当たり判定をサーバー側で計算し、20回/秒で全クライアントに同期します。
  • クライアント: HTML5 Canvas + Socket.io クライアント(public/)— マウス/タッチ入力を同じロジックで処理し、PCとスマホで共通コードのまま動作します。
  • アカウント: bcryptjs でパスワードをハッシュ化し users.json に保存。セッションはメモリ上のトークンで管理(サーバー再起動でログアウトされます)。

カスタマイズのヒント(server.js 上部の定数)

  • WORLD_SIZE_MIN / WORLD_SIZE_MAX: フィールドの広さの範囲(人数・サイズに応じて自動調整)
  • FOOD_COUNT: エサの数
  • MAX_SPEED: 移動速度
  • ADMIN_PASSWORD: 管理者パスワード(環境変数 ADMIN_PASSWORD で上書き可能)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages