0Cách đọc bộ GDD
| # | Tài liệu | Nội dung |
|---|---|---|
| 00 | 00-Deepstair-Master.md |
Tầm nhìn, trụ cột, invariant, vòng lặp, state machine, roster, thuật ngữ, lộ trình người chơi, bản đồ module, hằng số gốc |
| 01 | 01-Combat.md |
Đấu trường 2D, chỉ số, công thức sát thương, hệ phòng thủ (Gạt/Chặn/Né/Phản đòn/Va kiếm), Thế (posture) & Tuyệt Sát, Combo Engine (Lộ Trình Combo), Phong Độ (Style Rank), Bộc Phá (Overdrive), AI, phản ứng trúng đòn, trạng thái, game feel |
| 02 | 02-Animation-Pixel-Pipeline.md |
Pipeline sprite pixel bằng Tools/pixelfx: rig + trang phục, act/MoveDef, xuất body-sheet + move JSON, runtime PixelClipPlayer, ngân sách khung hình |
| 03 | 03-Heroes.md + Heroes/H01…H08 |
Hệ anh hùng (bộ kỹ năng chuẩn, cổng cơ chế riêng, tiến trình cấp/sao/thông thạo), bảng roster; mỗi chương H0x = toàn bộ đòn, lộ trình combo, Hồi Âm riêng của một anh hùng |
| 04 | 04-Enemies-Bosses.md |
20 loại địch, 10 affix Tinh Anh, 10 Thủ Vệ (tầng x5), 10 Boss (tầng x0), đòn & báo hiệu dạng dữ liệu |
| 05 | 05-Descent-Run.md |
Cấu trúc 100 tầng xuống, nhịp 10 tầng, wave, Chiếu Nghỉ, Cổng Boss, gục/hồi sinh, kết quả, Bậc Kinh Hoàng, Vực Không Đáy, Thử Thách Ngày, Xuống Nhanh, Auto-Rerun |
| 06 | 06-Echoes.md |
Hệ thẻ Hồi Âm 1-trong-3: loại thẻ, độ hiếm, thuật toán ra thẻ, ngôn ngữ hiệu ứng (Echo DSL), cấp, Tiến Hóa, Cộng Hưởng, Auto-Pick, toàn bộ Hồi Âm chung |
| 07 | 07-Meta-Progression.md |
Cấp tài khoản, Rèn Luyện, Cây Đèn Hồn, Di Vật, Trang Phục, Sổ Ký Ức, Lửa Trại (AFK), mở khóa tính năng |
| 08 | 08-Economy.md |
Tiền tệ, nguồn/chi, công thức, mô phỏng F2P/Dolphin/Whale (balance_sim.py) |
| 09 | 09-Monetization.md |
IAP, quảng cáo, Triệu Hồi (gacha anh hùng), Rương Di Vật, ưu đãi, tuân thủ |
| 10 | 10-LiveOps.md |
Đăng nhập, nhiệm vụ, thành tựu, Lantern Pass, sự kiện, Remote Config, push |
| 11 | 11-UI-UX.md |
Theme pixel, layout dọc, danh sách màn hình, wireframe, luồng, HUD trận đấu |
| 12 | 12-Art-Audio.md |
Định hướng mỹ thuật pixel, danh mục asset, VFX pixelfx, âm thanh |
| 13 | 13-Technical.md |
Kiến trúc, assembly, mô phỏng tất định, save, CSV, analytics, hiệu năng |
| 14 | 14-Production-QA.md |
Lộ trình, thứ tự build cho /planning-task, rủi ro, giả định, QA, KPI |
Bảng số liệu xuất được nằm ở GDD/Config/*.csv, sinh từ GDD/Tools/data/*.py bằng py -I GDD/Tools/build_tables.py (đồng thời cập nhật các bảng nằm giữa cặp marker HTML BEGIN:<tên> … END:<tên>). Sửa số ở file data, không sửa tay bảng. Mô phỏng cân bằng: GDD/Tools/balance_sim.py.
Quy ước:
[INV-xx]Design Invariant — ràng buộc cứng; pipeline kỹ thuật coi là hard constraint.- Giá trị balance mặc định là
[ASSUMED](khởi điểm, tinh chỉnh bằng CSV/Remote Config) trừ khi ghi[DERIVED](từ công thức/mô phỏng) hoặc[BENCHMARK](thị trường). - KC = Kim Cương (Gem). Khoảng cách tính bằng pixel nghệ thuật (px); thời gian bằng giây; tick mô phỏng = 1/60 s.
- Tên trong game luôn là tên gốc của Deepstair; không dùng tên/thương hiệu của game, anime, phim có sẵn.
1Tổng quan
| Hạng mục | Nội dung |
|---|---|
| Tên | Deepstair. Store EN Deepstair: Blade Descent; VN Deepstair: Kiếm Vũ Vực Sâu |
| Thể loại | Auto hack&slash roguelite (idle-watchable), đánh nhau side-view 2D pixel art, màn hình dọc |
| Nền tảng | Android 8.0+ / iOS 15+ (iPhone + iPad), dọc, một tay |
| Engine | Unity 6000.3.16f1, 2D (URP 2D Renderer — xem 13 §1), IL2CPP ARM64 |
| Mô hình kinh doanh | F2P lai: quảng cáo thưởng + IAP (gói, pass, thẻ tháng, triệu hồi anh hùng, rương di vật) |
| Đối tượng | Nam 16–35; fan action/hack&slash 2D (Dead Cells, Katana ZERO, Blasphemous, Hades), video "anime fight edit"; người chơi idle-roguelite mobile (Archero, Capybara Go!, Survivor.io) |
| Phiên chơi | Run 8–40 phút thực (x1–x3); 4–6 lần mở app/ngày; có thể để máy tự chạy |
| Ngôn ngữ ra mắt | Tiếng Việt, Tiếng Anh |
| Bundle id | com.blackface.deepstair |
Tiền đề. Thành phố Dawnhold sống dưới nhật thực vĩnh viễn từ khi Tâm Bình Minh — đốm lửa cuối của mặt trời — bị Vua Rỗng (The Hollow King) lôi xuống đáy Deepstair: cầu thang xoắn đào vào vực thẳm, 100 chiếu nghỉ sâu dần. Những chiến binh mang Đèn Hồn (Lanternbound) lần lượt đi xuống. Trên mỗi bậc thang còn vương Hồi Âm — ký ức chiến đấu của những người đã ngã xuống trước họ. Mỗi tầng vượt qua, đèn hút lấy một Hồi Âm và người mang đèn học thêm một lối đánh. Gục ngã, đèn kéo linh hồn về Trạm Đầu Thang (camp trên mặt đất): Hồi Âm tan biến, nhưng tro hồn và vàng nhặt được thì ở lại.
Hook một câu: Xem những trận chém pixel nhanh, đã, đúng nhịp như phim hành động — mỗi tầng bạn chọn một Hồi Âm, mỗi run là một bộ combo khác hẳn.
USP:
- Hack&slash biên đạo tự động: chuỗi đòn có hủy đòn (cancel), tung hứng trên không, dội tường, đánh nằm, gạt đòn (Deflect) đúng khung hình, chặn (Block), né (Evade), phản đòn (Counter), va kiếm (Clash), vỡ thế → Tuyệt Sát điện ảnh. Người chơi không bấm, nhưng mọi va chạm đều "đúng nhịp".
- Mỗi anh hùng một phong cách, một vũ khí, cố định: 8 anh hùng ra mắt, mỗi người 55–70 đòn riêng (gồm đòn phòng thủ, di chuyển) và 35+ Lộ Trình Combo; không có đổi vũ khí/trang bị vũ khí.
- Build hiện bằng chuyển động: Hồi Âm Combo thêm lộ trình mới vào Cây Combo — người chơi thấy đòn mình vừa chọn ngay tầng sau. Phong Độ D→SSS đo độ đa dạng & đẹp mắt.
- Phòng thủ là cảnh diễn: tỉ lệ Gạt/Chặn/Né hiển thị công khai, build được; chuỗi gạt liên tiếp → Dòng Chảy (Flow State).
- Cầu thang xoắn đi xuống: tiến trình đọc bằng mắt — càng sâu càng tối, chọn thẻ trong lúc anh hùng đi xuống cầu thang.
- Pixel art sinh bằng code (
Tools/pixelfx): rig 3D raster hóa ra pixel, act dạng dữ liệu → mở rộng nội dung đòn rẻ.
2Trụ cột thiết kế
| # | Trụ cột | Ý nghĩa | Kiểm chứng |
|---|---|---|---|
| P1 | Mỗi va chạm đúng nhịp | Hit-frame chính xác, đóng băng khung hình, gạt đòn chạm đúng khung va của địch; báo hiệu → phản ứng đọc được | Playtest: ≥ 80% người xem chấm "đã mắt" ≥ 4/5; QA: 0 lệch hit-frame (INV-05) |
| P2 | Mỗi anh hùng là một phong cách | Không bộ đòn dùng chung; build chọn trong không gian riêng của anh hùng | Mỗi anh hùng có tỉ lệ thắng Boss 50 trong ±15% trung vị roster (telemetry) |
| P3 | Build thể hiện bằng chuyển động | Hồi Âm Combo thêm lộ trình mới (không thay); Phong Độ thưởng đa dạng | Ở tầng 30, ≥ 60% lộ trình đã dùng trong tầng là lộ trình từ Hồi Âm (log) |
| P4 | Xem là sướng, chọn là có hệ quả | Chiến đấu tự động; quyết định = Hồi Âm, sự kiện Chiếu Nghỉ, anh hùng, đầu tư meta | ≥ 60% lượt chọn ở người chơi D7+ là chọn tay |
| P5 | Pixel đọc được ở 1× | Một cỡ pixel, viền ink, ánh sáng cộng chỉ cho VFX, báo hiệu đòn rõ màu | Ảnh chụp nhận diện được ở thumbnail 128 px; báo hiệu đỏ/đỏ thẫm phân biệt được với mù màu (11 §9) |
3Design Invariants
INV-01Chiến đấu 100% tự động. Tương tác trong run giới hạn: chọn Hồi Âm, lựa chọn ở Chiếu Nghỉ/Cổng, tốc độ, bật/tắt Auto-Pick, kích hoạt Bộc Phá thủ công (tùy chọn), tạm dừng, bỏ cuộc.INV-02Mỗi tầng vượt qua cho đúng một lượt chọn Hồi Âm chuẩn 1-trong-3 (4 thẻ chỉ với nút Cây Đèn HồnE10ở tầng Thủ Vệ/Boss hoặc Phước Lành quảng cáo ở tầng Boss). Thẻ thêm ngoài lượt chuẩn chỉ đến từ danh sách 06 §5.5 (Chiếu Nghỉ, Cây Đèn HồnE03Lv2 ở tầng 1, tự chọn của Xuống Nhanh).INV-03Roguelite: gục hết hồi sinh → mất toàn bộ Hồi Âm, Than Hồng, buff run; giữ Vàng/Tro Hồn/EXP/XP Thông Thạo/rương theo công thức kết quả (05 §9).INV-04Một anh hùng = một vũ khí, cố định. Không đổi/trang bị vũ khí. Hình dáng, bảng màu chính và vũ khí của anh hùng không bao giờ đổi; Trang Phục chỉ đổi phụ kiện + ramp màu phụ + màu VFX (02 §3.4). Địch luôn khác bảng màu anh hùng.INV-05Sát thương chỉ phát ra ở hit-frame của MoveDef (sinh từact.hits[].tcủa pixelfx). Kết quả phòng thủ của anh hùng được quyết định tại thời điểm cam kết của đòn địch (DEFENSE_LEAD= 0.15 s trước hit-frame) và hiển thị đúng hit-frame của địch. Hit-stop, rung, VFX, SFX bám cùng frame đó.INV-06Phòng thủ là xác suất công khai. Mọi kết quả Gạt/Chặn/Né/Trúng đến từ tỉ lệ hiển thị trên bảng chỉ số anh hùng + điều chỉnh theo loại đòn (01 §5.3); không có RNG ẩn khác. Mọi roll dùng luồng RNG có seed.INV-07Màn hình dọc, một tay: mọi nút tương tác trong run nằm ở 45% dưới màn hình (trừ tạm dừng/tốc độ ở dải trên).INV-08Không bán Hồi Âm cụ thể bằng tiền thật, không popup IAP trong run. Trong run chỉ tiêu KC/quảng cáo cho: hồi sinh (≤ 1 quảng cáo + 1 KC/run), đổi thẻ (1 quảng cáo + ≤ 3 KC/run), Phước Lành (1 quảng cáo/run).INV-09Offline-first: gameplay, kinh tế, IAP grant chạy local theo pattern pack của template (CSV +PackageManager+RewardManager+TimeManager). Chỉ bảng xếp hạng (v1.1) cần mạng và không ảnh hưởng tiến trình.INV-10Không quảng cáo xen kẽ trong trận hay màn chọn thẻ. Trong run chỉ một điểm nghỉ: rời tầng Boss (x0) sau khi đã chọn thẻ; chung trần/ngày với màn Kết Quả; Remote Configads_interstitial_boss_enabled.INV-11Ra thẻ tất định theo seed: lượt chọn tầng N được sinh một lần và lưu vào snapshot trước khi hiển thị; thoát/vào lại không đổi được thẻ.INV-12Nhịp 10 tầng cố định: Boss ở x0, Thủ Vệ ở x5, Chiếu Nghỉ sau x3 và x7, Cổng Boss sau x9.INV-13Tốc độ game, hit-stop, slow-mo không ảnh hưởng kết quả kinh tế; phần thưởng tính theo tầng/sự kiện, không theo giây.INV-14Mô phỏng chiến đấu tất định, độc lập frame-rate: tick cố định 60 Hz trênCombatClockriêng; cùng seed + cùng build + cùng anh hùng → cùng trận (chạy headless hàng nghìn run để cân bằng).INV-15Hồi Âm riêng chỉ xuất hiện cho đúng anh hùng của nó; Hồi Âm chung cho mọi anh hùng. Hồi Âm riêng được mở dần bằng Thông Thạo anh hùng (chơi), không bao giờ bán.INV-16Mọi đòn trong một Lộ Trình bắt đầu và kết thúc ở khung "thủ" (guard key) của anh hùng (trừ đòn trên không/đòn nối có cờlink) — sprite không blend được, nên tính liên tục của chuỗi đến từ khung đầu/cuối chung (02 §5.3).
4Vòng lặp cốt lõi
KHOẢNH KHẮC (1–4s) Địch lấy đà (báo hiệu) → anh hùng GẠT đúng khung va (tia lửa, đóng băng)
│ → PHẢN ĐÒN → mở Lộ Trình Combo: chém nối → hất tung → combo trên không → đập xuống
│ → Thế địch vỡ → TUYỆT SÁT (zoom 2×, letterbox)
TẦNG (30–75s) Xuống thang vào phòng → 2–4 wave địch tràn ra từ cửa ngục/khe tường/trần
│ → hạ hết → đi xuống cầu thang xoắn → CHỌN 1/3 HỒI ÂM → tầng sâu hơn
RUN (8–40 phút) B1 → … Chiếu Nghỉ (x3, x7) → Thủ Vệ (x5) → Cổng Boss (x9) → Boss (x0) → …
│ → gục (hết hồi sinh) hoặc hạ Vua Rỗng ở B100 → KẾT QUẢ: Vàng, Tro Hồn, EXP, XP Thông Thạo, Rương
META (mỗi ngày) Rèn Luyện (Vàng) · Cây Đèn Hồn (Tro Hồn) · Anh hùng: cấp (Vàng+Quyển Chiến), sao (Mảnh), Thông Thạo (chơi)
│ · Di Vật (Rương) · Lửa Trại AFK · nhiệm vụ · Pass · sự kiện → run sau xuống sâu hơn
DÀI HẠN Kỷ lục độ sâu B1→B100 · sưu tầm 8(+4) anh hùng · Thông Thạo 20 cấp/anh hùng · Bậc Kinh Hoàng 1–20 · Vực Không Đáy
5State machine
5.1 Trạng thái ứng dụng
| State | Vào khi | Ra khi | Lỗi/ngoại lệ |
|---|---|---|---|
Splash |
Mở app | Load xong config + save | Save hỏng → backup (13 §6) |
FirstLaunchCinematic |
Lần đầu (ftue.cinematicSeen=false) |
Cinematic 10 s xong / chạm bỏ qua từ 0.5 s | — |
Home (Trạm Đầu Thang) |
Từ Splash/Results | BẮT ĐẦU → RunPrep; mở tính năng → overlay |
Có run dang dở → popup "Tiếp tục run?" |
RunPrep |
Bấm BẮT ĐẦU | Xác nhận → Run; Back → Home |
— |
Run |
Bắt đầu/tiếp tục run | Gục hết hồi sinh / hạ Vua Rỗng không đi tiếp / bỏ cuộc → Results |
App bị kill → khôi phục checkpoint đầu wave (05 §16) |
Results |
Run kết thúc | Tiếp → Home (hoặc Run mới nếu Auto-Rerun) |
— |
5.2 Trạng thái trong run
| State | Vào | Ra | Thất bại |
|---|---|---|---|
FloorIntro |
Anh hùng xuống tới chân cầu thang | Bước vào phòng (1.0 s) | — |
Combat |
FloorIntro xong | Mọi wave hết địch → FloorClear |
HP = 0 → Downed |
Downed |
HP = 0 | Có hồi sinh → Combat; không → RunEnd |
Từ chối hồi sinh → RunEnd |
FloorClear |
Hết địch | Slow-mo 0.6 s + anh hùng đi tới miệng cầu thang → Landing nếu có, ngược lại EchoPick |
— |
Landing |
Tầng x3/x7 (Chiếu Nghỉ) hoặc x9 (Cổng Boss) vừa clear | Xong sự kiện → EchoPick |
Rương Mimic/Cửa Thử Thách thua → Downed |
EchoPick |
Sau FloorClear/Landing | Chọn/Bỏ qua → Descent |
— |
Descent |
Đã chọn | Hồi DESCENT_HEAL 8% HP, lưu snapshot → FloorIntro tầng +1 |
— |
BossIntro |
Hạ hết wave mở màn tầng x0 | Cinematic 2.5 s (bỏ qua được từ lần 2) → Combat (pha Boss) |
— |
RunEnd |
Gục cuối / thắng B100 / bỏ cuộc | → Results |
— |
EchoPick diễn ra trong lúc anh hùng đi xuống cầu thang xoắn (diegetic): camera trượt dọc theo trục cầu thang, phòng tầng trước mờ dần lên phía trên, UI chọn thẻ phủ nửa dưới (11 §4.4).
6Cấu trúc nội dung
| Hạng mục | Số lượng ra mắt | Tài liệu |
|---|---|---|
| Tầng | 100 (10 Địa Tầng × 10) + Vực Không Đáy B101+ | 05 |
| Địa Tầng (môi trường) | 10: Hầm Rượu Đổ Nát, Hầm Mộ, Hang Nấm Phát Quang, Sảnh Ngập, Lò Rèn Hỏa Ngục, Mạch Pha Lê, Thánh Đường Xương, Vực Băng, Mê Cung Bóng, Tâm Rỗng | 05, 12 |
| Anh hùng | 21: 8 ra mắt (H01–H08) + 13 sau ra mắt (H09–H21, mỗi mùa 1 — 03 §9) | 03, Heroes/ |
| Đòn mỗi anh hùng | 55–70 (bộ gốc ~40 gồm 5 phòng thủ + 10 di chuyển, + ~25 đòn từ Hồi Âm) | Heroes/ |
| Lộ Trình Combo mỗi anh hùng | 35–40 (gốc 10–13 + 22 Combo + 4 Tiến Hóa + 1 Thức Tỉnh) | Heroes/ |
| Hồi Âm | ≈ 40 riêng/anh hùng (gồm 4 Tiến Hóa) × 8 + ≈ 100 chung | 06, Heroes/ |
| Loại địch | 20 + 10 affix Tinh Anh | 04 |
| Thủ Vệ | 10 | 04 |
| Boss | 10 | 04 |
| Nút Cây Đèn Hồn | 40 (4 nhánh) | 07 |
| Di Vật | 4 ô × 24 mẫu × 6 độ hiếm, 6 bộ | 07 |
| Trang Phục | 2–3/anh hùng (≥ 20) | 07 |
| Bậc Kinh Hoàng | 20 | 05 |
6.1 Roster (khóa) — concept art: Heroes/H01.png … H21.png
| Id | Anh hùng | Danh hiệu | Vũ khí | Phong cách | Độ hiếm | Nguồn chính | Cổng cơ chế riêng | Gạt/Chặn/Né gốc |
|---|---|---|---|---|---|---|---|---|
| H01 | Kaito | Lãng Nhân Cuối Cùng | Katana | Iaido: rút đao chớp nhoáng, gạt đòn & phản đòn chí mạng | R | Mặc định | Ý Kiếm 0–3 điểm | 15 / 8 / 10 % |
| H02 | Aldric | Thành Lũy | Kiếm + khiên diều | Hiệp sĩ thánh: chặn, húc khiên, trừng phạt | R | Quà hạ Boss B10 lần đầu | Phán Xét 0–100 | 6 / 35 / 0 % |
| H03 | Vex | Nanh Đôi | Song dao găm | Sát thủ: siêu nhanh, né + phản ảnh, chảy máu, trên không | E | Quà hạ Boss B20 lần đầu | Đà 0–30 cộng dồn → Cuồng Sát | 4 / 0 / 26 % |
| H04 | Brann | Lời Thề Sắt | Đại kiếm | Cuồng chiến: gồng chém, giáp siêu cứng, phá thế | R | Đăng nhập 7 ngày (ngày 7) + Triệu Hồi | Cuồng Nộ 0–100 → Bạo Nộ | 3 / 18 / 0 % |
| H05 | Lyra | Ngọn Giáo Trời | Giáo dài | Long kỵ: tầm xa, xuyên thấu, nhảy sào, bổ nhào trên không | E | Mốc B40 / quà Nạp Đầu + Triệu Hồi | Thiên Khí 0–3 lượt nhảy | 8 / 10 / 14 % |
| H06 | Rook | Quyền Đá | Găng sắt | Quyền sư: đấm liên hoàn, túm–quật, dội tường, gạt bằng chưởng | E | Gói Khởi Đầu / thành tựu Tổng Thông Thạo 50 + Triệu Hồi | Chân Khí 0–5 khối | 12 / 14 / 8 % |
| H07 | Mora | Lời Thì Thầm Mộ | Lưỡi hái | Thần chết: quét rộng, móc kéo, gặt hồn, hút máu | L | Triệu Hồi (nổi bật) + sự kiện | Linh Hồn 0–10 → Dạng Tử Thần | 5 / 4 / 18 % |
| H08 | Sable | Xích Ảnh | Liềm xích (kusarigama) | Khống chế tầm trung: móc–kéo, quật người làm chùy, xoay xích gạt đạn | L | Triệu Hồi (nổi bật) + Quỹ/thành tựu | Xích Căng 0–100 | 10 / 5 / 14 % |
Sau ra mắt (1 anh hùng/mùa 28 ngày, 03 §9): H09 Zerran (song đại đao ma, L) · H10 Feng (tay không, R) · H11 Momo (côn vàng, E) · H12 Isolde (băng pháp, L) · H13 Aurelle (quyền trượng thiên sứ, E) · H14 Sorin (song vuốt, E) · H15 Tsubaki (ô giấy, E) · H16 Juno (đại pháo, E) · H17 Ignis (kiếm liễu, R) · H18 Elowen (cung, R) · H19 Kazane (song quạt, E) · H20 Taurok (đại chùy, R) · H21 Vulkar (song liêm xích dung nham, L). Bảng tổng (sinh từ dữ liệu):
| Id | Anh hùng | Vũ khí | Hiếm | Cổng | Gạt/Chặn/Né | HP / ATK Lv1★1 | Đòn | Lộ trình | Hồi Âm |
|---|---|---|---|---|---|---|---|---|---|
| H01 | Kaito — Lãng Nhân Cuối Cùng | Katana | R | Ý Kiếm | 15% / 8% / 10% | 600 / 63 | 66 | 39 | 39 |
| H02 | Aldric — Thành Lũy | Kiếm + khiên diều | R | Phán Xét | 6% / 35% / 0% | 700 / 57 | 70 | 39 | 40 |
| H03 | Vex — Nanh Đôi | Song dao găm | E | Đà | 4% / 0% / 26% | 560 / 58 | 75 | 39 | 40 |
| H04 | Brann — Lời Thề Sắt | Đại kiếm | R | Cuồng Nộ | 3% / 18% / 0% | 720 / 68 | 68 | 39 | 40 |
| H05 | Lyra — Ngọn Giáo Trời | Giáo dài (giáo–kích) | E | Thiên Khí | 8% / 10% / 14% | 603 / 62 | 69 | 39 | 40 |
| H06 | Rook — Quyền Đá | Găng sắt | E | Chân Khí | 12% / 14% / 8% | 666 / 60 | 83 | 40 | 40 |
| H07 | Mora — Lời Thì Thầm Mộ | Lưỡi hái | L | Linh Hồn | 5% / 4% / 18% | 626 / 67 | 71 | 39 | 40 |
| H08 | Sable — Xích Ảnh | Liềm xích (kusarigama) | L | Xích Căng | 10% / 5% / 14% | 626 / 65 | 70 | 40 | 40 |
| H09 | Zerran — Song Ma Kiếm | Song đại đao ma | L | Nhị Thức | 8% / 10% / 10% | 670 / 72 | 76 | 40 | 39 |
| H10 | Feng — Cước Phong | Tay không quấn băng | R | Liên Hoàn Thức | 14% / 6% / 12% | 580 / 58 | 82 | 40 | 39 |
| H11 | Momo — Hầu Tướng Kim Côn | Kim côn co giãn | E | Tiên Đào | 10% / 8% / 16% | 624 / 62 | 81 | 40 | 39 |
| H12 | Isolde — Băng Hậu | Tinh thể Hàn Tinh (triệu hồi binh khí băng) | L | Hàn Tinh | 12% / 12% / 8% | 603 / 69 | 68 | 39 | 40 |
| H13 | Aurelle — Thiên Sứ Quang Trượng | Quyền trượng thánh (ngọc lam) + đôi cánh | E | Thánh Ân | 6% / 16% / 12% | 624 / 60 | 68 | 39 | 40 |
| H14 | Sorin — Huyết Trảo | Song vuốt dài gắn giáp tay | E | Săn Mồi | 6% / 0% / 22% | 582 / 65 | 72 | 39 | 40 |
| H15 | Tsubaki — Vu Nữ Ô Đỏ | Ô giấy đỏ + phù chú | E | Linh Phù | 14% / 14% / 6% | 603 / 62 | 70 | 40 | 40 |
| H16 | Juno — Pháo Thủ Tím | Đại pháo cầm tay (pháo ray) | E | Băng Đạn | 4% / 14% / 12% | 645 / 65 | 74 | 40 | 40 |
| H17 | Ignis — Kiếm Khách Tro | Kiếm liễu (rapier) | R | Nhịp Kiếm | 12% / 4% / 16% | 560 / 62 | 74 | 40 | 39 |
| H18 | Elowen — Cung Nguyệt | Cung trăng khuyết | R | Tên Nguyệt | 6% / 4% / 20% | 560 / 60 | 75 | 39 | 40 |
| H19 | Kazane — Phong Vũ Phiến | Song quạt chiến | E | Vũ Khúc | 12% / 6% / 16% | 603 / 60 | 69 | 39 | 40 |
| H20 | Taurok — Ngưu Ma Chùy | Đại chùy chiến | R | Ngưu Lực | 2% / 20% / 0% | 760 / 64 | 69 | 39 | 40 |
| H21 | Vulkar — Hỏa Ma Liêm Xích | Song liêm trăng khuyết nối xích (dung nham) | L | Nhiệt Lõi | 8% / 14% / 8% | 715 / 69 | 69 | 40 | 40 |
7Lộ trình người chơi
7.1 FTUE (ngày 0, ~15 phút đầu)
| Bước | Sự kiện | Mục tiêu dạy |
|---|---|---|
| 1 | Cinematic 10 s: đèn hồn rơi theo trục cầu thang tối → Kaito tiếp đất ở chiếu nghỉ, 6 Hồn Rỗng (E01) bò ra. Kaito biểu diễn chuỗi ≥ 12 hit: gạt một nhát đỏ (tia lửa + đóng băng) → phản đòn rút đao → hất tung → 3 nhát trên không → đập xuống → Tuyệt Sát zoom 2× → logo DEEPSTAIR thành hình từ than hồng. Bỏ qua từ 0.5 s | Tiền đề + "đánh đúng nhịp" ngay 10 s đầu |
| 2 | B1: 2 wave × 3 Hồn Rỗng. Nhãn: "Kaito tự chiến đấu — bạn chọn Hồi Âm". Run 1 chắc chắn có ≥ 1 lần Gạt (đòn địch đầu tiên có báo hiệu đỏ được kịch bản hóa thành Gạt — 05 §2.4) | Idle combat + phòng thủ |
| 3 | Lượt chọn đầu (cố định): Trăng Khuyết Rút Đao (Hồi Âm Combo của Kaito, thêm lộ trình hất tung), Mắt Tinh (+Gạt), Sức Mạnh (+ATK). Chọn Combo → B2 mở màn bằng lộ trình đó trong ≤ 5 s + nhãn "Combo mới đã vào Cây Combo!"; chọn thẻ khác → "Kaito mạnh hơn rồi!" | Hồi Âm thêm combo; lựa chọn có hệ quả |
| 4 | B2: Bộc Phá đầy → tự tung (AUTO); sau lần đầu hiện toggle AUTO + nhãn không chặn "Bộc Phá tự tung khi đầy — muốn tự canh, tắt TỰ ĐỘNG." | Bộc Phá |
| 5 | Sau B3: Chiếu Nghỉ = Thương Nhân Than Hồng (tặng 120 Than Hồng) | Chiếu Nghỉ, Than Hồng |
| 6 | B4: lượt chọn có nút Đổi thẻ nhấp nháy (1 lượt miễn phí) | Reroll |
| 7 | B5: Thủ Vệ Răng Sỏi — đòn nặng đỏ; đòn nặng đầu tiên kịch bản hóa thành Gạt Hoàn Hảo → nhãn "GẠT HOÀN HẢO — Thế địch vỡ nhanh hơn" | Posture, Tuyệt Sát |
| 8 | B9: Cổng Boss (Thương Nhân + hồi 30% + bảng gợi ý Boss) | Chuẩn bị Boss |
| 9 | B10: Gorrak Kẻ Gác Cổng — run 1 kỳ vọng thắng (sim ≥ 15/20). B11–14 nhẹ hơn; vào B15 nhãn "Thủ Vệ tầng 15 mạnh hơn Kaito lúc này — chiến hết sức!" → Thủ Vệ Kẻ Đào Mộ Hask chặn run 1 (sim ≥ 12/20 gục ở B13–15) | Chiến thắng đầu + thất bại có ý nghĩa |
| 10 | Kết Quả (lý do gục) → tặng 1,000 Vàng → hướng dẫn Rèn Luyện: tab Rèn Luyện → 1 lần nâng Sức Mạnh → banner "Mạnh hơn rồi! Sức mạnh này được giữ mãi" | Meta loop |
| 11 | Hạ B10 (run 1 hoặc sau) → lần về Home kế mở Sảnh Anh Hùng, tặng Aldric + 1 Ấn Triệu Hồi → nhãn 2 s "Quà: Aldric — phong cách Chặn & Húc khiên!" → Sảnh Anh Hùng → Aldric → Chọn → BẮT ĐẦU (≤ 4 chạm) | Roster = phong cách mới |
| 12 | Run kế mở bằng "Aldric: Chặn đòn tích Phán Xét!" (chỉ khi đang chọn Aldric) | Đổi anh hùng |
| 13 | Lần về Home sau (Cửa Hàng mở): hướng dẫn Triệu Hồi — Cửa Hàng → Triệu Hồi → mở bằng Ấn Triệu Hồi, tỉ lệ thường (cờ summonTutorialDone) |
Gacha |
| 14 | Lần về Home đầu tiên có kỷ lục ≥ 20 (hạ Boss B20 Valcor): tặng Vex (E, một lần) → "Quà: Vex — Né & phản ảnh!" → chọn → BẮT ĐẦU | Anh hùng Epic đầu tiên |
Run 1 có trợ lực ẩn +30% sát thương tới hết B9 (địch B1–9 giữ nguyên), B11–14 HP/ATK địch ×0.85; Thủ Vệ B15 của run 1 HP ×4, ATK ×4 là bức tường có chủ đích. Số ở RunRules.csv (ftue_*), chỉ áp run 1.
7.2 Mốc kỳ vọng (F2P — mô phỏng 08 §6)
| Thời điểm | Kỷ lục độ sâu | Sự kiện chính |
|---|---|---|
| D1 | ~B20 | Hạ Boss 10 (Aldric) và 20 (Vex); mở Sảnh Anh Hùng, Cây Đèn Hồn |
| D3 | ~B32 | Thử Thách Ngày, Auto-Rerun, Auto-Pick, Xuống Nhanh |
| D7 | ~B48 | Hạ Nereth (B40), tiến sát Brakka (B50); 1 anh hùng Thông Thạo 10 |
| D14 | ~B65 | Cộng Hưởng/Tiến Hóa thường xuyên; anh hùng chính ★3 (★4 ~D20) |
| D30 | ~B85 | Đối đầu Hàn Long Skarn (B80) / Bóng Gương (B90) |
| D45–50 | B100 | Hạ Vua Rỗng → Bậc Kinh Hoàng & Vực Không Đáy |
Dolphin (~$30/tháng) hạ B100 khoảng D20–28; Whale (~$300+/tháng) khoảng D10 DERIVED — 08 §6.
8Mở khóa tính năng
| Tính năng | Điều kiện mở | Ghi chú | Hàng đợi |
|---|---|---|---|
| Run (Thang Vực) | Mặc định | Run 1 vào thẳng sau cinematic (00 §7.1 bước 1–9) | — |
| Hộp thư | Mặc định | Biểu tượng chỉ hiện khi có thư đầu tiên (IAP khôi phục, bù dữ liệu) | — |
| Rèn Luyện (Training) | Kết thúc run 1 | Tặng 1,000 Vàng + hướng dẫn nâng Sức Mạnh (FTUE bước 10) | 1 |
| Sảnh Anh Hùng (Hero Hall) | Hạ BS01 Gorrak (B10) lần đầu | Tặng Aldric (10 mảnh) + 1 Ấn Triệu Hồi; phát cùng lần về Home với Rèn Luyện (ngoại lệ FTUE bước 11) | 2 |
| Cửa Hàng + Triệu Hồi | Kết thúc run 1 | Hướng dẫn Triệu Hồi bằng Ấn được tặng (FTUE bước 13, cờ summonTutorialDone) | 3 |
| Tốc độ x1.5 | Kỷ lục B5 | Cổng im lặng (nút tốc độ ở RunPrep/HUD) | 0 |
| Tốc độ x2 | Kỷ lục B10 | Cổng im lặng | 0 |
| Tốc độ x3 | Thẻ Tháng; không có thẻ: dùng thử 1 run/ngày khi đã mở x2 và từ ngày LiveOps thứ 2 | Cổng im lặng; Remote Config speed_x3_trial_* |
0 |
| Cây Đèn Hồn (Lantern Tree) | Kỷ lục B15 | Tro Hồn tích từ run 1, mở là tiêu được ngay; tặng 1 lần tẩy điểm miễn phí | 4 |
| Di Vật + Rương Di Vật | Kỷ lục B20 | Tặng 4 Di Vật Hiếm (mỗi ô 1, bộ SET01–SET04 ngẫu nhiên) + 1 Chìa Di Vật; phát ở lần về Home SAU lần nhận quà Vex (00 §8) | 5 |
| Lửa Trại (AFK) | Kỷ lục B5 | Bắt đầu tích lũy từ lúc phát (không hồi tố) | 6 |
| Nhiệm vụ ngày/tuần | Cấp tài khoản 3 | 7 | |
| Đăng nhập 7 ngày (Tân Thủ) | Cấp tài khoản 2 | Ngày 7 = Brann (10 mảnh); ngày đếm từ ngày phát | 8 |
| Thành tựu | Cấp tài khoản 3 | 9 | |
| Sổ Ký Ức (Codex) | Cấp tài khoản 4 | Ghi nhận hồi tố mọi Hồi Âm/địch đã gặp; +5 KC/thẻ cộng dồn khi mở | 10 |
| Vòng Quay May Mắn | Cấp tài khoản 4 | 11 | |
| Lantern Pass | Cấp tài khoản 5 | 10 §4 | 12 |
| Quỹ Xuống Vực (Growth Fund) | Cấp tài khoản 5 | 09 §2 | 13 |
| Tủ Trang Phục (Wardrobe) | Cấp tài khoản 6 | Shop trang phục mở cùng | 14 |
| Sự kiện (Events hub) | Cấp tài khoản 8 | 10 §5 | 15 |
| Auto-Pick + Tiêu Điểm Build | Kỷ lục B25 | Cổng im lặng (toggle ở màn chọn thẻ, 06 §6) | 0 |
| Thử Thách Ngày | Kỷ lục B30 | 05 §14; nút ở Home | 16 |
| Auto-Rerun | Kỷ lục B30 | Cổng im lặng (Kết Quả); dừng sau 5 run không chạm (Thẻ Tháng 10) | 0 |
| Xuống Nhanh (Express Descent) | Kỷ lục B30 | Cổng im lặng (RunPrep); độ lệch 25, Cây D08 giảm còn 20/15/10 | 0 |
| Bậc Kinh Hoàng + Vực Không Đáy | Hạ BS10 Vua Rỗng (B100) | Cổng im lặng (RunPrep) | 0 |
| Bảng xếp hạng | Hạ BS10 (v1.1, cần mạng) | Tách theo Bậc Kinh Hoàng và theo anh hùng | — |
Luật hàng đợi: mỗi lần về Home phát tối đa 1 tính năng mới (+ quà của nó); các mốc đủ điều kiện cùng lúc xếp hàng theo cột "Hàng đợi" (số nhỏ trước), lưu bền. Tính năng chưa phát vẫn khóa: không badge, nút có chỗ cố định thì vẽ trạng thái khóa (pixel xám), chạm → toast điều kiện. Cổng im lặng (0) — mở ngay khi đủ điều kiện, không popup: Tốc độ x1.5/x2/x3, Auto-Pick, Auto-Rerun, Xuống Nhanh, Bậc Kinh Hoàng + Vực Không Đáy. Ngoại lệ duy nhất: xong bước FTUE 10 ở một lần về Home thì Sảnh Anh Hùng (bước 11) phát luôn trong lần đó nếu Boss B10 đã hạ. Lần về Home có quà Vex (bước 14) không phát tính năng nào. Thẻ mới mở, thưởng lên cấp, thưởng mốc độ sâu kiếm trong run hiện ở Kết Quả, không thành popup ở Home.
9Bản đồ điểm chạm kiếm tiền
| Điểm chạm | Loại | Khi nào | Chi tiết |
|---|---|---|---|
| Hồi sinh | Quảng cáo / KC | Màn Gục | 05 §8 |
| Nhân đôi kết quả | Quảng cáo | Màn Kết Quả | 09 §3 |
| Đổi thẻ / Phước Lành | Quảng cáo / KC | Màn chọn Hồi Âm | 06 §5 |
| Gói Khởi Đầu ($0.99, có Rook), Nạp Đầu | IAP | Sau run thua đầu | 09 §2 |
| Gói Mốc Độ Sâu | IAP | Hạ/thua Boss | 09 §2 |
| Quỹ Xuống Vực, Thẻ Tuần/Tháng, Lantern Pass | IAP | Home | 09, 10 §4 |
| Triệu Hồi Anh Hùng (banner nổi bật) | KC / Ấn | Cửa Hàng | 09 §4 |
| Rương Di Vật | KC / Chìa | Cửa Hàng | 09 §4 |
| Heo Đất | IAP | Tích lũy theo tầng | 09 §2 |
| Gỡ Quảng Cáo / VIP | IAP | Sau quảng cáo xen kẽ thứ 3 | 09 §3 |
| Trang Phục | IAP / KC | Sảnh Anh Hùng | 07 §6 |
10Thuật ngữ (khóa)
| Thuật ngữ (VN) | EN / code | Định nghĩa |
|---|---|---|
| Deepstair / Thang Vực | Deepstair | Cầu thang xoắn 100 tầng xuống đáy vực |
| Tầng (B1…B100) | Floor (B<n>) |
Một phòng chiến đấu; đơn vị tiến trình. Hiển thị "B23" |
| Địa Tầng | Stratum | 10 tầng cùng môi trường, kết thúc bằng Boss |
| Run | Run | Một lượt đi xuống từ tầng bắt đầu tới khi kết thúc |
| Kỷ lục độ sâu | Depth record | Tầng sâu nhất đã clear ở Bậc 0 bởi bất kỳ anh hùng nào (Boss tính khi bị hạ); mỗi anh hùng còn có "Kỷ lục riêng" |
| Wave | Wave | Một đợt spawn trong tầng |
| Đi xuống | Descent | Chuyển tầng qua cầu thang; nơi chọn Hồi Âm, hồi 8% HP |
| Chiếu Nghỉ | Landing | Sự kiện phi chiến đấu sau x3, x7 |
| Cổng Boss | Boss Gate | Sau x9: Thương Nhân + hồi 30% + gợi ý Boss |
| Tinh Anh | Elite | Địch thường có affix, HP ×3, ATK ×1.5 |
| Thủ Vệ | Warden | Mini-boss tầng x5 |
| Boss | Boss | Trùm tầng x0 |
| Anh hùng | Hero (HeroDef) |
Nhân vật người chơi theo dõi; một vũ khí cố định |
| Cổng cơ chế riêng | Hero Gauge (HeroGauge) |
Tài nguyên đặc trưng của từng anh hùng (Ý Kiếm, Phán Xét, Đà, Cuồng Nộ, Thiên Khí, Chân Khí, Linh Hồn, Xích Căng) |
| Đòn | Move (MoveDef) |
Một animation tấn công có hit-frame, hitbox, phản ứng, cửa sổ hủy |
| Lộ Trình Combo | Combo Route (RouteDef) |
Chuỗi 2–8 đòn có điều kiện vào + kết thúc xác định; đơn vị mà AI chọn |
| Cây Combo | Combo Tree | Toàn bộ lộ trình anh hùng đang sở hữu trong run (gốc + từ Hồi Âm) |
| Đạo Diễn Combo | Combo Director | AI chọn lộ trình theo tình huống + trọng số + chống lặp |
| Hồi Âm | Echo (EchoDef) |
Thẻ phần thưởng run, chọn 1-trong-3 mỗi tầng |
| Hồi Âm Combo / Kỹ Pháp / Bí Kỹ / Tuyệt Truyền | Combo / Technique / Skill / Art Echo | Các loại Hồi Âm riêng của anh hùng (06 §2) |
| Lượt chọn | Echo Offer | Bộ 3 thẻ sinh cho một tầng |
| Đổi thẻ / Loại bỏ / Bỏ qua | Reroll / Banish / Skip | Thao tác trong lượt chọn |
| Gạt (đỡ gạt) | Deflect | Phòng thủ hoàn hảo: 0 sát thương, địch mất thế + loạng choạng, mở Phản Đòn |
| Gạt Hoàn Hảo | Perfect Deflect | Gạt một đòn nặng: sát thương Thế ×2.5, khựng dài |
| Chặn | Block | Giảm sát thương, tiêu Khí Thủ (Guard); có thể Phản Đòn Chặn |
| Né | Evade | 0 sát thương, i-frame; có thể Phản Đòn Né |
| Phản Đòn | Counter (Riposte) | Đòn trả đũa tức thì sau Gạt/Chặn/Né |
| Va Kiếm | Clash | Hit-frame anh hùng & địch trùng nhau ±50 ms: tóe lửa, cả hai bật lùi |
| Khí Thủ | Guard | Thanh tài nguyên chặn đòn của anh hùng; về 0 → Vỡ Thủ |
| Thế | Posture | Thanh "thế đứng" của địch; đầy → Vỡ Thế (Broken) |
| Tuyệt Sát | Execution | Đòn kết liễu điện ảnh lên địch Vỡ Thế (Boss: 10% Max HP) |
| Phong Độ | Style Rank | D → C → B → A → S → SS → SSS, thưởng đa dạng & đẹp mắt |
| Bộc Phá | Overdrive | Thanh 0–100; đầy → Tuyệt Kỹ (hoặc Thức Tỉnh nếu có Tuyệt Truyền) |
| Combo | Hit counter | Số hit trúng liên tiếp, đứt sau 2.0 s không trúng hoặc khi trúng đòn |
| Hit-stop | Hit-stop | Đóng băng cục bộ attacker + nạn nhân vài tick khi trúng |
| Than Hồng | Embers | Tiền tệ trong run, mất khi run kết thúc |
| Vàng | Gold (MoneyTypes 1) | Tiền mềm meta |
| Kim Cương (KC) | Gem (MoneyTypes 2) | Tiền cứng |
| Tro Hồn | Soul Ash (MoneyTypes 80) | Tiền roguelite meta cho Cây Đèn Hồn |
| Quyển Chiến | Battle Scroll (MoneyTypes 5) | Nguyên liệu nâng cấp anh hùng |
| Mảnh Anh Hùng | Hero Shard (MoneyTypes 700–711 = H01–H12, 750–758 = H13–H21) | Mở/nâng sao anh hùng |
| Mảnh Vạn Năng | Universal Shard (720–722 R/E/L) | Thay mảnh cùng độ hiếm khi nâng sao (không dùng để mở khóa) |
| Ấn Triệu Hồi | Summon Sigil (MoneyTypes 13) | Mở Triệu Hồi Anh Hùng |
| Chìa Di Vật / Bụi Di Vật | Relic Key (12) / Relic Dust (14) | Mở Rương Di Vật / nâng cấp Di Vật |
| Rèn Luyện | Training | Nâng chỉ số tài khoản vĩnh viễn bằng Vàng |
| Cây Đèn Hồn | Lantern Tree | Cây thiên phú 40 nút bằng Tro Hồn |
| Thông Thạo | Mastery | 20 cấp/anh hùng, lên bằng chơi; mở Hồi Âm riêng vào pool |
| Di Vật | Relic | 4 ô phụ kiện (Bùa, Nhẫn, Phù, Ấn) — không phải vũ khí |
| Trang Phục | Skin | Đổi phụ kiện + ramp phụ + màu VFX; thưởng sưu tầm +1% ATK (tối đa +10%) |
| Sổ Ký Ức | Codex | Hồi Âm/địch/anh hùng đã khám phá |
| Lửa Trại | Campfire | Tích lũy thưởng AFK |
| Bậc Kinh Hoàng | Dread Tier | 20 bậc modifier sau khi hạ Vua Rỗng |
| Vực Không Đáy | Abyss (Endless) | Tầng B101+ |
| Xuống Nhanh | Express Descent | Bắt đầu run sâu hơn với thẻ tự chọn |
| Auto-Pick / Tiêu Điểm Build | Auto-Pick / Build Focus | Tự chọn thẻ theo tag ưu tiên |
| Auto-Rerun | Auto-Rerun | Tự bắt đầu run mới sau Kết Quả |
| Run Snapshot | Run Snapshot | Bản lưu trạng thái run (đầu tầng + đầu wave) |
11Bản đồ module & thứ tự xây dựng
| # | Module | Phụ thuộc | Tài liệu | Ghi chú cho /planning-task |
|---|---|---|---|---|
| M1 | pixelfx Deepstair extensions (costume, vũ khí mới, body-sheet.mjs, move-export.mjs) |
— | 02 | Làm trước tiên, trên nhánh deepstair của submodule |
| M2 | Pixel runtime: PixelClipPlayer, CombatClock, importer MoveDef/BodyClip, Pixel Perfect Camera |
M1 | 02, 13 | Nền render |
| M3 | Combat Core: stats, damage, hit pipeline, Defense Resolver, Posture, phản ứng, Feel | M2 | 01 | Tái dùng EffectRegistry/rpgstats |
| M4 | Combo Engine: MoveRunner, RouteDef, Combo Director, Style, Overdrive, Hero Gauge | M3 | 01, 03 | 2 anh hùng ở vertical slice (Kaito, Aldric) |
| M5 | AI: HeroBrain, EnemyBrain, CombatDirector (token, vòng vây, báo hiệu) | M3 | 01, 04 | |
| M6 | Floor/Wave/Descent/Run state + snapshot + seed | M5 | 05 | |
| M7 | Echoes: database, Echo DSL runtime, OfferGenerator, Auto-Pick | M4, M6 | 06 | Logic lớn nhất |
| M8 | Hero content H01–H08 (MoveDef + Route + Echo) | M4, M7 | Heroes/ | 1 task/anh hùng/nhóm 12 đòn |
| M9 | Enemies, Wardens, Bosses | M5, M2 | 04 | Boss theo Địa Tầng |
| M10 | Meta: Account, Training, Lantern Tree, Hero Hall (cấp/sao/thông thạo), Relics, Skins, Codex, Campfire | M6 | 07, 03 | Feature trong Features/ |
| M11 | Economy & Monetization (Shop, Summon, Relic chest, packs, ads) | M10 | 08, 09 | Tái dùng feature template |
| M12 | LiveOps (quests, login, pass, events, daily challenge) | M10 | 10 | Tái dùng feature template |
| M13 | UI/HUD + FTUE | M6, M7, M10 | 11 | /new-ui + mockup pipeline |
| M14 | Audio, VFX, art integration | M1–M13 | 12 | |
| M15 | Analytics, Remote Config, perf tiers, headless autosim | tất cả | 13 |
12Edge case toàn cục
| # | Tình huống | Xử lý |
|---|---|---|
| G1 | App bị kill giữa tầng | Popup tiếp tục; khôi phục ở đầu wave đang đánh (HP, Khí Thủ, khiên, Than Hồng, Bộc Phá, Cổng cơ chế tại đầu wave; Hồi Âm; seed). Wave chơi lại cùng thứ tự spawn (05 §16) |
| G2 | App bị kill ở màn chọn thẻ | Lượt chọn đã lưu → hiện lại đúng 3 thẻ đó, số Đổi thẻ đã dùng giữ nguyên |
| G3 | Đổi giờ hệ thống | TimeManager; AFK không cộng khi thời gian lùi; reset ngày theo giờ đã xác thực |
| G4 | Mất mạng | Không ảnh hưởng gameplay; nút quảng cáo xám "Không có quảng cáo"; IAP báo lỗi store |
| G5 | Mua IAP giữa run | Không có điểm mua trong run (INV-08); giao dịch khôi phục trong run → phần thưởng vào Hộp thư |
| G6 | Save hỏng | 2 backup xoay vòng; hỏng cả 2 → SetupDefaultData() + log BugLogger |
| G7 | Thiết bị yếu | Tự hạ tier (13 §8): địch đồng thời 10 → 6, tắt afterimage + light buffer |
| G8 | Hai thiết bị cùng tài khoản | Ngoài phạm vi v1.0 (save local); cloud save v1.2 |
| G9 | Anh hùng đang chọn bị "mất" (dữ liệu xóa/khóa) | Fallback Kaito; run snapshot của anh hùng đó kết thúc và trả thưởng qua Hộp thư |
| G10 | Tất cả xác suất phòng thủ chạm trần | Kẹp theo CAPS (01 §3.1): Gạt+Né ≤ 70%, Gạt+Chặn+Né ≤ 90% — luôn ≥ 10% đòn trúng |
13Hằng số gốc (numeric spine)
Nguồn duy nhất: GDD/Tools/data/constants.py. Mọi module nhập từ đây.
| Key | Giá trị | Ghi chú |
|---|---|---|
| TICK_HZ | 60 | tick mô phỏng cố định |
| PPU / NATIVE_W / NATIVE_H_REF | 16 / 270 / 480 | pixel-perfect, khóa chiều ngang |
| ANIM_FPS | 12 | nhịp khung hình sprite |
| ROOM_HALF_W / CEILING_Y | 176 / 200 | px |
| GRAVITY | 950 | px/s² |
| LAUNCH_HEIGHT | {'low': 48, 'mid': 80, 'high': 120} | px đỉnh |
| AIR_HIT_LIFT / AIR_HIT_CAP / JUGGLE_DECAY_AFTER | 140 / 10 / 6 | |
| OTG_DMG_MULT / OTG_HIT_CAP | 0.5 / 3 | |
| HERO_HP0 / HERO_ATK0 / HERO_DEF0 | 400 / 40 / 20 | × hp/atk mult hero × rarity |
| ACCOUNT_BASE_HP / ATK | 200 / 20 | lõi tài khoản cộng cho mọi hero |
| HERO_MOVE0 / POISE0 / GUARD0 | 96 / 100 / 100 | |
| GUARD_REGEN / DELAY / BREAK_STUN | 25/s / 1.0s / 0.9s | |
| RARITY_MULT | {'R': 1.0, 'E': 1.06, 'L': 1.12} | |
| LEVEL_GROWTH | 0.08 | chỉ số × (1 + g(L−1)) |
| STAR_MULT | {1: 1.0, 2: 1.05, 3: 1.15, 4: 1.2, 5: 1.3, 6: 1.45} | |
| LEVEL_CAP_BY_STAR | {1: 20, 2: 30, 3: 45, 4: 60, 5: 80, 6: 100} | và ≤ 2 × cấp tài khoản |
| SHARDS_UNLOCK / SHARDS_STAR | {'R': 10, 'E': 20, 'L': 30} / {2: 20, 3: 40, 4: 60, 5: 100, 6: 150} | |
| BLOCK_REDUCTION | {'light': 0.75, 'heavy': 0.45} | |
| DEFENSE_LEAD | 0.15 | s trước hit-frame địch |
| DEFLECT_OFFBALANCE | {'light': 0.35, 'heavy': 0.7, 'boss_heavy': 0.4} | s |
| DEFLECT_POSTURE_MULT | {'light': 1.0, 'heavy': 2.5} | |
| DEFLECT_CHAIN window/bonus/max | 1.2s / +4% / 5 | |
| FLOW_STATE | {'duration': 3.0, 'aspd': 0.2} | đạt chuỗi đỡ 5 |
| COUNTER_ICD | {'deflect': 0.8, 'block': 1.5, 'evade': 1.2} | s |
| PERFECT_EVADE_SLOWMO | {'scale': 0.3, 'real_s': 0.4, 'icd': 6.0} | |
| CLASH_WINDOW | 0.05 | s |
| BROKEN_TIME / VULN / BOSS_IMMUNE | {'normal': 2.5, 'boss': 3.5} / +50% / 12.0s | |
| EXECUTION_BOSS_DMG | 0.1 | % Max HP boss |
| COMBO_WINDOW | 2.0 | s |
| GRUNT_HP0 / GRUNT_ATK0 | 232 / 7.3 | tầng 1 |
| HP_GROWTH / ATK_GROWTH | 1.07 / 1.07 | mỗi tầng |
| ELITE HP/ATK | ×3.0 / ×1.5 | |
| WARDEN HP/ATK | 4× grunt HP / ×1.6 | |
| BOSS HP / ATK | (9 + 1·idx)× grunt HP / ×2.0 | |
| ENEMY_COUNT(f) | min(40, 8 + ⌊0.32 f⌋) | |
| MAX_ALIVE | {'High': 10, 'Mid': 8, 'Low': 6} | theo tier máy |
| TOKENS_MELEE / RANGED | min(4, 2+⌊f/30⌋) / min(3, 1+⌊f/35⌋) | |
| DESCENT_HEAL / GATE_HEAL / REVIVE_HP | 0.08 / 0.3 / 0.5 | |
| FREE_REVIVE_CAP | 3 | mỗi run |
| GOLD_FLOOR(f) | round((8·1.06^(f−1) + f) × [×1.5 x5, ×3 x0]) | |
| SOUL_ASH_RUN | ⌊fmax/2⌋ + 5·boss + 2·warden | |
| PITY_NO_EPIC | 5 | lượt chọn |
| ECHO_POOL_WEIGHT | {'lv1': 1.5, 'lv2': 2.0, 'lv3': 2.5} | trọng số lộ trình theo cấp Hồi Âm |
| ROUTE_REPEAT | {'same': 0.0, 'recent3': 0.4, 'unused_floor': 1.25} |
14Sổ đăng ký ID (khóa — mọi module dùng đúng các id này)
| Phạm vi | Định dạng | Danh sách / ghi chú |
|---|---|---|
| Anh hùng | H01…H21, code 3 chữ |
H01 KAI Kaito · H02 ALD Aldric · H03 VEX Vex · H04 BRN Brann · H05 LYR Lyra · H06 ROK Rook · H07 MOR Mora · H08 SAB Sable · H09 ZER Zerran · H10 FEN Feng · H11 MOM Momo · H12 ISO Isolde · H13 AUR Aurelle · H14 SOR Sorin · H15 TSU Tsubaki · H16 JUN Juno · H17 IGN Ignis · H18 ELO Elowen · H19 KAZ Kazane · H20 TAU Taurok · H21 VUL Vulkar |
| Đòn / Lộ trình anh hùng | <CODE>_<…> / <CODE>_R<NN> |
03 §4 |
| Hồi Âm riêng | E_<CODE>_<NN> |
|
| Hồi Âm chung | ST chỉ số · DF phòng thủ · FI hỏa · FR băng · SM lôi · VN độc · SH ám · RA quang · TG chiến ý · SU sinh tồn · EC kinh tế · PA khế ước · RS cộng hưởng · ECHO00 hệ thống |
Xúc tác Tiến Hóa cố định (§14.1) |
| Địa Tầng | S01…S10 |
S01 Hầm Rượu Đổ Nát · S02 Hầm Mộ · S03 Hang Nấm Phát Quang · S04 Sảnh Ngập · S05 Lò Rèn Hỏa Ngục · S06 Mạch Pha Lê · S07 Thánh Đường Xương · S08 Vực Băng · S09 Mê Cung Bóng · S10 Tâm Rỗng |
| Địch | EN01…EN20 |
04 |
| Affix Tinh Anh | AF01…AF10 |
04 |
| Thủ Vệ (x5) | WD01…WD10 |
WD01 Răng Sỏi (B5) · WD02 Kẻ Đào Mộ Hask (B15) · WD03 Thợ Săn Nấm (B25) · WD04 Thuyền Trưởng Chìm (B35) · WD05 Đốc Công Lò (B45) · WD06 Kiếm Sĩ Pha Lê (B55) · WD07 Tu Sĩ Gai (B65) · WD08 Nữ Thợ Săn Sương (B75) · WD09 Sát Thủ Bóng (B85) · WD10 Hiệp Sĩ Rỗng (B95) |
| Boss (x0) | BS01…BS10 |
BS01 Gorrak Kẻ Gác Cổng (B10) · BS02 Valcor Hiệp Sĩ Không Đầu (B20) · BS03 Mẹ Bào Tử (B30) · BS04 Nereth Phù Thủy Triều (B40) · BS05 Brakka Vua Đe (B50) · BS06 Song Tử Lăng Kính (B60) · BS07 Giáo Chủ Morvane (B70) · BS08 Hàn Long Skarn (B80) · BS09 Bóng Gương (B90, sao chép anh hùng) · BS10 Vua Rỗng (B100) |
| Chiếu Nghỉ | LD01…LD08, Cổng Boss LD00 |
LD01 Thương Nhân Than Hồng · LD02 Điện Thờ Thì Thầm · LD03 Đe Hồi Âm · LD04 Rương Mimic · LD05 Cửa Thử Thách · LD06 Hồn Đồng Đội · LD07 Suối Hồi Sinh · LD08 Giếng Con Bạc |
| Bậc Kinh Hoàng | DR01…DR20 |
05 §13 |
| Cây Đèn Hồn | K01–K10 Kiếm (tấn công) · T01–T10 Thủ (phòng thủ) · D01–D10 Đèn (sinh tồn/kinh tế) · E01–E10 Hồi Âm (thẻ) |
Nút cố định §14.2 |
| Di Vật | RL<ô><NN>; ô: A Bùa, R Nhẫn, T Phù, S Ấn; bộ SET01…SET06 |
07 |
| MoneyTypes | 1 Vàng · 2 KC · 5 Quyển Chiến · 12 Chìa Di Vật · 13 Ấn Triệu Hồi · 14 Bụi Di Vật · 16 Vé Hồi Sinh · 17 Xu Vòng Quay (= LuckySpinCoin template, dùng lại) · 80 Tro Hồn · 207 Kẹo sự kiện · 700–711 Mảnh H01–H12 · 750–758 Mảnh H13–H21 (dải 750–769 dành cho H13–H32) · 720/721/722 Mảnh Vạn Năng R/E/L |
13 §7 kiểm tra trùng enum template |
| Đạn địch | PJ01… |
04 §3.2 |
| Trang Phục | SK<CODE><N> vd SKKAI1 |
SK<CODE>1 mặc định/Thông Thạo · SK<CODE>2 IAP/KC (09) · SK<CODE>3 thưởng Bậc Kinh Hoàng 5 (05) — 07 §6 |
| Đạn | PJ01…PJ25 (địch, 04) · PJ_<CODE>_<TÊN> (anh hùng) |
|
| Hiểm họa Địa Tầng | HZ01…HZ10 |
05 |
| Modifier Thử Thách Ngày | DM01…DM12 |
05 |
| Rương Boss | CH_BOSS_1…CH_BOSS_4 (theo dải Địa Tầng) |
05, 09 |
| Hook engine | ENG-01…ENG-48 |
01 §18b |
| Quy tắc Hồi Âm | dùng chung: 06 §8.4 · riêng: <CODE>_<TÊN> (chương anh hùng §3) |
|
| ResourceTypes / Features (enum template) | ResourceTypes +11 Hero, 12 Relic, 13 Skin, 14 RelicChest · Features 200–214 Meta, 230–240 Run, 250–258 Monetization | 13 §13 (đã kiểm không trùng) |
| Luồng RNG | offer spawn loot combat defense landing vendor ai fx |
constants RNG_STREAMS, 13 §5 |
14.1 Hồi Âm chung dùng làm xúc tác Tiến Hóa (id + tên cố định)
| Id | Tên | Tác dụng định danh |
|---|---|---|
| ST01 | Sức Mạnh / Might | +ATK% |
| ST02 | Sinh Lực / Vitality | +MaxHP% |
| ST03 | Thần Tốc / Swiftness | +AtkSpeed% |
| ST04 | Chuẩn Xác / Precision | +CritRate |
| ST05 | Hung Bạo / Ferocity | +CritDmg |
| ST06 | Liên Hoàn / Momentum | +ComboDmg |
| DF01 | Mắt Tinh / Keen Eye | +DeflectRate |
| DF02 | Kiên Thủ / Stalwart | +BlockRate |
| DF03 | Bước Ma / Ghost Step | +EvadeRate |
| DF04 | Phản Kích / Riposte | +CounterDmg |
| TG01 | Kẻ Tung Hứng / Juggler | +AirDmg, +air cap |
| TG02 | Phá Thế / Breaker | +PostureDmg |
| TG03 | Đao Phủ / Executioner | +ExecutionDmg, +ExecuteThreshold |
| TG04 | Đập Tường / Wall Crusher | ST dội tường |
| TG05 | Bão Kiếm / Crowd Cleaver | +AoeSize, +Reach |
| TG06 | Kẻ Trình Diễn / Showman | +StyleGain |
| FI01 · FR01 · SM01 · VN01 · SH01 · RA01 | Lưỡi Lửa · Lưỡi Băng · Lưỡi Sét · Lưỡi Độc · Lưỡi Bóng · Lưỡi Quang | infuse nguyên tố cơ bản |
14.2 Nút Cây Đèn Hồn được module khác tham chiếu
| Id | Tên | Tác dụng |
|---|---|---|
| E01 | Đổi Ý | +1 Đổi thẻ/run mỗi cấp (3) |
| E02 | Vận May | +1 Luck/cấp (5) |
| E03 | Khởi Đầu Tốt | Lv1: tầng 1 mọi ô ≥ R; Lv2: tầng 1 chọn hai lần |
| E04 | Loại Bỏ | 1/2/3 lần Loại bỏ mỗi run |
| E05 | Auto-Pick Thông Minh | 3 cấp (06 §6) |
| E06 | Chuyên Tâm | +15% trọng số bản Nâng cấp/cấp (3) |
| E07 | Kho Tri Thức | +1% Sử Thi/cấp (5) |
| E08 | Vang Vọng | Mở thêm Hồi Âm Cộng Hưởng |
| E09 | Khế Ước Máu | Khế Ước vào pool |
| E10 | Lá Thứ Tư | 4 thẻ ở tầng Thủ Vệ & Boss |
| D03 | Hơi Ấm Đèn | +2% hồi khi xuống cầu thang/cấp (5) |
| D04 | Túi Than | +30 Than Hồng đầu run/cấp (5) |
| D05 | Mặc Cả | −4% giá Chiếu Nghỉ/cấp (5) |
| D07 | Hơi Thở Thứ Hai | 1 hồi sinh miễn phí/run ở 20/30/40% HP (3) |
| D08 | Lối Tắt | Xuống Nhanh: độ lệch 25 → 20/15/10 (3) |
| D09 | Bất Diệt | 1 lần/run: đòn chí tử để lại 1 HP + 2 s bất tử |
| T03 | Phản Xạ Rèn | +1% Gạt/cấp (5) |
| T04 | Tường Đồng | +1% Chặn/cấp (5) |
| T05 | Thân Pháp | +1% Né/cấp (5) |
HANDOFF BLOCK — GDD → TECH
Locked Invariants
- INV-01 Chiến đấu tự động hoàn toàn
- INV-02 Một lượt chọn chuẩn 1-trong-3 mỗi tầng; thẻ thêm chỉ từ nguồn liệt kê
- INV-03 Chết mất build run, giữ meta theo công thức
- INV-04 Một anh hùng = một vũ khí cố định; skin không đổi danh tính
- INV-05 Sát thương ở hit-frame MoveDef; phòng thủ quyết định lúc cam kết, hiển thị đúng hit-frame địch
- INV-06 Phòng thủ là xác suất công khai, có trần tổng
- INV-07 UI tương tác trong run ở 45% dưới
- INV-08 Không bán Hồi Âm, không IAP trong run
- INV-09 Offline-first
- INV-10 Không quảng cáo xen kẽ trong trận/chọn thẻ
- INV-11 Ra thẻ tất định, lưu trước khi hiển thị
- INV-12 Nhịp 10 tầng
- INV-13 Tốc độ game không ảnh hưởng kinh tế
- INV-14 Mô phỏng tất định 60 Hz trên
CombatClock - INV-15 Hồi Âm riêng chỉ cho đúng anh hùng, mở bằng Thông Thạo
- INV-16 Đòn trong lộ trình bắt đầu/kết thúc ở guard key
Locked Terminology
- §10.
Mitigated Issues (Tech pipeline KHÔNG raise lại)
- Save-scum thẻ: INV-11 + snapshot trước khi hiển thị.
- Save-scum máu giữa tầng: checkpoint đầu wave + snapshot khi Downed (05 §16).
- Phòng thủ bất tử: trần Gạt 60%, Chặn 60%, Né 50%, Gạt+Né ≤ 70%, Gạt+Chặn+Né ≤ 90%; Chặn chỉ giảm (≤ 75% đòn nhẹ, 45% đòn nặng) và tốn Khí Thủ; đòn không thể chặn (đâm/quét/túm) bỏ qua Chặn/Gạt (01 §5).
- Vòng lặp hồi máu từ phòng thủ: mọi hồi máu "khi Gạt/Chặn/Né" có ICD và tính vào trần Regen 2%/s quy đổi (01 §3.1, 06 §8.4).
- Phản đòn spam: ICD Phản Đòn 0.8/1.5/1.2 s (Gạt/Chặn/Né).
- Tung hứng vô hạn: trần 10 hit trên không (thẻ nâng tối đa 24), trọng lực ×1.5 sau 6 hit, 1 lần dội tường + 1 lần dội đất mỗi lượt tung (01 §9).
- Build bất tử khác: trần DR 60%, tổng giảm ≥ 15% sát thương lọt, Regen 2%/s sau mọi hệ số, tối đa 3 hồi sinh miễn phí + 2 trả phí/run.
- Hồi Âm riêng tràn lượt chọn: cấu trúc lượt chọn cố định (ô A riêng, ô B chung, ô C linh hoạt) + chuẩn hóa trọng số (06 §4).
- Idle 24/7 phá nhịp kinh tế: Auto-Rerun dừng sau 5 run không chạm (Thẻ Tháng: 10).
- Run quá dài khi mạnh: Xuống Nhanh + tốc độ x2/x3.
- Lạm phát Vàng ở Vực Không Đáy: Vàng/tầng tuyến tính sau B100.
- Whale phá cân bằng: không PvP; bảng xếp hạng v1.1 tách theo Bậc Kinh Hoàng và theo anh hùng.
Quyết định đã chốt (owner giao AI tự quyết — 2026-11-01)
Owner yêu cầu "tự làm tất cả những gì bạn thấy tốt nhất mà không cần confirm". Các quyết định sau là baseline; chỉnh bằng CSV/Remote Config sau playtest:
| # | Hạng mục | Quyết định | Chi tiết |
|---|---|---|---|
| D1 | Thể loại & bối cảnh | Dark-fantasy hầm ngục đi xuống, ánh sáng từ lửa/phép trên nền tối (khớp ArtStyle hub §1 suy luận) | 05, 12 |
| D2 | Roster & cơ chế | 8 anh hùng ra mắt + 13 sau ra mắt (H09–H21, 1/mùa) §6.1, mỗi người một vũ khí theo concept art và một Cổng cơ chế riêng không trùng | 03 §9 |
| D3 | Hệ phòng thủ | Một roll phân vùng duy nhất (Gạt → Chặn → Né → Trúng) có trần tổng; quyết định lúc cam kết | 01 §5 |
| D4 | Combo | Lộ Trình Combo (route) thay cho bể đòn theo vai trò của Inkfu: mỗi Hồi Âm Combo = 1 lộ trình 2–8 đòn | 01 §6 |
| D5 | Nghệ thuật | 100% sprite nhân vật/VFX sinh bằng Tools/pixelfx (+ mở rộng costume/vũ khí); UI pixel bằng Pillow kit có sẵn; icon qua thang image-generation |
02, 12 |
| D6 | Màn hình | Native tham chiếu 270×480 (×4), tỉ lệ nguyên ưu tiên, thế giới rộng 270–384 px; PPU thế giới 16, PPU UI 25 (khớp PixelArtImportRules.cs) |
02 §2, 11, 13 §2.2 |
| D7 | Giá IAP | Điểm vào $0.99, trần $99.99, bảng giá khu vực 65% ở 16 thị trường | 09 |
| D8 | Ngân sách ảnh trả phí | $0 mặc định (pixelfx + Pillow + agy); bf-img chỉ khi owner cho phép từng đợt |
12 §7 |