一個支援多人的區網心理策略遊戲。玩家使用手機作為控制器,電腦螢幕作為主顯示畫面。
此專案概念來自 Netflix 韓國綜藝節目**《魔鬼的計謀》(The Devil's Plan)**第二季中的監獄戰關卡——「時間競標」遊戲。
在原節目中,這是一個考驗參賽者心理博弈和風險管理能力的遊戲。玩家需要權衡每個回合的價值,決定是否要投入自己寶貴的時間資源來競爭勝利。這個數位版本忠實重現了遊戲的核心機制,並優化了多人同時遊玩的體驗。
- Node.js 14.0 或以上版本 安裝Node.js: https://nodejs.org/zh-tw/download
- 現代瀏覽器(Chrome、Firefox、Safari、Edge)
- 同一區域網路內的電腦和手機
- Windows 作業系統(用於執行 Start.bat)
time-auction-game/
├── server.js # WebSocket伺服器
├── package.json # 專案配置
├── Start.bat # 遊戲啟動檔
├── public/
│ ├── host.html # 電腦端主控台介面
│ └── player.html # 手機端玩家控制器
└── README.md # 說明文件
-
雙擊
Start.bat檔案啟動遊戲伺服器 -
伺服器啟動後會顯示:
======================================== 時間競標遊戲伺服器已啟動! ======================================== 電腦端主控台: http://localhost:3000/host.html 手機端玩家控制器: http://192.168.1.100:3000/player.html 請確保所有設備都在同一個 WiFi 網路下 ======================================== -
使用顯示的 IP 地址讓玩家加入
- 在電腦瀏覽器開啟:
http://localhost:3000/host.html - 將此畫面投射到大螢幕或電視
- 等待玩家加入
- 確保手機與電腦在同一WiFi網路
- 在手機瀏覽器開啟:
http://[電腦IP]:3000/player.html- 例如:
http://192.168.1.100:3000/player.html
- 例如:
- 輸入名字
- 點擊「加入遊戲」
- 每位玩家初始擁有 10 分鐘(600.0 秒)
- 遊戲共進行 19 回合
- 目標:贏得最多回合,若平手則由剩餘時間最多者獲勝
主控台畫面右上角提供遊戲設定選項,可調整以下參數:
回合數選項:
- 11 回合(快速局)
- 13 回合(標準局)
- 15 回合(進階局)
- 17 回合(挑戰局)
- 19 回合(完整局,預設)
起始時間選項:
- 7 分鐘(420 秒)
- 8 分鐘(480 秒)
- 9 分鐘(540 秒)
- 10 分鐘(600 秒,預設)
遊戲開始前可透過「套用設定」按鈕來變更這些參數。
- 準備階段:所有玩家同時按住紅色按鈕
- 倒數階段:5秒倒數,期間可放開按鈕退出該回合
- 回合進行:持續按住按鈕,隨時可放開退出
- 回合結束:最後一位放開按鈕的玩家獲勝
- 時間扣除:所有參與者扣除累積時間
- 開始遊戲:玩家就位後,點擊「開始遊戲」按鈕
- 結束遊戲:如需提前結束,點擊「結束遊戲」按鈕
- 重置遊戲:遊戲結束後,點擊「重置遊戲」按鈕
- 遊戲設定:可調整回合數(11-19)和起始時間(7-10分鐘)
- 準備階段:按住紅色按鈕表示準備
- 倒數階段:可以偷偷放開按鈕退出該回合
- 回合進行:持續按住按鈕,隨時可放開退出
- 時間耗盡:無法再參與後續回合
- 清除資料:左上角有「清除遊戲資料」按鈕,點擊後會完全退出遊戲
- 低延遲通訊:使用WebSocket確保即時響應
- 區網優化:所有通訊在本地網路完成
- 觸控優化:手機端針對觸控操作優化
- 震動反饋:支援手機震動提示(需瀏覽器支援)
- 響應式設計:自適應不同螢幕尺寸
- 彈性人數:支援任意數量玩家加入
- 斷線重連:玩家意外斷線後可自動重新連回遊戲
- Session管理:使用localStorage保存玩家資訊,關閉網頁後仍可恢復
遊戲具備完整的斷線重連功能:
- 自動重連:當網路中斷或頁面關閉後,重新開啟頁面會自動嘗試連回原本的遊戲
- 身份保留:系統會記住玩家的ID、名稱、勝利回合數和剩餘時間
- 同名重連:如果使用相同名字加入遊戲,系統會自動連接到原有帳號
- Session過期:離線超過30分鐘的玩家會被自動清理
玩家可以完全退出遊戲:
- 清除資料按鈕:位於玩家介面左上角(設計較小避免誤觸)
- 完整清理:點擊後會清除本地資料並從主控台移除玩家卡片
- 即時更新:其他玩家和主控台會立即看到該玩家離開
- 確認電腦和手機在同一WiFi網路
- 檢查防火牆是否允許3000埠
- 嘗試關閉VPN
- 使用電腦的實際IP而非localhost
- 關閉不必要的背景程式
- 使用5GHz WiFi頻段
- 減少網路中其他設備的使用
- 建議使用Chrome或Safari
- 確保瀏覽器版本為最新
- 允許網頁的觸控和震動權限
如果首次執行 Start.bat 時出現問題,可以手動安裝依賴套件:
- 開啟命令提示字元(cmd)或 PowerShell
- 導航到專案資料夾
- 執行:
npm install
在 server.js 中修改:
const gameState = {
// ... 其他設定
totalRounds: 19, // 總回合數
// 初始時間(秒)
};
// 玩家初始時間
timeRemaining: 600.0, // 10分鐘host.html:調整主控台介面player.html:調整玩家控制器介面- 修改CSS中的顏色、大小等屬性
- 遊戲需要穩定的網路連線
- 建議在遊戲前測試所有設備連線
- 避免在遊戲中切換網路或關閉螢幕
- 手機電量充足,避免遊戲中斷
- 支援彈性玩家人數,無固定限制
- 善用斷線重連功能,不必擔心意外斷線
- 使用清除資料功能時請謹慎,會完全退出遊戲
如需以開發模式執行(支援自動重啟),請使用:
npm run devMIT License