Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ An educational, *Uncharted-Waters*-style game that reframes offshore **wind-farm
- **Live Fleet Ops room** — every farm has **24 individual turbines**; dispatch engineers to parallel work orders, remote-reset soft faults, and run preventive inspections in real time.
- **First-time interactive onboarding tutorial** — the assistant **Lily** runs a hand-holding, mobile-game-style coach-mark walkthrough (spotlight the relevant button, dim the rest) through one complete work-order loop. Skippable, and replayable from the settings (⚙) menu.

### Decision support & learning loop
- **Job estimate vs. weather window** — before departure, see the estimated hours for transit / boarding / inspection / repair against the allowed work window, plus a computed safety margin (ample / tight / short) and reminders about vessel wear, crew fatigue, and whether to wait for a better forecast day. Advisory only — the player decides.
- **Prudent return with progress carry** — if a repair is going badly mid-window, choose to keep working, **rush it** (finish remaining steps at half the time cost but a 25% chance of a safety incident), or **return to port and re-plan**: no safety penalty, and completed diagnosis/SOP steps are preserved for the next trip. Forced retreat (window closes) still wipes progress and logs an incident — rewarding "know when to fold."
- **Debrief & answer streaks** — each finished job gets a star rating plus a one-line takeaway; correct first-try diagnoses build a streak with a growing (capped) XP bonus.
- **Active-recall mistake log** — reviewing a past mistake starts with a hidden-answer self-test before revealing the correct answer and lesson, reinforcing retention over passive reading.
- **Accessibility** — a `prefers-reduced-motion`-aware toggle (also settable in-game) swaps autoplaying scene video for static stills and disables non-essential animation; sea-state and fault indicators use icon **and** color, not color alone.

### Economy system
- **Electricity revenue & availability share one source of truth**: the Fleet Ops `fleetUptime` (the actual share of turbines turning). Faulted / under-repair units don't generate — leaving units down directly costs you money.
- **Quarterly SLA contract** — each quarter is 90 days; if average availability falls below 90% you pay a penalty.
Expand All @@ -36,7 +43,7 @@ An educational, *Uncharted-Waters*-style game that reframes offshore **wind-farm

### Teaching design
- **Fault-diagnosis quiz + SOP** is the learning core: each fault is a SCADA alarm → 4-choice "what to check FIRST" quiz → 5-step SOP (first two pre-done: confirm weather window, LOTO lock-out).
- **151-template judgment-task engine** across 7 categories (corrective / predictive / preventive / operational / weather / logistics / incident), most with trade-off choices, teaching feedback, and aid charts (trend / spectrum / radar).
- **192-template judgment-task engine** across 7 categories (corrective / predictive / preventive / operational / weather / logistics / incident), most with trade-off choices, teaching feedback, and aid charts (trend / spectrum / radar).
- **Codex** of cleared faults for revision, **Course Mode** for teachers (assign a week's fault, lock graded missions by week), knowledge-point tagging, and a **cloud class leaderboard** (free, no backend) via a Google Apps Script Web App with server-side validation; nickname + class-code login, per-user save isolation.
- **Bilingual (繁中 / English)**, character/dialogue system, procedural Web Audio SFX/BGM.

Expand All @@ -53,8 +60,9 @@ npm install
npm run dev # http://localhost:5173
npm run build # type-check + production build
npm run typecheck # tsc --noEmit
npm test # dependency-free game-logic tests (test/run.mjs)
npm test # dependency-free game-logic tests (test/run.mjs) — 154 passing
npm run sim # balance simulator: passive / active / full-crew strategies (test/sim.mjs)
npm run stress # concurrency/load simulation for the cloud leaderboard backend (test/stress.mjs)
```
CI (`.github/workflows/ci.yml`) runs `typecheck` + `test` + `build` on every PR to `main`.

Expand All @@ -66,7 +74,7 @@ src/
│ ├─ game.ts # core reducer: economy, SLA, fleet, scoring
│ ├─ farms.ts # 4 farms × 24 units each
│ ├─ events.ts / incidents.ts # random events & fault catalogue (Fleet Ops)
│ ├─ tasks.ts # 151-template judgment-task engine
│ ├─ tasks.ts # 192-template judgment-task engine
│ └─ profile.ts / course.ts # login, class code, weekly unlock
├─ ui/
│ ├─ campaign.ts # 7-mission storyline (4 acts)
Expand Down
14 changes: 11 additions & 3 deletions README.zh-TW.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@
- **風場戰情室(即時營運層)** — 每座風場 **24 台個體機組**;即時派遣技師執行並行工單、遠端重啟軟性故障、執行預防性定檢。
- **首次互動式新手教學** — 助理**莉莉**以手機遊戲式的「聚光燈引導(coach-mark)」(高亮對應按鈕、其餘變暗)帶你走完一次完整工單循環;可跳過,並可從設定(⚙)選單重新播放。

### 出海決策支援與學習迴路
- **工期預估 vs 天氣窗** — 出海前顯示航線/登船/檢查/維修的預估耗時,對比天氣窗允許時段,算出「保留餘裕」(充足/偏緊/不足),並提醒船舶磨耗、技師疲勞、是否該等更好的天氣窗再出海。只提示、不擋出航,由玩家自行判斷。
- **審慎返港・半途成果保留** — 維修中途作業窗吃緊時,可選擇繼續作業、**加班搶修**(剩餘步驟一次趕完、耗時減半,但 25% 機率安全近失事件),或**回港再規劃**(不計安全事件,已完成的診斷/SOP 進度保留、擇日續修)。被迫撤離(作業窗關閉)才會進度全失+計安全事件——鼓勵「看準時機、及時止損」。
- **任務復盤與診斷連對** — 每次完工給星級評分+一句學習要點;診斷第一次就答對會累積連對紀錄,帶來逐步升高(有上限)的經驗值加成。
- **錯題本主動回想** — 複習錯題時先隱藏正解、做二選一自我測驗,答完才揭曉正解與教訓,比單純閱讀反思更利記憶保留。
- **無障礙設計** — 支援「減少動態」(隨系統偏好或遊戲內手動開關),啟用時場景影片改靜態畫面、停用非必要動畫;海象與故障狀態同時以圖示+顏色呈現,不僅依賴顏色辨識。

### 經濟系統
- **售電收入與妥善率以同一真實來源計算**:戰情室機隊實際運轉比例 `fleetUptime`。故障/維修中的機組不發電——放著機組不修就是直接少賺錢。
- **季度合約 SLA** — 每季 90 天,平均可用率低於 90% 即罰違約金。
Expand All @@ -36,7 +43,7 @@

### 教學設計
- **故障診斷測驗 + SOP** 為學習核心:每個故障 = SCADA 告警 → 4 選 1「最先排查什麼」測驗 → 5 步 SOP(前兩步預設完成:確認天氣窗、LOTO 上鎖)。
- **151 題判斷型任務引擎**,七大類(故障搶修/監控判讀/預防保養/營運決策/天候處置/供應鏈人力/突發),多為取捨題+教學回饋+輔助圖(趨勢/頻譜/天氣雷達)。
- **192 題判斷型任務引擎**,七大類(故障搶修/監控判讀/預防保養/營運決策/天候處置/供應鏈人力/突發),多為取捨題+教學回饋+輔助圖(趨勢/頻譜/天氣雷達)。
- **圖鑑**(已修故障複習)、**課程模式**(教師指派某週故障、按週鎖計分主線)、知識點標籤,以及**雲端班級排行榜**(免費免後端,Google Apps Script Web App+伺服端防作弊);暱稱+班級碼登入、每人存檔獨立。
- **中英雙語**、人物對話系統、Web Audio 合成音效音樂。

Expand All @@ -53,8 +60,9 @@ npm install
npm run dev # http://localhost:5173
npm run build # 型別檢查 + 正式打包
npm run typecheck # tsc --noEmit
npm test # 免相依的遊戲邏輯測試(test/run.mjs)
npm test # 免相依的遊戲邏輯測試(test/run.mjs)— 154 項全綠
npm run sim # 平衡模擬器:passive / active / full-crew 三策略(test/sim.mjs)
npm run stress # 雲端排行榜後端的併發/負載模擬(test/stress.mjs)
```
CI(`.github/workflows/ci.yml`)於每個 PR 對 `main` 跑 `typecheck` + `test` + `build`。

Expand All @@ -66,7 +74,7 @@ src/
│ ├─ game.ts # 核心 reducer:經濟、SLA、機隊、計分
│ ├─ farms.ts # 4 座風場 × 每座 24 機組
│ ├─ events.ts / incidents.ts # 突發事件與故障型錄(戰情室)
│ ├─ tasks.ts # 151 題判斷型任務引擎
│ ├─ tasks.ts # 192 題判斷型任務引擎
│ └─ profile.ts / course.ts # 登入、班級碼、每週開放
├─ ui/
│ ├─ campaign.ts # 主線 7 關(四幕)
Expand Down
6 changes: 3 additions & 3 deletions STATUS.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ name_zh: 離岸風場・運維傳說
category: edtech
progress: 100
status: active
last_updated: "2026-07-02"
next_milestone: "出海決策支援與學習迴路閉環已完成:出海前工期預估vs天氣窗(航線/登船/檢查/維修+保留餘裕,含磨耗/疲勞/擇日/缺料提醒)、審慎返港再規劃(不計安全事件)+半途成果保留(#carry)、⚡加班搶修風險抉擇(#rush,快vs穩三選一)、任務復盤星級+一句takeaway、診斷連對streak(封頂XP加成+🔥里程碑)、錯題本主動回想(檢索練習)、無障礙(減少動態:系統偏好+遊戲內開關;色覺友善雙重編碼)、戰情室SLA季末風險+母港預算續航提醒、Pages部署來源鎖定GitHub Actions(configure-pages)。先前:循序漸進難度與長線動機已完成:運維層級 Tier 系統(依進度自動推進,故障/備品/經濟壓力分層)、入門引導+UI 漸進揭露、每日任務(遊戲內日曆)、每週主題挑戰(風暴/斷料週等,綁戰情室事件池)、情境包匯入(教師自訂題組)、真實度深化(jack-up 安裝船動員前置期+計畫性定期保養)、故障/備品分層擴充(25 故障/33 備品)、真實案例研究事件(經查核的真實風場事故,具名+出處/去識別兩類,Tier 偶發+母港案例檔)。併發壓力測試通過(npm run stress);雲端後端 v2.1 加併發鎖(LockService);PWA 可安裝/離線(手機網頁並存);教師面板 CSV 匯出;營運趨勢儀表板/賽後復盤;登入畫面教師入口;存檔版本化遷移;code-split(初始包 653KB→268KB);知識點掌握度(答題正確率+弱點補強建議);HSE 科別加厚(LOTO 能量隔離/高處墜落防護/SIMOPS 同時作業,含圖鑑+鑑別診斷+戰情室事件);直升機進場與電網限電真實運維權衡判斷任務(159 題);真實/擬真案例擴充至 24 則,並可在自由營運中心任務清單以『案例演練』自然出現(略過 Tier、答後揭示 O&M 教訓並收錄圖鑑);手機直向專屬精簡版面(母港+交易所+出海+維修+所有彈窗,自動偵測裝置;PWA 快取版本化+錯誤邊界+啟動安全網防更新後空白);學習成效分析(各科別能力雷達圖 + 錯題本/維修檢討反思);母港建設視覺成長(用獲利升級碼頭/倉儲/起重機/燈塔,母港畫面隨之長大,純視覺不影響計分);新手友善漸進式揭露(Tier 1 隱藏三日預報/技師疲勞細節,Tier 2 解鎖)+ 圖鑑生活化比喻 + 戲劇性非技術事件(環團/媒體/社區/稽查)。後續延伸候選:掌握度同步雲端供教師端個別鑽取、獨立測驗模式(Exam Mode)、母港視覺疊到實景背景"
last_updated: "2026-07-08"
next_milestone: "出海決策支援與學習迴路閉環已完成:出海前工期預估vs天氣窗(航線/登船/檢查/維修+保留餘裕,含磨耗/疲勞/擇日/缺料提醒)、審慎返港再規劃(不計安全事件)+半途成果保留(#carry)、⚡加班搶修風險抉擇(#rush,快vs穩三選一)、任務復盤星級+一句takeaway、診斷連對streak(封頂XP加成+🔥里程碑)、錯題本主動回想(檢索練習)、無障礙(減少動態:系統偏好+遊戲內開關;色覺友善雙重編碼)、戰情室SLA季末風險+母港預算續航提醒、Pages部署來源鎖定GitHub Actions(configure-pages)。內容系統全面查核與修正(事件/案例/任務/故障×消費端交叉驗證):每日任務維持型項目改日結算(deferred,修正開局白拿)、安全事件數夾0(堵刷分漏洞)、備品資料誤植修正(感測器/變槳故障)、交易所主線防卡(進行中工單備品永遠可見)、移除3組重複任務模板、案例研究資料誤植修正;判斷型任務引擎擴充至192題。先前:循序漸進難度與長線動機已完成:運維層級 Tier 系統(依進度自動推進,故障/備品/經濟壓力分層)、入門引導+UI 漸進揭露、每日任務(遊戲內日曆)、每週主題挑戰(風暴/斷料週等,綁戰情室事件池)、情境包匯入(教師自訂題組)、真實度深化(jack-up 安裝船動員前置期+計畫性定期保養)、故障/備品分層擴充(25 故障/33 備品)、真實案例研究事件(經查核的真實風場事故,具名+出處/去識別兩類,Tier 偶發+母港案例檔)。併發壓力測試通過(npm run stress);雲端後端 v2.1 加併發鎖(LockService);PWA 可安裝/離線(手機網頁並存);教師面板 CSV 匯出;營運趨勢儀表板/賽後復盤;登入畫面教師入口;存檔版本化遷移;code-split(初始包 653KB→268KB);知識點掌握度(答題正確率+弱點補強建議);HSE 科別加厚(LOTO 能量隔離/高處墜落防護/SIMOPS 同時作業,含圖鑑+鑑別診斷+戰情室事件);直升機進場與電網限電真實運維權衡判斷任務;真實/擬真案例擴充至 24 則,並可在自由營運中心任務清單以『案例演練』自然出現(略過 Tier、答後揭示 O&M 教訓並收錄圖鑑);手機直向專屬精簡版面(母港+交易所+出海+維修+所有彈窗,自動偵測裝置;PWA 快取版本化+錯誤邊界+啟動安全網防更新後空白);學習成效分析(各科別能力雷達圖 + 錯題本/維修檢討反思);母港建設視覺成長(用獲利升級碼頭/倉儲/起重機/燈塔,母港畫面隨之長大,純視覺不影響計分);新手友善漸進式揭露(Tier 1 隱藏三日預報/技師疲勞細節,Tier 2 解鎖)+ 圖鑑生活化比喻 + 戲劇性非技術事件(環團/媒體/社區/稽查)。後續延伸候選:bearing類故障備品命名/Tier重新設計、crew_shortage/strike事件實效化、掌握度同步雲端供教師端個別鑽取、獨立測驗模式(Exam Mode)、母港視覺疊到實景背景"
technologies:
- React
- TypeScript
Expand All @@ -16,4 +16,4 @@ outputs:
- presentation
description: "An Uncharted-Waters-style educational game for offshore wind O&M training."
description_zh: "大航海時代風格、以離岸風電運維為核心的教學遊戲。"
key_metrics: "四畫面UI+三模式背景(模擬/實境/漫畫)+俯瞰60°、159題判斷型任務引擎(7類,含直升機進場/電網限電權衡)+情境包匯入、雙層架構(計分主線+無限沙盒)、運維層級Tier循序漸進難度、每日任務+每週主題挑戰、25故障/33備品分層(含HSE:LOTO/墜落防護/SIMOPS)、jack-up動員+計畫保養、多風場+突發事件+安全KPI、知識點掌握度(正確率+弱點補強)、學號帳號+通關碼(後端驗證)+雲端為主存檔/紀錄、15項成就+個人檔案頁、教師檢視面板、雲端班級排行榜(Apps Script,併發壓測通過)、每週開放、中英雙語"
key_metrics: "四畫面UI+三模式背景(模擬/實境/漫畫)+俯瞰60°、192題判斷型任務引擎(7類,含直升機進場/電網限電權衡)+情境包匯入、雙層架構(計分主線+無限沙盒)、運維層級Tier循序漸進難度、每日任務(維持型日結算)+每週主題挑戰、出海決策支援(工期預估/半途成果保留/加班搶修)、25故障/33備品分層(含HSE:LOTO/墜落防護/SIMOPS)、jack-up動員+計畫保養、多風場+突發事件+安全KPI、知識點掌握度(正確率+弱點補強)+錯題本主動回想、無障礙(減少動態+色覺友善)、學號帳號+通關碼(後端驗證)+雲端為主存檔/紀錄、15項成就+個人檔案頁、教師檢視面板、雲端班級排行榜(Apps Script,併發壓測通過)、每週開放、中英雙語"
Loading
Loading