Một game chạy vô tận 3D được xây dựng bằng Three.js với hệ thống lưu điểm và bảng xếp hạng.
Endless Runner Game là một game 3D nơi người chơi điều khiển nhân vật chạy và nhảy để tránh các chướng ngại vật, thu thập coin và đạt điểm cao nhất có thể. Game được xây dựng với:
- Frontend: Three.js, HTML5, CSS3, JavaScript ES6+
- Backend: Node.js, Express.js
- Database: MongoDB
- Tính năng: Hệ thống điểm số, bảng xếp hạng, âm thanh, hiệu ứng 3D
- Node.js (phiên bản 14.0.0 trở lên)
- npm hoặc yarn
- MongoDB (có thể sử dụng MongoDB Atlas - cloud database)
git clone <repository-url>
cd endlessRunnerGamenpm installcd api
npm install
cd ..cd apiTạo file .env với nội dung sau:
MONGODB_URI=mongodb://localhost:27017/endless_runner
DB_NAME=endless_runner
COLLECTION_NAME=scores
PORT=3000Lưu ý:
- Nếu sử dụng MongoDB Atlas, thay đổi
MONGODB_URIthành connection string của bạn - Ví dụ:
mongodb+srv://username:password@cluster.mongodb.net/endless_runner
cd api
node server.jsBạn sẽ thấy thông báo:
✅ Connected to MongoDB
🚀 Server running at http://localhost:3000
Mở file index.html trong trình duyệt web hoặc sử dụng local server:
- Mở file
index.htmltrong trình duyệt web
# Sử dụng Python (nếu có)
python -m http.server 8000
# Hoặc sử dụng Node.js http-server
npx http-server -p 8000
# Hoặc sử dụng Live Server extension trong VS CodeSau đó truy cập: http://localhost:8000
- Spacebar hoặc Click chuột: Nhảy
- R: Khởi động lại game (khi game over)
- Chạy càng xa càng tốt
- Thu thập coin để tăng điểm
- Tránh các chướng ngại vật
- Đạt điểm cao nhất để lên bảng xếp hạng
endlessRunnerGame/
├── api/ # Backend server
│ ├── server.js # Express server
│ ├── package.json # Backend dependencies
│ └── .env # Environment variables (cần tạo)
├── js/ # Frontend JavaScript
│ ├── main.js # Entry point
│ ├── game.js # Game logic
│ ├── player.js # Player controller
│ ├── obstacleManager.js # Obstacle management
│ ├── world.js # World rendering
│ └── ui.js # User interface
├── textures/ # Game assets
│ ├── background.png
│ ├── img/
│ └── ...
├── sound/ # Audio files
│ ├── music.mp3
│ ├── jump_sound.wav
│ └── ...
├── index.html # Main HTML file
├── package.json # Frontend dependencies
└── README.md # This file
Backend server cung cấp các API sau:
POST /scores- Lưu điểm cuối cùngPOST /scores/temp- Lưu điểm tạm thờiGET /scores/top5- Lấy top 5 người chơi
- Kiểm tra MongoDB đã được khởi động
- Kiểm tra connection string trong file
.env - Đảm bảo network connection nếu sử dụng MongoDB Atlas
- Backend đã được cấu hình CORS để cho phép frontend truy cập
- Nếu vẫn gặp lỗi, kiểm tra URL trong frontend code
- Kiểm tra console trong Developer Tools
- Đảm bảo tất cả dependencies đã được cài đặt
- Kiểm tra đường dẫn file trong
index.html
- Chỉnh sửa logic trong
js/game.js - Cập nhật UI trong
js/ui.js - Thêm API endpoints nếu cần trong
api/server.js
- Thay thế textures trong thư mục
textures/ - Thay thế âm thanh trong thư mục
sound/ - Cập nhật đường dẫn trong code tương ứng
- Fork dự án
- Tạo feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Mở Pull Request
Dự án này được phân phối dưới giấy phép ISC.
- Nhóm phát triển - Endless Runner Game
Lưu ý: Đảm bảo MongoDB đang chạy trước khi khởi động backend server!