main
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)
🌃 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):
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óaneon_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)
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! ⚰️🔥
Description
NEON SURVIVORS — bullet-heaven survivor game (vanilla JS): 11 weapons + evolutions, 10 characters, skins, 3 biomes + endless + grades, achievements, daily challenge, Cloudflare leaderboard worker, PWA
139 KiB
Languages
JavaScript
87.6%
CSS
9.1%
HTML
3.3%