170 lines
6.3 KiB
Markdown
170 lines
6.3 KiB
Markdown
# Lô Tô Online — Product Requirements Document (PRD)
|
||
|
||
---
|
||
|
||
## 1. Vision
|
||
|
||
Mang trải nghiệm **Lô Tô truyền thống miền Nam** lên nền tảng Zalo Mini App với phong cách hoài niệm tuổi thơ: giấy cũ ố vàng, rổ tre, túi vải đen đựng số, hạt gạo đặt lên vé. Người chơi tự tay bấm đặt hạt gạo — đúng sai tự chịu, giữ nguyên cảm giác hồi hộp của Lô Tô đời thực.
|
||
|
||
**MVP đầu tiên** sẽ chạy trên **web (mobile-first)** để thử nghiệm, sau đó chuyển sang **Zalo Mini App** khi ổn định.
|
||
|
||
---
|
||
|
||
## 2. Target Users
|
||
|
||
| Persona | Mô tả |
|
||
|---|---|
|
||
| Người Việt 20–45 tuổi | Lớn lên với Lô Tô, muốn hoài niệm |
|
||
| Nhóm bạn / gia đình | Chơi giải trí online cùng nhau |
|
||
| Casual gamer | Thích game đơn giản, may rủi, vui nhộn |
|
||
|
||
---
|
||
|
||
## 3. Core Game Rules (Lô Tô truyền thống)
|
||
|
||
### 3.1 Vé Lô Tô
|
||
|
||
- Bảng **3 hàng × 9 cột** = 27 ô
|
||
- Mỗi hàng có đúng **5 ô số** + 4 ô trống
|
||
- Số từ **1–90**, mỗi cột chứa số thuộc hàng chục tương ứng (cột 1: 1–9, cột 2: 10–19, …, cột 9: 80–90)
|
||
- Mỗi vé có **15 số** duy nhất, không trùng
|
||
|
||
### 3.2 Lượt chơi
|
||
|
||
1. Hệ thống **lắc túi vải** → **bốc 1 viên số** ngẫu nhiên (1–90, không lặp)
|
||
2. Hiển thị animation bốc số + **đọc số bằng giọng miền Nam**
|
||
3. Người chơi có **1–5 giây** (cài đặt khi tạo phòng) để **tự bấm đặt hạt gạo** vào ô tương ứng
|
||
4. Hết thời gian highlight → người hô đọc số tiếp, **không chờ** ai
|
||
5. Người chơi vẫn có thể **đặt muộn** (theo trí nhớ) bất cứ lúc nào
|
||
|
||
### 3.3 Điều kiện "Kinh" (Thắng)
|
||
|
||
- Hoàn thành **1 hàng ngang** (5/5 ô số trong hàng đều có hạt gạo)
|
||
- Hô **"Kinh!"** → hệ thống verify
|
||
|
||
### 3.4 Verify & Phạt
|
||
|
||
| Trường hợp | Kết quả |
|
||
|---|---|
|
||
| Tất cả hạt gạo đúng ô đã bốc | ✅ **Thắng** — nhận tiền thưởng từ tất cả người thua. Nếu có nhiều người cùng Kinh đúng ở một lượt, tiền thưởng được **chia đều** |
|
||
| Có ≥1 hạt gạo đặt nhầm ô (ô chưa được bốc) | ❌ **Phạt** — đền bằng **mức cược của phòng** cho **mỗi** người chơi còn lại |
|
||
|
||
### 3.5 Kết thúc ván
|
||
|
||
- Khi có người **kinh hợp lệ** → ván kết thúc (hoặc kết thúc lượt bốc hiện tại để xét những người kinh cùng lúc)
|
||
- Hoặc khi bốc hết 90 số mà chưa ai kinh → hoà (trả lại cược)
|
||
|
||
---
|
||
|
||
## 4. Features
|
||
|
||
### 4.1 Lobby & Phòng chơi
|
||
|
||
| Feature | Chi tiết |
|
||
|---|---|
|
||
| Lobby công khai | Danh sách phòng đang chờ, lọc theo mức cược |
|
||
| Tạo phòng | Chủ phòng cài đặt: mức cược, thời gian highlight (1–5s), số người (2–8) |
|
||
| Vào phòng | Click vào phòng trong lobby |
|
||
| Chờ & sẵn sàng | Tất cả sẵn sàng → bắt đầu |
|
||
| Rời phòng | Rời giữa chừng = bỏ cuộc, mất cược |
|
||
|
||
### 4.2 Gameplay
|
||
|
||
| Feature | Chi tiết |
|
||
|---|---|
|
||
| Lắc túi vải | Animation túi vải đen mềm mại + vật lý khi lắc |
|
||
| Bốc số | Animation tay rút viên số từ túi ra |
|
||
| Đọc số | Giọng đọc miền Nam truyền thống |
|
||
| Đặt hạt gạo | Click vào ô trên vé → hạt gạo rơi xuống (animation) |
|
||
| Đặt muộn | Vẫn bấm được sau khi hết highlight |
|
||
| Hô kinh | Nút hô kinh khi nghĩ mình hoàn thành hàng |
|
||
| Verify | Hệ thống kiểm tra → thắng hoặc phạt |
|
||
|
||
### 4.3 Economy (Hệ thống tiền tệ)
|
||
|
||
| Feature | Chi tiết |
|
||
|---|---|
|
||
| Đơn vị tiền | **"Đồng"** (xu ảo) |
|
||
| Nhận đồng miễn phí | Sự kiện hàng ngày, nhiệm vụ, hoạt động |
|
||
| Nạp tiền | Mua đồng bằng tiền thật (IAP / Zalo Pay) |
|
||
| Cược | Đặt cược khi vào phòng |
|
||
| Thắng | Nhận cược từ tất cả người chơi thua |
|
||
| Phạt kinh sai | Trả mức cược × số người chơi còn lại |
|
||
|
||
### 4.4 Profile & Xếp hạng
|
||
|
||
| Feature | Chi tiết |
|
||
|---|---|
|
||
| Đăng nhập Zalo | Dùng Zalo account, lấy avatar + tên |
|
||
| Profile | Tổng đồng, số ván thắng/thua, tỷ lệ thắng |
|
||
| Lịch sử chơi | Danh sách ván đã chơi, kết quả, thời gian |
|
||
| Bảng xếp hạng | Theo tổng đồng kiếm được |
|
||
|
||
### 4.5 Social (Trong phòng)
|
||
|
||
| Feature | Chi tiết |
|
||
|---|---|
|
||
| Chat | Nhắn tin trong phòng chơi |
|
||
| Reactions / Emoji | Gửi emoji nổi lên màn hình |
|
||
|
||
### 4.6 Audio
|
||
|
||
| Feature | Chi tiết |
|
||
|---|---|
|
||
| Giọng đọc số | Giọng miền Nam, đọc từng số theo kiểu lô tô |
|
||
| Nhạc nền | Vui tươi, gợi hoài niệm tuổi thơ |
|
||
| SFX — đặt hạt gạo | Tiếng gạo rơi nhẹ |
|
||
| SFX — đợi | Tiếng hò reo nhỏ, xì xào khi đợi |
|
||
| SFX — kinh | La lên, pháo hoa, reo hò |
|
||
| SFX — kinh sai | Tiếng thở dài, ồ tiếc nuối |
|
||
|
||
---
|
||
|
||
## 5. Art Direction (Phong cách hoài niệm)
|
||
|
||
| Yếu tố | Chi tiết |
|
||
|---|---|
|
||
| **Nền** | Giấy cũ ố vàng, texture gỗ mộc |
|
||
| **Vé lô tô** | Giấy carton cũ, viền tròn, chữ in mờ kiểu cũ |
|
||
| **Túi số** | Vải đen mềm, animation vật lý khi lắc |
|
||
| **Viên số** | Bi gỗ tròn, khắc số đỏ |
|
||
| **Hạt gạo** | Hạt gạo trắng thật, có bóng đổ nhẹ |
|
||
| **Rổ tre** | Đựng các viên số đã bốc |
|
||
| **Font** | Handwritten / retro Việt Nam |
|
||
| **Màu chủ đạo** | Nâu gỗ, vàng ố, đỏ đất, xanh lá cũ |
|
||
|
||
---
|
||
|
||
## 6. Platform & Technical Constraints
|
||
|
||
| Hạng mục | Chi tiết |
|
||
|---|---|
|
||
| **MVP platform** | Web (mobile-first), responsive cho điện thoại |
|
||
| **Production platform** | Zalo Mini App |
|
||
| **Multiplayer** | Real-time (WebSocket) |
|
||
| **Min players** | 2 |
|
||
| **Max players** | 8 |
|
||
| **Target device** | Mobile only |
|
||
|
||
---
|
||
|
||
## 7. Out of Scope (v1)
|
||
|
||
- Tablet / Desktop optimized layout
|
||
- Tournament mode
|
||
- Friend list / invite via Zalo
|
||
- Spectator mode
|
||
- AI bot players
|
||
- Multiple vé per player
|
||
|
||
---
|
||
|
||
## 8. Success Metrics
|
||
|
||
| Metric | Target |
|
||
|---|---|
|
||
| Prototype hoàn chỉnh | Full gameplay + multiplayer + animation + audio |
|
||
| Latency bốc số → hiện | < 200ms |
|
||
| Animation FPS | ≥ 30fps trên mid-range phone |
|
||
| Ván chơi trung bình | 3–8 phút |
|