一款單人 Roguelike 卡牌探索遊戲,玩家透過路徑選擇、資源管理、骰子判定來深入多層結構的關卡,最終擊敗 Boss 獲得勝利。
策略決策 :在有限資訊下做出路徑與資源分配選擇
風險管理 :平衡前進速度與資源消耗
隨機挑戰 :每局遊戲的關卡配置不同,提供重玩性
成長感 :角色在單局內逐漸變強
主題無關性 :機制與主題分離,支援未來換皮
素材可抽換 :所有視覺元素可替換
規則資料驅動 :遊戲數值透過設定檔控制,非硬編碼
遊戲 (Game)
└── 層 (Floor) × N(預設 4 層)
└── 區域 (Area) × M(每層可配置)
└── 節點 (Node) × 8(固定,二元樹狀路徑)
└── 事件 (Event)
遊戲包含多個層,層數可配置(預設 4 層)
每層有獨立名稱與視覺主題(可換皮)
層級越深,難度係數越高
每層最後一個區域結束時出現 Boss
每個區域包含固定 9 個節點
節點以 3×3 網格排列,形成二元分支路徑
玩家從左上角進入,右下角離開
離開區域時強制消耗「維持資源」
[1] ──→ [2] ──→ [3]
│ │ │
↓ ↓ ↓
[4] ──→ [5] ──→ [6]
│ │ │
↓ ↓ ↓
[7] ──→ [8] ──→ [出口]
玩家只能向右或向下移動
不可回頭
8 個節點中必經 4 個
屬性
識別碼
說明
初始值
最大值
生命值
hp
歸零則遊戲失敗
角色設定
角色設定
護甲
armor
減免受到的傷害
角色設定
可配置
經驗值
xp
累積升級,增加骰子數
0
可配置
維持資源
supply
每次深入消耗,無則扣 HP
角色設定
可配置
貨幣
currency
交易媒介
角色設定
無上限
經驗值達到門檻時自動升級
升級增加可用骰子數量
等級門檻可配置
等級 1: 0 XP, 1 顆骰
等級 2: N XP, 2 顆骰
等級 3: M XP, 3 顆骰
...
達到最大等級後,獲得的 XP 轉換為 HP(轉換率可配置)
玩家最多持有 K 個消耗品(預設 2)
同類型消耗品不可重複持有
可主動丟棄以騰出空間
消耗品類型 :
類型
識別碼
使用時機
效果
攻擊型 A
consumable_atk_a
戰鬥中
增加固定傷害
攻擊型 B
consumable_atk_b
戰鬥中
使敵人暈眩 1 回合
攻擊型 C
consumable_atk_c
戰鬥中
敵人持續掉血
防禦型 A
consumable_def_a
任意時機
恢復 HP
防禦型 B
consumable_def_b
任意時機
解除所有負面狀態
防禦型 C
consumable_def_c
檢定前
自動通過檢定
狀態
識別碼
效果
解除方式
減值狀態
debuff_reduce
所有骰子結果 -1
特定消耗品、事件
持續傷害
debuff_dot
每次擲骰損失 HP
特定消耗品、事件
資訊遮蔽
debuff_blind
無法預覽下一個節點
特定消耗品、事件
每種負面狀態最多 1 層,不可疊加
負面狀態以「加入負面骰」方式實現
類型
用途
角色骰
玩家擲出,用於檢定與戰鬥
事件骰
決定事件結果分支
負面骰
負面狀態觸發時加入骰池
面值
數值
特殊效果
1
0
失誤,無效
2
2
-
3
3
-
4
4
-
5
5
檢定成功符號
6
6
檢定成功符號 + 爆擊(可重擲累加)
1. 擲出所有角色骰 + 事件骰 + 負面骰(如有)
2. 處理負面骰效果
3. 檢查是否有任一角色骰顯示成功符號(5 或 6)
- 有 → 檢定成功
- 無 → 檢定失敗
4. 依據事件骰結果查表,獲得對應獎勵或懲罰
戰鬥中可消耗資源重擲骰子
消耗選項:XP 或 HP(數值可配置)
每顆骰每回合限重擲一次
重擲後結果強制接受(除非觸發爆擊)
初始化:設定敵人 HP(依當前層級查表)
迴圈:
1. 玩家攻擊階段
a. 擲骰(角色骰 + 負面骰 + 事件骰)
b. 處理負面骰效果
c. 移除失誤骰(值 ≤ 1)
d. 處理爆擊(值 = 6 可重擲累加)
e. 可執行重擲 (Feat)
f. 加總傷害,扣除敵人 HP
g. 可使用攻擊型消耗品
2. 檢查敵人是否死亡 → 是則結束,獲得獎勵
3. 敵人攻擊階段
a. 查看事件骰結果
- 1: 未命中
- 2-5: 命中,傷害 = 敵人攻擊力 - 玩家護甲
- 6: 命中且無視護甲
b. 若命中,觸發敵人特殊能力(如有)
4. 檢查玩家是否死亡 → 是則遊戲結束
重複直到一方 HP ≤ 0
屬性
說明
HP
依層級不同,查表決定
攻擊力
依層級不同,查表決定
特殊能力
可選,命中後觸發
敵人特殊能力類型 :
能力
識別碼
效果
施加減值
ability_debuff_reduce
命中後給予減值狀態
施加持續傷害
ability_debuff_dot
命中後給予持續傷害狀態
施加資訊遮蔽
ability_debuff_blind
命中後給予資訊遮蔽狀態
無視護甲
ability_ignore_armor
攻擊無視護甲
削弱
ability_weaken
命中後扣除玩家 XP
類型
識別碼
機制模式
戰鬥
event_combat
骰子戰鬥
Boss 戰鬥
event_boss
強化版戰鬥,可多階段
檢定獎勵
event_check_reward
成功得獎勵,失敗無事
檢定風險
event_check_risk
成功得獎勵,失敗受罰
純隨機
event_random
擲事件骰決定結果
資源轉換
event_convert
消耗 A 得 B
商店
event_shop
買賣交易
休息
event_rest
多選一恢復
遭遇敵人,進入戰鬥流程
敵人數值依當前層級查表
勝利後獲得獎勵(依層級查表)
每層最後必定出現
可設定多階段(每階段獨立 HP)
階段間不延續狀態效果
擊敗後獎勵較豐厚
檢定獎勵事件 (event_check_reward)
執行技能檢定
├── 成功 → 依事件骰查表獲得獎勵
└── 失敗 → 無事發生
適用場景:寶箱、搜索
檢定風險事件 (event_check_risk)
執行技能檢定
├── 成功 → 依事件骰查表獲得獎勵,可 ±1 調整結果
└── 失敗 → 依事件骰查表承受懲罰
適用場景:陷阱、墳墓
擲事件骰 → 查表決定結果(好壞皆有可能)
可選:消耗貨幣將結果 +1
適用場景:神殿、祭壇
適用場景:餵食靈獸獲得技能
顯示可購買物品清單
可買可賣(賣價 < 買價)
交易非強制
商品類型 :
商品
買價
賣價
效果
小型恢復
可配置
-
立即 +N HP
中型恢復
可配置
-
立即 +M HP
解除狀態
可配置
-
移除所有負面狀態
護甲
可配置
可配置
+1 護甲
消耗品
可配置
可配置
獲得指定消耗品
選項類型 :
選項
效果
恢復
+N HP
補給
+M 維持資源
修練
+K XP
每個角色包含:
欄位
說明
識別碼
唯一 ID
名稱
顯示名稱(可換皮)
圖像
角色圖(可換皮)
初始 HP
起始生命值
最大 HP
生命上限
初始護甲
起始護甲
初始維持資源
起始 supply
初始貨幣
起始金錢
戰鬥技能
戰鬥中使用的主動技能
探索技能
非戰鬥時使用的主動技能
每個角色有 2 個技能:戰鬥技能 + 探索技能
技能使用後進入冷卻,需透過休息事件刷新
戰鬥技能取代該回合的攻擊
預設技能範例 :
技能
類型
效果
連擊
戰鬥
本次攻擊傷害加倍
元素爆發
戰鬥
使用任一攻擊型消耗品效果(不消耗)
預知
探索
翻開最多 3 張未知節點
閃避
探索
跳過當前節點不解決
準備階段:
1. 生成 8 個節點(從事件池隨機抽取)
2. 排列為 4×2 網格
3. 若當前區域需出現 Boss,放置於出口位置
4. 翻開起點節點
5. 放置玩家於起點
探索階段(重複):
1. 解決當前節點事件
2. 翻開下兩個可選節點(右方 + 下方)
- 若有資訊遮蔽狀態,不翻開
3. 玩家選擇移動方向
4. 移動至新節點
5. 若到達出口,結束探索階段
深入階段:
1. 消耗 1 維持資源
- 若無維持資源,改為損失 HP(數值可配置)
2. 刷新角色技能
3. 前進至下一區域
- 若已是最後區域,進入下一層
- 若已是最後一層最後區域,遊戲勝利
條件
結果
玩家 HP ≤ 0
遊戲失敗
擊敗最終 Boss
遊戲勝利
玩家可開始新遊戲
選擇角色(從已解鎖角色中)
初始化所有資源與狀態
顯示當前區域的節點網格
標示玩家位置
標示已探索/未探索節點
顯示可移動方向
依據節點事件類型顯示對應 UI
執行事件邏輯
更新玩家資源狀態
視覺化擲骰動畫
顯示每顆骰子結果
支援重擲操作
計算並顯示總結果
顯示敵人資訊(HP、攻擊力、特殊能力)
執行攻擊階段
執行敵人攻擊階段
顯示傷害數值
支援使用消耗品
支援使用技能
即時顯示所有資源數值
顯示消耗品列表
顯示負面狀態
支援消耗品使用與丟棄
顯示技能狀態(可用/冷卻中)
執行技能效果
技能冷卻管理
每次狀態變更後自動存檔
存檔內容:
當前層/區域/節點位置
玩家所有資源狀態
已探索節點狀態
當前區域的節點配置
遊戲進行時間
啟動遊戲時檢查是否有存檔
提供繼續遊戲選項
完整還原遊戲狀態
記錄每局遊戲結果
使用角色
最終結果(勝/敗)
死亡原因(若失敗)
到達層級/區域
遊戲時長
擊殺敵人數
獲得總 XP/貨幣
總遊戲次數
勝率
各角色使用次數與勝率
最高紀錄(最快通關、最高傷害等)
此章節為 SDD 銜接用,定義核心資料實體
ThemePack
├── id: String
├── name: String
├── floors: List<FloorConfig>
├── enemies: List<EnemyConfig>
├── bosses: List<BossConfig>
├── events: List<EventConfig>
├── consumables: List<ConsumableConfig>
├── characters: List<CharacterConfig>
└── assets: AssetMapping
FloorConfig
├── id: String
├── name: String
├── order: Int
├── areaCount: Int
├── difficultyMultiplier: Float
└── bossId: String
EnemyConfig
├── id: String
├── name: String
├── imageKey: String
├── hpByFloor: Map<Int, Int>
├── damageByFloor: Map<Int, Int>
├── rewardXpByFloor: Map<Int, Int>
├── abilities: List<AbilityId>
└── isBoss: Boolean
EventConfig
├── id: String
├── type: EventType
├── name: String
├── imageKey: String
├── weight: Int (抽取權重)
└── config: EventTypeSpecificConfig
4.1.5 消耗品設定 (ConsumableConfig)
ConsumableConfig
├── id: String
├── name: String
├── imageKey: String
├── category: ConsumableCategory (攻擊/防禦)
├── useTiming: UseTiming (戰鬥中/任意/檢定前)
└── effect: EffectConfig
4.1.6 角色設定 (CharacterConfig)
CharacterConfig
├── id: String
├── name: String
├── imageKey: String
├── initialHp: Int
├── maxHp: Int
├── initialArmor: Int
├── initialSupply: Int
├── initialCurrency: Int
├── combatSkill: SkillConfig
└── exploreSkill: SkillConfig
GameState
├── currentFloor: Int
├── currentArea: Int
├── currentNode: Int
├── playerState: PlayerState
├── areaState: AreaState
├── gameStatus: GameStatus (進行中/勝利/失敗)
└── statistics: RunStatistics
PlayerState
├── characterId: String
├── hp: Int
├── maxHp: Int
├── armor: Int
├── xp: Int
├── level: Int
├── supply: Int
├── currency: Int
├── consumables: List<ConsumableId>
├── debuffs: List<DebuffId>
├── combatSkillAvailable: Boolean
└── exploreSkillAvailable: Boolean
AreaState
├── nodes: List<NodeState> (8 個)
├── visitedNodes: Set<Int>
└── revealedNodes: Set<Int>
NodeState
├── position: Int (0-7)
├── eventId: String
└── resolved: Boolean
SaveData
├── id: String
├── timestamp: DateTime
├── gameState: GameState
└── playTime: Duration
GameRecord
├── id: String
├── timestamp: DateTime
├── characterId: String
├── result: GameResult (勝/敗)
├── finalFloor: Int
├── finalArea: Int
├── playTime: Duration
├── enemiesDefeated: Int
├── totalXpGained: Int
├── totalCurrencyGained: Int
└── deathCause: String? (若失敗)
畫面
識別碼
說明
標題畫面
screen_title
遊戲入口
角色選擇
screen_character_select
新遊戲時選角
主遊戲畫面
screen_game
探索與事件解決
戰鬥畫面
screen_combat
戰鬥專用
商店畫面
screen_shop
商店交易
暫停選單
screen_pause
遊戲內選單
遊戲結束
screen_game_over
顯示結果
紀錄總覽
screen_records
歷史紀錄與統計
設定畫面
screen_settings
遊戲設定
[標題畫面]
├── 新遊戲 → [角色選擇] → [主遊戲畫面]
├── 繼續遊戲 → [主遊戲畫面]
├── 紀錄 → [紀錄總覽]
└── 設定 → [設定畫面]
[主遊戲畫面]
├── 遭遇戰鬥事件 → [戰鬥畫面] → 返回
├── 遭遇商店事件 → [商店畫面] → 返回
├── 暫停 → [暫停選單]
│ ├── 繼續 → 返回
│ └── 放棄 → [標題畫面]
├── HP 歸零 → [遊戲結束] (失敗)
└── 擊敗最終 Boss → [遊戲結束] (勝利)
[遊戲結束]
└── 確認 → [標題畫面]
所有顯示文字支援多語系 / 主題替換
所有圖片資源透過 key 映射,支援整包替換
遊戲數值透過設定檔載入,非硬編碼
存檔資料加密儲存(防止簡易修改)
存檔損壞時提供清除選項
供換皮時參考,以下為機制術語與預設顯示名稱對照
機制術語
預設顯示名稱
說明
hp
生命值
玩家生命
armor
護甲
傷害減免
xp
經驗值
升級用
supply
補給
維持資源
currency
金幣
交易貨幣
debuff_reduce
虛弱
骰子減值
debuff_dot
中毒
持續傷害
debuff_blind
迷惑
無法預覽
consumable
道具
消耗品統稱
feat
奮力一擊
重擲機制
floor
層
大區域
area
區域
中區域
node
房間
事件節點
以下數值供參考,實際由設定檔決定
等級
累計 XP
骰子數
1
0
1
2
6
2
3
12
3
4
18
4
5
24
5
6 (Max)
30
6