目標
將「企鵝搶地」遊戲從獨立網頁版遷移至 Discord Activity,讓玩家可以直接在 Discord 頻道中遊玩。
詳細技術文件:docs/milestones/001/README.md
驗收標準
MVP 功能範圍
效能與體驗
完成的定義
變更範圍
前端變更
刪除項目
新增項目
重構項目
後端配合(需確認)
不變更項目
實作取捨
通訊架構
開發順序
雙軌並存
預載入機制
樂觀更新
風險評估
| 風險項目 |
影響程度 |
緩解措施 |
六邊形網格硬編碼 105px |
中 |
使用 CSS transform: scale() 或改為 CSS 變數 |
| 動畫與狀態耦合 |
高 |
重構時分離動畫層與狀態層 |
| 後端開發進度不同步 |
高 |
先用 Mock API 開發,定義好介面 |
| Discord SDK 學習曲線 |
低 |
官方文件完整,有範例專案 |
執行階段建議
Phase 1: 重構解耦
├── 抽出 Command 層
├── 抽出通訊適配器
└── 將事件處理從 View 移至 Composable
Phase 2: 平台接入
├── 整合 Discord SDK
├── 實作 V2 驗證流程
└── AutoResizer 元件
Phase 3: 簡化遊戲流程
├── 一頻一房邏輯
└── 座位系統
Phase 4: 通訊層替換(若選擇 Firestore/Supabase)
├── 引入即時資料庫監聽
└── 實作樂觀更新機制
待確認事項
後端相關
產品相關
設計相關
目標
將「企鵝搶地」遊戲從獨立網頁版遷移至 Discord Activity,讓玩家可以直接在 Discord 頻道中遊玩。
驗收標準
MVP 功能範圍
效能與體驗
完成的定義
變更範圍
前端變更
刪除項目
HomeView.vue的大廳 UI(房間列表、建立房間)LobbyChannel訂閱邏輯@rails/actioncable依賴(若完全改用即時資料庫)新增項目
@discord/embedded-app-sdk)useRoomCommands,useGameCommands)重構項目
channel.send()呼叫抽象為 Command 函數105px硬編碼改為響應式後端配合(需確認)
/v2/auth端點(Discord OAuth2 Token 交換)不變更項目
useGame.js)IcePasture.vue,PlayerAvatar.vue等)實作取捨
通訊架構
開發順序
雙軌並存
預載入機制
樂觀更新
風險評估
105pxtransform: scale()或改為 CSS 變數執行階段建議
待確認事項
後端相關
/v2/auth端點?產品相關
設計相關