エサを食べて大きくなり、自分より小さい相手プレイヤーを飲み込む、リアルタイム対戦ゲームです。 PCとスマホはもちろん、クラウドにデプロイすれば遠方の友達ともオンラインで遊べます。
- 操作・アイテム・ゲームモード・実績など詳しくはアプリ内の「❓ 遊び方」ボタンを参照
- ゲスト参加、またはアカウント登録してログインしてプレイ可能
- 管理者パネル(⚙、パスワードはデフォルト
karwak)からBOT追加・ゲームモード切替・ラウンド管理などが可能
npm installnpm startまたは start.bat をダブルクリック。
起動すると、コンソールに以下のようなアクセスURLが表示されます。
PCから: http://localhost:3000
スマホから(同じWi-Fiに接続して):
http://192.168.x.x:3000
- 他の端末をホストPCと**同じWi-Fi(同じルーター)**に接続
- コンソールに表示された
http://192.168.x.x:3000(PCのLAN IP)を開く
IPアドレスが分からない場合は、PCで
ipconfig(Windows)を実行し、「IPv4 アドレス」を確認してください。 繋がらない場合は、Windowsファイアウォールがポート(3000)をブロックしていないか確認してください(初回起動時の許可ダイアログで「許可」を選択)。
このゲームは Render などのNode.js対応クラウドサービスに無料でデプロイできます。デプロイすると、自分のPCを起動しっぱなしにしなくても、誰でも同じURLからいつでもアクセスできるようになります。
-
GitHubにコードを置く
- GitHubアカウントを持っていなければ github.com で作成
- 新しいリポジトリを作成し、このフォルダの中身をプッシュ(下記コマンド参照)
-
Renderにデプロイ
- render.com でアカウント作成(GitHubアカウントでログイン可能)
- 「New +」→「Web Service」→ 先ほどのGitHubリポジトリを選択
- このリポジトリには
render.yamlが含まれているため、設定は自動で読み込まれます- Build Command:
npm install - Start Command:
npm start
- Build Command:
- 環境変数
ADMIN_PASSWORDに好きな管理者パスワードを設定(必須ではないが強く推奨 — 未設定の場合デフォルトのkarwakのままになります) - 「Create Web Service」をクリックしてデプロイ
-
デプロイ完了後に発行される
https://xxxxx.onrender.comのようなURLを友達に共有すれば、世界中どこからでも一緒にプレイできます。
- 無料プランは一定時間アクセスがないとスリープします(次のアクセス時に数十秒起動待ちが発生)
- 無料プランのディスクは再起動のたびにリセットされるため、登録したアカウント(
users.json)は永続的には保存されません。継続的に使う場合は有料プランの永続ディスク、または外部データベースへの移行を検討してください - 管理者パスワードは必ず環境変数で独自の値に変更してから公開してください(していないと誰でも管理者操作ができてしまいます)
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に保存。セッションはメモリ上のトークンで管理(サーバー再起動でログアウトされます)。
WORLD_SIZE_MIN/WORLD_SIZE_MAX: フィールドの広さの範囲(人数・サイズに応じて自動調整)FOOD_COUNT: エサの数MAX_SPEED: 移動速度ADMIN_PASSWORD: 管理者パスワード(環境変数ADMIN_PASSWORDで上書き可能)