Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Game mô phỏng cuộc sống sẽ như thế nào nếu tràng ngập dopamine
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
⏳ Cuộc Sống 24 Giờ (24-Hour Life) Game mô phỏng đưa ra quyết định thực tế về quản lý thời gian, năng lượng, tài chính và bẫy dopamine trong 24 giờ mỗi ngày. "Cuộc sống 24 giờ" không phải là một trò chơi dạy đạo lý hay bắt bạn sống như một cỗ máy hoàn hảo. Trò chơi đặt bạn vào một mô phỏng thực tế: Bạn có đúng 24 giờ mỗi ngày, đối diện với các áp lực sinh hoạt, chi phí thuê nhà, công việc, các mối quan hệ xã hội và đặc biệt là những cơn thèm dopamine ngắn hạn của bộ não.檢視完整 README ↗
Game mô phỏng đưa ra quyết định thực tế về quản lý thời gian, năng lượng, tài chính và bẫy dopamine trong 24 giờ mỗi ngày.
"Cuộc sống 24 giờ" không phải là một trò chơi dạy đạo lý hay bắt bạn sống như một cỗ máy hoàn hảo. Trò chơi đặt bạn vào một mô phỏng thực tế: Bạn có đúng 24 giờ mỗi ngày, đối diện với các áp lực sinh hoạt, chi phí thuê nhà, công việc, các mối quan hệ xã hội và đặc biệt là những cơn thèm dopamine ngắn hạn của bộ não.
Mục tiêu của game là giúp người chơi tự nhận diện khoảnh khắc:
"Ơ, mình vừa đưa ra một lựa chọn tưởng chừng nhỏ nhặt và vô hại, nhưng cái giá phải trả vào ngày mai lại lớn đến thế!"
| Chỉ số | Vai trò & Ý nghĩa | Hậu quả khi cạn kiệt / vượt ngưỡng |
|---|---|---|
| ⚡ Năng Lượng (0–100%) | Sức lực thể chất để hoạt động trong ngày | Khi $\le 10%$: Kiệt sức hoàn toàn (Burnout). |
| 🧠 Tinh Thần (0–100%) | Sức khỏe tâm lý, khả năng chịu đựng stress | Khi $\le 15%$: Trầm cảm, lo âu, tê liệt quyết định. |
| 🛡️ Ý Chí (0–100%) | Cơ chế cốt lõi mới: Sức kháng cự trước cám dỗ | Khi $< 35%$: Kích hoạt hiệu ứng Ảo giác Cám dỗ! |
| ✨ Dopamine (0–100%) | Mức độ hưng phấn và kích thích thần kinh | Nếu hôm đó dồn nhiều dopamine nhanh (≈ 45 điểm từ hành vi cám dỗ hoặc ≥ 3.5 giờ): Gây Dopamine Crash vào sáng hôm sau. Dopamine cao nhờ học tập, vận động không bị phạt. |
| 👥 Kết Nối (0–100%) | Mối quan hệ với gia đình, bạn bè | Khi $< 25%$: Sự cô đơn làm xói mòn tinh thần tự động mỗi ngày. |
| 💰 Tài Chính (nghìn VNĐ) | Ngân sách sinh hoạt và chi trả các nhu cầu | Tự trừ tiền trọ 120k/ngày. Nếu âm tiền: Khủng hoảng nợ nần. |
Game mô phỏng thực tế khoa học thần kinh về 2 cơ chế giải phóng dopamine:
+40 Dopamine tức thì!).Sleep Debt): Ngủ dưới 7 tiếng/ngày khiến nợ ngủ dồn lại. Khi nợ ngủ $\ge 6\text{h}$, bạn thức dậy với hội chứng sương mù não (Brain Fog).Mỗi ván kết thúc bằng một kết cục (10 kiểu người chơi, ví dụ Bậc Thầy Cân Bằng, Nô Lệ Dopamine, Ẩn Sĩ Ngủ Đông) cùng điểm 0–100. Người chơi có thể tạo ảnh chia sẻ ngay trên máy (Canvas, không server, không theo dõi).
Simulation Bench)Game tích hợp sẵn công cụ mô phỏng chiến thuật tự động ngay trên giao diện:
Dự án áp dụng chặt chẽ 3 nguyên tắc cốt lõi:
packages/domain/src/.string, number, boolean, plain arrays) và trả về DTOs thuần túy.useGameAdapter.src/
├── domain/ # 🧠 PURE DOMAIN (Rule 1 & 2: NO React/UI/Storage, Primitive I/O)
│ ├── types.ts # Kiểu dữ liệu primitive (PlayerStatsPrimitive, SoundCue, ...)
│ ├── stats.ts # Toán học chỉ số, clampStats, evaluateLifeStatus
│ ├── actions.ts # 15 hành vi, executeActionById(actionId, stats, hoursRemaining)
│ ├── consequence.ts # processOvernightCycle(stats, actionIds, sleepDebt, day)
│ ├── events.ts # rollDomainEvent, resolveDomainChoice
│ ├── simulate.ts # runDomainSimulation (động cơ mô phỏng headless 1000 ván)
│ └── index.ts # Facade API Domain duy nhất
│
├── adapters/ # 🔌 ADAPTER LAYER (Rule 3: Cắm UI, Storage, Audio vào Domain)
│ ├── storageAdapter.ts # Cắm localStorage vào domain primitives
│ ├── audioAdapter.ts # Cắm Web Audio API vào domain sound cues
│ └── useGameAdapter.ts # Controller Hook kết nối UI và Domain Facade
│
├── ui/ # 🖥️ VIEW LAYER: React components hiển thị thuần
│ ├── TopNav.tsx # Thanh điều hướng 3 vùng
│ ├── StatsHUD.tsx # Bảng đo 6 chỉ số phản hồi động
│ ├── TimeTrack.tsx # Thanh quỹ thời gian 24 giờ
│ ├── ActionCard.tsx # Thẻ hành vi (ảo giác khi ý chí thấp)
│ ├── ActionGrid.tsx # Lưới hành vi & bộ lọc danh mục
│ ├── MorningModal.tsx # Hộp thoại bình minh & cơ chế ẩn
│ ├── EventModal.tsx # Hộp thoại biến cố bất ngờ
│ ├── WeekReviewModal.tsx # Hộp thoại tổng kết tuần & câu hỏi phản tư
│ ├── SimulationBench.tsx # Bàn thí nghiệm mô phỏng thuật toán
│ └── GuideModal.tsx # Hướng dẫn quy luật & triết lý
│
├── App.tsx # View Root điều phối qua useGameAdapter
└── main.tsx # Entry point
# 1. Cài đặt các gói phụ thuộc
npm install
# 2. Khởi chạy máy chủ phát triển
npm run dev
Khi deploy, đặt biến môi trường
VITE_SITE_URL(trên Vercel tự nhận) để thẻ OG có URL tuyệt đối.
Mở trình duyệt tại địa chỉ: http://localhost:3000
# Kiểm tra TypeScript
npm run lint
# Build bản phát hành (Production)
npm run build
2–8 người cùng sống một tuần trong một thành phố 3D: mỗi người tự lo 24 giờ của mình, rủ nhau làm hoạt động chung (ăn, chạy bộ, học nhóm, tâm sự, xem phim, nhậu),
động viên nhau; server tính mọi chỉ số, client chỉ gửi ý định. Không streak, không bảng xếp hạng, không quảng cáo.
Chạy thử: npm run dev:all, mở http://localhost:3000 (vài tab), tab Chơi cùng bạn → tạo phòng → gửi mã 4 ký tự.
Số liệu cân bằng nhóm và phiếu playtest: ROADMAP.md, PLAYTEST.md. Triển khai server: docs/deploy-server.md.
packages/domain @24h/domain luật chơi thuần, build bằng tsc -> dist (chạy được cả trong Node)
apps/web @24h/web Vite + React (import @24h/domain)
apps/server @24h/server Colyseus 0.18: LifeRoom (nhiều người chơi, server quyết định mọi chỉ số)
npm run dev | build | lint | test chạy qua các workspace (domain trước, rồi web).apps/web đọc thẳng packages/domain/src (điều kiện source trong exports) nên có HMR và không cần build domain trước; Node/server dùng dist.npm run dev:all. Triển khai server (Docker, Fly.io, CORS, VITE_SERVER_URL): xem docs/deploy-server.md.npm run dev -w @24h/server (watch) hoặc npm run build && npm start -w @24h/server. Biến môi trường PORT (mặc định 2567); GET /health trả {status:"ok"}.
client.create("life") -> mã 4 ký tự là room.roomId; vào phòng: client.joinById(code, {name}). Tối đa 8 người, phòng không liệt kê công khai.action {actionId}, move {x,z}, chat {text}; server validate và áp dụng bằng @24h/domain. Message lạ bị ngắt kết nối.planning (240s, chỉnh bằng env PLANNING_SECONDS; hành động + ready) → night (server chạy processOvernightCycle cho từng người) → morning (mỗi client nhận morning = báo cáo riêng của mình; 20s hoặc mọi người ready) → ngày kế. Sau ngày 7 hoặc khi mọi người sụp đổ: ended. Phòng khóa sau đêm đầu tiên.joint {op:'offer'|'join'|'leave'|'start'}. Người rủ (host) tạo lời rủ, người khác nhận invite và vào, host bắt đầu (hoặc đầy chỗ thì tự chạy). Kết quả tính bằng resolveJointAction; nudge {targetId} gửi lời động viên (hồi ý chí nhẹ, tối đa 3 lần/ngày). Lời rủ cám dỗ (nhậu) kéo nhẹ ý chí của người ý chí thấp, và trong buổi nhậu người ý chí thấp dễ bị kéo ở lại thêm (áp lực đồng trang lứa).reconnect(token) và nhận lại báo cáo sáng nếu đang morning), sau đó bot Balanced chơi thay (player.bot = true). Người ngắt kết nối và bot không chặn việc sang phase kế.roomSeed + playerId + day (roomSeed do server sinh, không gửi cho client).Chi tiết tiến độ phát triển theo từng tuần, danh sách các đầu việc đã nghiệm thu và chỉ dẫn dành cho Agent được lưu trữ tại file ROADMAP.md:
[ĐÃ HOÀN THÀNH].[ĐANG TRIỂN KHAI].[KẾ HOẠCH].Dự án kiên quyết tuân thủ:
localStorage.apps/webvercel.jsonapps/web