NEON SURVIVORS v1.1 — full-featured bullet-heaven survivor game
Vanilla JS + Canvas, zero dependencies, offline-first PWA. Gameplay: - 11 weapons x8 levels + 11 evolutions (chest-based), incl. timed mines - 13 passives, crit system with directional hit-sparks & hit-stop - 10 characters w/ unique mods + unlock conditions, gold cosmetic skins - 3 biomes (Neon Graveyard / Frozen Hollow / Magma Rift) each with own spawn tables, boss plans and music flavor; Endless mode + surges; 4 difficulty grades; breakable crystal-lamp props - Elite random affixes (Swift/Sturdy/Volatile), 4 bosses, win flow - Achievements (23) w/ gold rewards, run history, daily seeded challenge Tech: - Cinematic canvas main-menu scene, game-feel FX suite (trails, muzzle, status tints, low-HP pulse), viewport culling + particle pooling - WebAudio synth SFX + generative per-biome soundtrack - Gamepad support, remappable keys, touch joystick, fullscreen - i18n VI/EN, localStorage saves w/ export-import codes - Cloudflare Workers leaderboard scaffold (KV) w/ signed submits - Headless integrity test-suite (node test/integrity.js)
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
# 🌃 NEON SURVIVORS
|
||||
|
||||
Một game **survivor / bullet-heaven** hoàn chỉnh (lấy cảm hứng từ Vampire Survivors), viết thuần bằng
|
||||
HTML5 Canvas + JavaScript — **không cần cài đặt, không asset ngoài, không internet**, mọi thứ từ đồ họa
|
||||
đến âm thanh đều được sinh tự động bằng code.
|
||||
|
||||
 
|
||||
|
||||
---
|
||||
|
||||
## ▶️ Cách chạy
|
||||
|
||||
**Cách 1 — mở thẳng file:** nhấp đúp vào `index.html` (Chrome / Edge / Firefox).
|
||||
|
||||
**Cách 2 — qua local server (khuyến nghị cho mobile LAN):**
|
||||
|
||||
```bash
|
||||
cd 2dsurvivor
|
||||
python3 -m http.server 8080 # hoặc: npx serve .
|
||||
# mở http://localhost:8080
|
||||
```
|
||||
|
||||
## 🎮 Điều khiển
|
||||
|
||||
| Hành động | Desktop | Mobile |
|
||||
|---|---|---|
|
||||
| Di chuyển | `WASD` / Phím mũi tên | Kéo ngón tay trên màn hình (joystick ảo) |
|
||||
| Tấn công | **Tự động** — cứ việc né! | Tự động |
|
||||
| Tạm dừng | `Esc` / `P` | Nút hệ thống |
|
||||
| Chọn nâng cấp | Chuột / `1`–`4` | Chạm |
|
||||
|
||||
## ✨ Tính năng
|
||||
|
||||
### Gameplay
|
||||
- **11 vũ khí** riêng biệt (đũa phép, roi, phi đao, quả cầu quay, rìu, hào quang, thiên lôi,
|
||||
cầu lửa, băng tinh, thánh giá, 🧨 mìn hẹn giờ) — mỗi vũ khí **8 cấp** với bảng nâng cấp riêng.
|
||||
- **11 dạng tiến hóa**: (mìn → 💣 Vườn Pháo Hoa) vũ khí đầy cấp + sở hữu passive tương ứng → mở **Rương Báu Vật**
|
||||
(rơi từ quái Tinh Anh & Trùm) để tiến hóa (VD: Đũa Phép + Siêu Dẫn ⇒ 🌟 Bão Thần Tín).
|
||||
- **13 vật phẩm bị động** (sát thương, giáp, HP, hồi máu, hồi chiêu, diện tích, tốc đạn,
|
||||
thời gian, di chuyển, nam châm, may mắn, tham lam, tuệ tăng).
|
||||
- **10 nhân vật** mở khóa dần (thêm 🏹 Hana chí-mạng & 🧱 Bram diện-tích), kèm **🎨 skin màu** mua bằng vàng.
|
||||
- **Đạo quái theo phút**: 8 loại quái thường (đuổi, bắn, bay lượn, húc, chia màn…),
|
||||
quái **Tinh Anh** định kỳ, và **4 Trùm lớn** ở phút 5/10/19:
|
||||
🐺 Sói Đầu Lớn → 💀 Pháp Sư Xương → 👹 Quái Vật Địa Ngục → ⚰ **Tử Thần**.
|
||||
Hạ Tử Thần ở phút 19 để **chiến thắng**.
|
||||
- Hiệu ứng trạng thái: cháy, làm chậm, đóng băng (kèm sát thương vỡ băng), choáng, đẩy lùi, hút máu.
|
||||
- Chí mạng, số sát thương nổi, hạt hiệu ứng, rung màn hình, mũi tên chỉ trùm ngoài màn hình.
|
||||
|
||||
### Tiến trình & tùy chọn
|
||||
- **Meta-progression**: vàng tích lũy vĩnh viễn, cửa hàng **12 nâng cấp vĩnh viễn** (có hồi sinh, bốc lại…).
|
||||
- Lưu tự động bằng `localStorage` (khóa `neon_survivors_v1`), kèm nút xóa dữ liệu.
|
||||
- **Tùy chọn đầy đủ**: âm lượng chung/nhạc/SFX, rung màn hình, số sát thương, chất lượng hạt
|
||||
(Thấp/Vừa/Cao), hiện FPS, tự tạm dừng khi mất tiêu điểm, **ngôn ngữ Việt/Anh** chuyển tức thì,
|
||||
**fullscreen**, **remap phím di chuyển**.
|
||||
- Bách khoa toàn thư (Codex): xem toàn bộ vũ khí/passive/quái/trùm/nhân vật + điều kiện mở khóa.
|
||||
- Màn hình tổng kết: thời gian, kills, vàng, cấp độ, kỷ lục cá nhân.
|
||||
- Chơi được trên **desktop lẫn mobile** (joystick ảo), responsive theo DPR; cài được như app (PWA).
|
||||
|
||||
### 🆕 Phase 1 — thương mại hóa
|
||||
- **3 biome**: 🪦 Nghĩa Địa Neon → ❄️ Hang Băng (mở ở mốc 10 phút) → 🌋 Vực Magma (mở sau 1 thắng);
|
||||
mỗi biome có bảng quái, kế hoạch trùm, palette và hệ số HP/vàng riêng.
|
||||
- **Chế độ Vô tận (∞)** + **4 bậc độ khó** (I → 💀): HP/sát thương tăng, vàng thưởng tăng.
|
||||
- **⚡ Thử thách hôm nay**: seed theo ngày UTC — cả thế giới chơi cùng 1 màn (nhân vật/stage cố định),
|
||||
lưu kỷ lục ngày.
|
||||
- **🏆 23 thành tựu** gắn tiến trình thật, popup vàng + tab riêng trong Codex.
|
||||
- **💎 Đèn pha lê phá được** rơi quanh bản đồ → xu + gà.
|
||||
- **📜 Lịch sử 20 ván gần nhất** + tổng hợp (tỉ lệ thắng, nhân vật chủ lực).
|
||||
- **💾 Xuất/Nhập save** dạng mã base64 (chuyển máy).
|
||||
- **Tutorial tương tác** lần đầu chơi + mẹo trùm.
|
||||
- **Gamepad** (stick trái/D-pad/A/Start), perf: viewport culling + object pool particle.
|
||||
- **🥇 Bảng xếp hạng**: scaffold Cloudflare Worker KV (`server/lb-worker.js` + `wrangler.toml`) —
|
||||
điền URL vào Tuỳ chọn là tự submit/top; chữ ký checksum chống sửa tay (client↔worker khớp 100%).
|
||||
|
||||
## 🔓 Gợi ý mở khóa
|
||||
|
||||
| Nhân vật | Điều kiện |
|
||||
|---|---|
|
||||
| Mira | Diệt tổng cộng 500 quái |
|
||||
| Bolt | Sống sót đến phút 10 |
|
||||
| Luna | Kiếm tổng cộng 2.000 vàng |
|
||||
| Rook | Hạ trùm đầu tiên (phút 5) |
|
||||
| Nyx | Sống sót đến phút 15 |
|
||||
| Sera | Thắng 1 ván |
|
||||
| Vane | Diệt tổng cộng 5.000 quái |
|
||||
|
||||
## 🧪 Kiểm thử (dành cho dev)
|
||||
|
||||
```bash
|
||||
node test/integrity.js
|
||||
```
|
||||
Bộ test headless kiểm tra tính toàn vẹn dữ liệu (tiến hóa, bảng spawn, song ngữ VN/EN, bảng stat)
|
||||
và **mô phỏng 2.5 phút chiến đấu thật** trong sandbox VM: bắn, chết, rớt đồ, lên cấp, mở rương
|
||||
tiến hóa, não AI của cả 4 trùm, i-frame và dòng chết.
|
||||
|
||||
## 📁 Cấu trúc
|
||||
|
||||
```
|
||||
index.html entry point
|
||||
css/style.css theme neon tối
|
||||
js/
|
||||
util.js toán học, RNG, spatial grid broadphase
|
||||
i18n.js từ điển VI/EN
|
||||
save.js localStorage meta-progression
|
||||
audio.js tổng hợp SFX + nhạc nền generative (WebAudio)
|
||||
data.js TOÀN BỘ nội dung: vũ khí/passive/quái/trùm/cửa hàng
|
||||
entities.js Player / Enemy / Proj / Pickup / Particle…
|
||||
systems.js spawn director, AI, combat, pickups, level-up, chest
|
||||
render.js vẽ canvas (nhân vật vector, hiệu ứng, vignette)
|
||||
ui.js menu / HUD / modal DOM
|
||||
game.js vòng lặp, trạng thái, input, camera
|
||||
test/integrity.js bộ test headless
|
||||
```
|
||||
|
||||
Chúc bạn sống sót qua phút thứ 19! ⚰️🔥
|
||||
Reference in New Issue
Block a user