Phiên bản nhiều người chơi phát triển từ Flappy Bird gốc — với combat nảy lửa, cửa hàng, cấp độ, huy hiệu và bảng vàng.
Cách chơi: mở index.html bằng trình duyệt là chơi được ngay (không cần cài đặt, không cần server).
| Chế độ | Mô tả |
|---|---|
| 🐤 Chơi đơn | Flappy Bird cổ điển, tính xu & XP |
| 🤖 Chơi với máy | Đấu với AI bot (Dễ / Thường / Khó), thắng được thưởng 20 xu |
| 👥 Chơi đôi | 2 người cùng bàn phím, điểm đội cộng dồn |
| 🌐 Chơi qua mạng | 2 người trên 2 máy khác nhau qua WebSocket, điểm đội cộng dồn |
Chế độ máy, đôi & qua mạng có 2 kiểu màn chơi: ∞ Vô tận (khó dần) hoặc 🚩 Theo màn (mỗi màn 10 ống, qua màn tăng tốc & hẹp khe).
- Chạy server (1 lần, trên 1 máy bất kỳ trong mạng LAN):
cd server npm install # lần đầu npm start # server in ra địa chỉ ws://<IP>:8080
- Cả 2 máy mở game → 🌐 Chơi qua mạng → nhập địa chỉ server (máy chạy server dùng
ws://localhost:8080, máy khác dùngws://<IP-máy-chạy-server>:8080) → Kết nối - Máy 1 bấm 🏠 Tạo phòng → nhận mã 4 ký tự → đọc cho bạn
- Máy 2 nhập mã → Vào phòng → chủ phòng chọn kiểu màn và ▶ Bắt đầu
- Mỗi máy điều khiển chim của mình:
Space/Click để bay,Fđể bắn 🔥. Ai gục có thể xem tiếp hoặc bỏ xu hồi sinh (xu của máy mình). Chủ phòng bấm Chơi lại để tái đấu.
Kỹ thuật: server (
server/server.js) chỉ ghép phòng & chuyển tiếp tin nhắn. Máy chủ phòng chạy toàn bộ mô phỏng và phát snapshot ~20 lần/giây; máy khách gửi thao tác và dự đoán chuyển động giữa các snapshot.
- Game: mở https://vivutech.github.io/flappybird/ (GitHub Pages)
- Server: deploy 1-click lên Render (miễn phí):
- Sau khi deploy, cả 2 máy nhập địa chỉ server dạng
wss://flappy-battle-server.onrender.com(chú ýwss://, không có:8080) - Lưu ý gói miễn phí Render: server "ngủ" sau ~15 phút không dùng, lần kết nối đầu có thể chờ ~50 giây khởi động lại.
- Người chơi 1:
Space/ Click / Chạm để bay ·Fđể bắn cầu lửa - Người chơi 2:
Whoặc↑để bay ·Lđể bắn cầu lửa
- Nhặt vật phẩm lửa xuất hiện giữa khe ống để tích đạn (tối đa 3)
- Bắn cầu lửa vào đối thủ → đối thủ bị choáng ~0.75 giây, rơi tự do không búng được
- Khiên 🛡 chặn được 1 cầu lửa hoặc 1 va chạm ống
Trong chế độ máy/đôi, khi 1 người gục mà đồng đội còn bay:
- 👀 Xem tiếp — theo dõi đồng đội chơi, điểm vẫn cộng dồn
- 💰 Hồi sinh — bỏ xu mua lượt chơi tiếp (10 → 20 → 40 xu, tăng theo số lần)
- Cả 2 cùng gục → kết thúc, tổng điểm ghi vào bảng vàng
- 6 loại chim: Vàng (mặc định) · Đỏ, Xanh (100 xu) · Tím, Cam, Hồng (200 xu)
- Vật phẩm tiêu hao mỗi ván: Khiên (15), Búng cao (20), Thu nhỏ (25), Nam châm (30), Hồi sinh sẵn (50)
🥉 Đồng (1–4) → 🥈 Bạc (5–9) → 🥇 Vàng (10–19) → 💎 Kim cương (20–34) → 👑 Huyền thoại (35+)
Top 10 mỗi chế độ, lưu tên + chim + huy hiệu + ngày lập kỷ lục (localStorage).
- HTML/CSS + Canvas, JavaScript thuần — không framework, không build tool
- Lưu tiến trình bằng
localStorage - Mã nguồn tách module trong thư mục
js/:constants·storage·progression·leaderboard·bird·pipes·combat·ai·shop·ui·main
(src: google images)
(src: https://www.spriters-resource.com/fullview/59894/)
(src: https://www.sounds-resource.com/mobile/flappybird/sound/5309/)
Dựa trên mã nguồn Flappy Bird gốc: https://github.com/noanonoa/flappy-bird