🔔 Bladewake GDD
Trang chủ › Tài liệu & Lộ trình › README — GDD đầy đủ
📚 Tài liệu & Lộ trình

README — GDD đầy đủ

Cập nhật: 2026-11-07

1Giới thiệu & bản đồ tài liệu

📌
Trạng thái: canon 1.0, 2026-11-07. Thư mục: GDD/Full/. Ngôn ngữ: tiếng Việt có dấu; id/field/identifier giữ tiếng Anh.
Độ dài từng mục (nghìn ký tự)Độ dài từng mục (nghìn ký tự)1. GDD này là gì1. GDD này là gì: 0.8k0.8k2. Thứ bậc canon2. Thứ bậc canon: 0.7k0.7k3. Mục lục tài liệu (docs/)3. Mục lục tài liệu (docs/): 3.3k3.3k4. Mục lục dữ liệu (data/)4. Mục lục dữ liệu (data/): 2.3k2.3k5. Công cụ (tools/) và bản render5. Công cụ (tools/) và bản render: 0.7k0.7k6. Bản đồ phụ thuộc hệ thống6. Bản đồ phụ thuộc hệ thống: 1.6k1.6k7. Thứ tự đọc theo vai7. Thứ tự đọc theo vai: 0.9k0.9k8. Kiểm tra, kiểm toàn vẹn, dựng (chạy…8. Kiểm tra, kiểm toàn vẹn, dựng (chạy từ gốc repo): 1.3k1.3k9. Đổi canon9. Đổi canon: 0.8k0.8k
Bấm tên mục để nhảy tới mục đó.
Mục lục chi tiết (## và ###)

21. GDD này là gì

  • Tài liệu thiết kế toàn bộ game Bladewake 1.0: action roguelite hack & slash, pixel art góc nhìn 3/4 từ trên xuống (pixelfx), bầy 150–250 kẻ địch, PC Steam trước (premium), tay cầm trước + bàn phím/chuột đủ, Steam Deck.
  • Mục tiêu: đội người + agent AI dựng được cả game không cần hỏi lại — mọi luật, số, id, asset, âm thanh, UI, kiểm thử đều có ở đây.
  • Cấu trúc 3 lớp:
    • docs/*.md — luật viết tay (vì sao, công thức, quy trình, bảng tham chiếu).
    • data/**/*.json — nguồn sự thật duy nhất cho mọi số/id/nội dung; kiểm bằng tools/schema/*.schema.json (draft 2020-12, additionalProperties: false).
    • Bản render (không sửa tay): docs/generated/, data/_unity/, data/_merged.json, site/, Design/ArtSpecs/.
  • GDD demo (GDD/*.md, GDD/Data/*.csv) là lịch sử — Full thắng khi lệch.

32. Thứ bậc canon

  1. docs/00-Design-Bible.md + data/_bible.json (id, tên, số canon; prose ≠ JSON → bug, sửa cả hai cùng lượt, số/id theo JSON).
  2. Doc nền: 01, 10–17, 20, 30–32, 51.
  3. Dữ liệu nội dung data/**/*.json và các doc còn lại (18, 19, 21, 23, 40–43, 50, 60).
  4. Phán đoán của người/agent — chỉ khi 3 tầng trên im lặng, và phải ghi dòng quyết định (§8).

Thuật ngữ khoá (tên Bible thắng): Khăn Tang / Độ Tang Tro Dày MRN01–Tro Sống MRN15 · Act Mutator Trăng Tro MUT01–Gương Tro MUT12 · Dạng Rèn (aspect) · Dư Âm (ULT_GAUGE) · phòng thủ = chạm ĐÁP + verb giữ riêng của hero · Then Chốt = Edge E37–E40 · trạng thái STS_<NAME> · trạm hub ST_<NAME> · đòn địch mang adaptive_source BASE|ASH.

43. Mục lục tài liệu (docs/)

FileMục đích
00-Design-Bible.mdCanon: logline, trụ cột, INV-01..INV-18, cấu trúc run, meta, độ khó, roster 12 hero, kiến trúc nâng cấp, biome/kẻ địch, Tro Nhớ, truyện, ngân sách mốc, quy ước ID (§11), nhật ký quyết định (§12)
01-Roadmap.mdLộ trình 2026-11 → 1.0 Steam → console/mobile: mốc, phạm vi theo ID, KPI thoát mốc, rủi ro, công sức
10-Combat-Core.mdLõi chiến đấu: tick 60 Hz, hitbox, chỉ số, công thức sát thương, Thế/khựng/đẩy, STS_, cảm giác trúng đòn, i-frame
11-Defense-Tells.mdPhòng thủ & tell: ngôn ngữ tell vàng/tím/không màu, loại đạn, hợp đồng ĐÁP/verb giữ/Lướt/Né Hoàn Hảo/Phản, luật công bằng
12-Hero-Framework.mdHợp đồng hero H01–H12: bản đồ nút, kit, tài nguyên, kỹ năng/ult/Dạng Rèn, Thông Thạo, frame data/huỷ đòn, mechanics (§9–§10)
13-Upgrades-Builds.mdNâng cấp trong run: draft, thuật toán chào thẻ, Edge, Then Chốt, Cộng Hưởng, Tiến Hoá, Relic, affix, mẫu câu thẻ
14-Adaptive-AI.mdAI kẻ địch S/M/L/XL + Tro Nhớ (AshMemory): hồ sơ PSP A01–A12, MICRO/MESO/MACRO, thế đáp _CV
15-Horde-Director-Encounters.mdĐạo diễn bầy: ngân sách đe doạ (TP), mẫu spawn, mục tiêu phòng, trần mật độ/hiệu năng, kịch bản sóng
16-Run-Structure-Map.mdCấu trúc run: bộ sinh bản đồ mỗi Hồi, 11 loại nút, thưởng, hồi phục, thời lượng, seed
17-Economy-Balance.mdKinh tế & cân bằng: đường cong sức mạnh, XP, phong bì hero, ngân sách đòn/kẻ địch, tiền tệ — số kiểm bằng balance_calc.py
18-Meta-Hub-Progression.mdVòng meta: hub HUB_BELL_TOWER, 8 trạm ST_, Phục Dựng GD1–GD5, UP_*, Lễ Vật LV01–LV06, mở khoá, Thông Thạo
19-Difficulty-Modes.mdKhăn Tang MRN01–MRN15, Act Mutator MUT01–MUT12, Ấn Tinh Anh EM01–EM16, 5 mode, Thương Xót
20-World-Lore.mdLore Xứ Vọng: lịch sử, địa lý, phe, phản diện, gốc 12 Kẻ Thức, NPC, quy ước đặt tên
21-Story-Narrative.mdTruyện trong roguelite: cờ FLAG_, StoryDirector, cảnh, 3 kết END_, điểm cắm thoại/codex
23-World-Map-Hub.mdBản đồ thế giới + hub Tháp Chuông Gãy: sơ đồ ô, vị trí trạm/NPC, palette, tiến hoá theo Phục Dựng
30-Art-Direction.mdArt direction: camera & tỉ lệ pixel, sở hữu màu (INV-01), viền/bóng/ánh sáng, mẫu actor/tile/prop, pipeline pixelfx
31-VFX-Bible.mdVFX: đọc được giữa bầy, phép chiếu 3/4, ngôn ngữ thời gian, hạng cỡ, ngân sách hiệu năng, VFX_<ownerId>_<slug>
32-Audio-Bible.mdÂm thanh & nhạc: SFX, mix, LUFS, danh sách cue MUS_ (§3), bark, nhạc thích nghi, nối Unity
40-UI-UX-HUD.mdUI/UX & HUD: UI kit, token màu, font tiếng Việt, mọi màn hình, HUD trong bầy, điều hướng
41-Controls-Camera.mdInput & camera: action map, bảng nút 4 thiết bị, ngắm, buffer, remap, glyph, camera pixel
42-Accessibility-Options.mdMọi tuỳ chọn người chơi: khoảng, mặc định, hệ chạm tới (mù màu, nhạy sáng, phụ đề, vận động, Thương Xót)
43-Steam-Platform.mdSteam: trang cửa hàng, demo/Next Fest, Early Access, thành tựu, stats/leaderboard, cloud, Deck
50-Tech-Architecture.mdKiến trúc Unity 6: module, đường dữ liệu JSON → Unity, lưu/di trú, hiệu năng 250 quái, tất định seed
51-Data-Schema.mdHợp đồng dữ liệu: bản đồ file (§1), quy ước ID (§2), chữ (§3), bảng field (§4), tham chiếu chéo (§5), render CSV (§8)
60-QA-Telemetry-Playtest.mdQA, telemetry, playtest, chứng nhận: chiến lược test theo mốc, giao thức playtest, dashboard, cổng mốc
generated/Bản render từ JSON (INDEX.md, heroes/, enemies/, bosses/, catalogs/) — chỉ để đọc, không sửa

54. Mục lục dữ liệu (data/)

Chi tiết field: doc 51 §4. Chỉ sửa JSON; tệp/thư mục bắt đầu bằng _ (trừ _bible.json) là render/nháp.

File / thư mụcMục đích
_bible.jsonCanon máy đọc: id, tên, số lượng, số khoá (chỉ đọc; đổi = DEC)
tuning.jsonNúm tinh chỉnh theo section (combat, defense, draft, director, ai, ash, run, economy, meta, platform, audio, vfx…)
curves.jsonĐường cong CRV_ (XP, hệ số Hồi, sức mạnh, HP/sát thương địch, may rarity, vàng, Thông Thạo)
mechanics.jsonTừ vựng đóng mechanic/mechanic_key: trigger, primitive, lãnh thổ 12 hero (doc 12 §9–§10)
statuses.json · tags.json · psp_axes.json12 trạng thái STS_ · tag verb + sub-tag · 12 trục lối chơi A01–A12
currencies.json4 tiền tệ CUR_: nguồn, đích, nhân theo mode
heroes/H01..H12.jsonKit từng hero: chỉ số, tài nguyên, đòn, 8 kỹ năng, 3 ult, 3 Dạng Rèn, Thông Thạo, phòng thủ
hero_upgrades/H01..H12.json40 Edge/hero (E37–E40 Then Chốt), 6 Cộng Hưởng, 4 Tiến Hoá
shared_edges.json · shared_resonances.jsonEdge chung SE001–SE072 · Cộng Hưởng chung SRS01–SRS11
relics.json · affixes.jsonRelic RL001–RL060 · affix AF01–AF24
elite_modifiers.jsonẤn Tinh Anh EM01–EM16
enemies/B1,B2,B3,B4,B6.jsonQuái thường EN_ + Tinh Anh EL_ theo biome, kèm đòn _Ann
bosses/*.json7 mini-boss MB_, 4 boss Hồi Người Gác Chuông BS_B1–Thống Lĩnh Yvra & Rồng Khàn BS_B4, Vua Dravos, Mũ Chuông BS_FINAL, Cái Lặng BS_TRUE
biomes/B1..B6.json · biomes/HUB.jsonMôi trường, palette, tile, prop, hazard, phòng, landmark, ambience, nhạc
encounters.jsonMục tiêu, mẫu spawn, hồ sơ Director, bảng TP, wave_scripts[]
run_map.json6 Hồi (I..VI; V = Kết B5, VI = Bí mật B6), lưới, loại nút, khuôn làn, bảng thưởng, giá Sạp
events.jsonSự kiện EVT_<Bn>_nn
mourning_bands.json · mutators.json · modes.jsonKhăn Tang MRN01–MRN15 · Act Mutator MUT01–MUT12 · 5 mode
meta.jsonHub, 8 trạm, Phục Dựng, UP_*, Lễ Vật, nút mở khoá, Thông Thạo, cờ, kinh tế meta
npcs.json · dialogue.json · endings.json · codex.json7 NPC + arc · thoại DLG_ · 3 kết END_ · trang codex CDX_
music.jsonCue MUS_ + leitmotif LM_ (danh sách doc 32 §3)
achievements.json60 thành tựu ACH_
av/<OwnerId>[__<part>].jsonSpec nghe-nhìn của 1 chủ: actor, env asset, vfx[], sfx[], barks[] (hero, EN_B*, MB_, BS_, ENV_*, SHARED, UI)
_unity/Render cho Unity (CSV/JSON: đòn hero, Edge, đòn địch, Director, run map, audio, PlatformTuning) — doc 51 §8
_merged.jsonToàn bộ data gộp 1 file (render)

65. Công cụ (tools/) và bản render

FileMục đích
validate.pyKiểm schema + nội file + tham chiếu chéo + coverage + từ cấm (doc 51 §6)
audit_gdd.pyCổng toàn vẹn G01–G13: schema, ids, refs, av coverage, counts, mechanic uniqueness, tells, palettes, economy, banned terms, text, build, balance
balance_calc.pyMáy tính cân bằng doc 17 (xp, power, heroes, skill, enemy, enemies, gold, meta, hours, rarity, director) + --check-data
build_gdd.pyJSON → docs/generated/*.md, data/_unity/*, Design/ArtSpecs/, data/_merged.json
build_site.py · site/ · check_site.pyDựng web tĩnh GDD/Full/site/ (API module: tools/site/API.md) · kiểm site trước khi phát hành
schema/*.schema.jsonSchema từng loại file (common.schema.json = kiểu dùng chung)

76. Bản đồ phụ thuộc hệ thống

                 00 Design Bible + data/_bible.json  (canon)
                                  |
     +-------------+--------------+-------------+--------------+
     |             |              |             |              |
  01 Roadmap   51 Data Schema  20 Lore      30 Art Dir     50 Tech Arch
     |          (schema/*)       |             |              |
     |             |          21 Story      31 VFX        41 Controls
     |             |          23 Map/Hub    32 Audio       42 Access.
     |             |             |             |           43 Steam
     |      10 Combat Core ------+-------------+
     |        |        |
     |  11 Defense   12 Hero Framework -- mechanics.json
     |   Tells         |
     |        \        |
     |     13 Upgrades/Builds -- 17 Economy/Balance (balance_calc.py)
     |              |                 |
     |     14 Adaptive AI -----> 15 Horde Director/Encounters
     |              |                 |
     |              +----> 16 Run Structure/Map
     |                          |
     |                 18 Meta/Hub <-> 19 Difficulty/Modes
     |                          |
     +------------------> 40 UI/UX/HUD
                                |
                     60 QA/Telemetry/Playtest (kiểm mọi tầng)

 data/**/*.json --validate/audit--> build_gdd.py --> docs/generated, data/_unity, Design/ArtSpecs
                                    build_site.py --> site/

Đọc: đường đi xuống = doc dưới phụ thuộc doc trên. Mỗi doc ghi đủ phụ thuộc ở dòng Phụ thuộc đầu file.

87. Thứ tự đọc theo vai

VaiThứ tự đọc
Designer (gameplay/nội dung)00 → 10 → 11 → 12 → 13 → 17 → 14 → 15 → 16 → 19 → 18 → 51 → file data của mảng mình
Lập trình viên gameplay00 (§1 INV, §11 ID) → 50 → 51 → 10 → 11 → 12 → 41 → 14 → 15 → 16 → 13 → 18 → 19 → data/_unity/
Tools / agent AIREADME này → 00 §0 + §11 → 51 (§0–§3, §5, §8) → tools/schema/ → mechanics.json → doc sở hữu file mình sửa → chạy validate.py --file
Pixel artist00 §1 (INV-01/02) + §5 + §7 → 30 → .claude/docs/ArtStyle.md → 20 → 23 → av/*.json (actors, env) → Design/ArtSpecs/
VFX00 §1 → 30 → 31 → 11 (tell) → 10 §6 → av/*__vfx.json + av/SHARED__vfx.json
Audio00 §1 → 32 → 11 (tell âm thanh) → 10 §6 → music.json → av/*__actor_sfx.json, SHARED__sfx.json, UI.json
Writer00 §9 → 20 → 21 → 23 → npcs.json, dialogue.json, endings.json, codex.json, events.json
QA00 §1 (INV) → 60 → 42 → 41 → 11 → 19 → 51 §5 → chạy audit_gdd.py
Producer00 §0–§2 + §10 + §12 → 01 → 43 → 60 → 17 (tóm tắt) → site/index.html

98. Kiểm tra, kiểm toàn vẹn, dựng (chạy từ gốc repo)

Danh sách từ cấm nằm ngoài repo: truyền --banned-terms <file|thư mục> hoặc đặt env BW_BANNED_TERMS.

py -3 GDD/Full/tools/validate.py --file GDD/Full/data/heroes/H03.json --banned-terms <thư mục từ cấm>   # sau mỗi lần sửa 1 file
py -3 GDD/Full/tools/validate.py --all --banned-terms <thư mục từ cấm>                                  # trước merge: 0 ERROR
py -3 GDD/Full/tools/audit_gdd.py --banned-terms <thư mục từ cấm>                                       # cổng G01–G13; --only G03,G05 · --file <data> · --json <báo cáo>
py -3 GDD/Full/tools/balance_calc.py --selftest                                                           # ví dụ doc 17 + --check-data
py -3 GDD/Full/tools/build_gdd.py                                                                         # md, csv, art, merged (--only md,csv · --schema-check)
py -3 GDD/Full/tools/build_site.py                                                                        # web tĩnh → GDD/Full/site/
py -3 GDD/Full/tools/check_site.py --banned "<glob file từ cấm>"                                          # kiểm site trước phát hành

Python = py -3, UTF-8, chỉ stdlib + jsonschema. Không bao giờ để JSON hỏng trên đĩa; bản render luôn dựng lại từ JSON, không sửa tay.

109. Đổi canon

  1. Không sửa dữ liệu trước. Ghi mục quyết định có ngày ở Bible §12: DEC-YYYY-MM-DD-nn — mục bị thay · cũ → mới · lý do · người duyệt.
  2. Sửa 00-Design-Bible.md + data/_bible.json cùng lượt; đổi INV cần quyết định riêng + chạy lại kiểm màu INV-01 + test 5 s.
  3. Doc/dữ liệu con lệch canon: thêm dòng quyết định có ngày vào ghi chú của chính file đó, dạng 2026-11-07 - <cũ → mới, lý do> (doc: mục "Quyết định đã chốt"; JSON: field ghi chú *_vi gần nhất).
  4. Thêm LOẠI thực thể, đổi số lượng, tạo id ngoài dải canon (Edge 41+, SE073+, RL061+…), thêm field (sửa tools/schema + doc 51 §4), thêm key mechanics.json (sửa doc 12 §9/§10) → đều cần DEC.
  5. Chạy validate.py --all + audit_gdd.py đến exit 0, rồi build_gdd.py + build_site.py.
  6. Không ghi tên game, studio, nhà phát hành, thương hiệu hay nhân vật có thật vào bất kỳ file nào trong repo.