Skip to content

mouse76229/TimeBiddingWebGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

時間競標遊戲 - 區網版

一個支援多人的區網心理策略遊戲。玩家使用手機作為控制器,電腦螢幕作為主顯示畫面。

遊戲概念來源

此專案概念來自 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         # 說明文件

啟動遊戲

  1. 雙擊 Start.bat 檔案啟動遊戲伺服器

  2. 伺服器啟動後會顯示:

    ========================================
    時間競標遊戲伺服器已啟動!
    ========================================
    電腦端主控台: http://localhost:3000/host.html
    
    手機端玩家控制器:
      http://192.168.1.100:3000/player.html
    
    請確保所有設備都在同一個 WiFi 網路下
    ========================================
    
  3. 使用顯示的 IP 地址讓玩家加入

遊戲設置

電腦端(主控台)

  1. 在電腦瀏覽器開啟:http://localhost:3000/host.html
  2. 將此畫面投射到大螢幕或電視
  3. 等待玩家加入

手機端(玩家)

  1. 確保手機與電腦在同一WiFi網路
  2. 在手機瀏覽器開啟:http://[電腦IP]:3000/player.html
    • 例如:http://192.168.1.100:3000/player.html
  3. 輸入名字
  4. 點擊「加入遊戲」

遊戲規則

基本規則

  • 每位玩家初始擁有 10 分鐘(600.0 秒)
  • 遊戲共進行 19 回合
  • 目標:贏得最多回合,若平手則由剩餘時間最多者獲勝

遊戲參數選項

主控台畫面右上角提供遊戲設定選項,可調整以下參數:

回合數選項:

  • 11 回合(快速局)
  • 13 回合(標準局)
  • 15 回合(進階局)
  • 17 回合(挑戰局)
  • 19 回合(完整局,預設)

起始時間選項:

  • 7 分鐘(420 秒)
  • 8 分鐘(480 秒)
  • 9 分鐘(540 秒)
  • 10 分鐘(600 秒,預設)

遊戲開始前可透過「套用設定」按鈕來變更這些參數。

遊戲流程

  1. 準備階段:所有玩家同時按住紅色按鈕
  2. 倒數階段:5秒倒數,期間可放開按鈕退出該回合
  3. 回合進行:持續按住按鈕,隨時可放開退出
  4. 回合結束:最後一位放開按鈕的玩家獲勝
  5. 時間扣除:所有參與者扣除累積時間

遊戲操作

主控台操作

  • 開始遊戲:玩家就位後,點擊「開始遊戲」按鈕
  • 結束遊戲:如需提前結束,點擊「結束遊戲」按鈕
  • 重置遊戲:遊戲結束後,點擊「重置遊戲」按鈕
  • 遊戲設定:可調整回合數(11-19)和起始時間(7-10分鐘)

玩家操作

  • 準備階段:按住紅色按鈕表示準備
  • 倒數階段:可以偷偷放開按鈕退出該回合
  • 回合進行:持續按住按鈕,隨時可放開退出
  • 時間耗盡:無法再參與後續回合
  • 清除資料:左上角有「清除遊戲資料」按鈕,點擊後會完全退出遊戲

技術特點

  1. 低延遲通訊:使用WebSocket確保即時響應
  2. 區網優化:所有通訊在本地網路完成
  3. 觸控優化:手機端針對觸控操作優化
  4. 震動反饋:支援手機震動提示(需瀏覽器支援)
  5. 響應式設計:自適應不同螢幕尺寸
  6. 彈性人數:支援任意數量玩家加入
  7. 斷線重連:玩家意外斷線後可自動重新連回遊戲
  8. Session管理:使用localStorage保存玩家資訊,關閉網頁後仍可恢復

進階功能

斷線重連機制

遊戲具備完整的斷線重連功能:

  • 自動重連:當網路中斷或頁面關閉後,重新開啟頁面會自動嘗試連回原本的遊戲
  • 身份保留:系統會記住玩家的ID、名稱、勝利回合數和剩餘時間
  • 同名重連:如果使用相同名字加入遊戲,系統會自動連接到原有帳號
  • Session過期:離線超過30分鐘的玩家會被自動清理

主動退出功能

玩家可以完全退出遊戲:

  • 清除資料按鈕:位於玩家介面左上角(設計較小避免誤觸)
  • 完整清理:點擊後會清除本地資料並從主控台移除玩家卡片
  • 即時更新:其他玩家和主控台會立即看到該玩家離開

故障排除

連線問題

  1. 確認電腦和手機在同一WiFi網路
  2. 檢查防火牆是否允許3000埠
  3. 嘗試關閉VPN
  4. 使用電腦的實際IP而非localhost

效能優化

  1. 關閉不必要的背景程式
  2. 使用5GHz WiFi頻段
  3. 減少網路中其他設備的使用

瀏覽器相容性

  • 建議使用Chrome或Safari
  • 確保瀏覽器版本為最新
  • 允許網頁的觸控和震動權限

手動安裝依賴(如果需要)

如果首次執行 Start.bat 時出現問題,可以手動安裝依賴套件:

  1. 開啟命令提示字元(cmd)或 PowerShell
  2. 導航到專案資料夾
  3. 執行:
    npm install

自訂修改

修改遊戲參數

server.js 中修改:

const gameState = {
    // ... 其他設定
    totalRounds: 19,        // 總回合數
    // 初始時間(秒)
};

// 玩家初始時間
timeRemaining: 600.0,   // 10分鐘

修改視覺樣式

  • host.html:調整主控台介面
  • player.html:調整玩家控制器介面
  • 修改CSS中的顏色、大小等屬性

注意事項

  1. 遊戲需要穩定的網路連線
  2. 建議在遊戲前測試所有設備連線
  3. 避免在遊戲中切換網路或關閉螢幕
  4. 手機電量充足,避免遊戲中斷
  5. 支援彈性玩家人數,無固定限制
  6. 善用斷線重連功能,不必擔心意外斷線
  7. 使用清除資料功能時請謹慎,會完全退出遊戲

開發模式

如需以開發模式執行(支援自動重啟),請使用:

npm run dev

授權

MIT License

About

A web game idea from Korea TV Show: The Devil's Plan S2.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors