Một template game sử dụng Cocos Creator với tích hợp Telegram Web App và kết nối real-time thông qua Socket.IO.
Project này là một template cơ bản cho việc phát triển game trên Cocos Creator với các tính năng:
- Tích hợp Telegram Web App để xác thực người dùng
- Kết nối real-time với server thông qua Socket.IO
- Hệ thống Lucky Spin (vòng quay may mắn)
- Quản lý avatar và thông tin người dùng
- API client để giao tiếp với backend
- Tự động lấy thông tin người dùng từ Telegram
- Tạo token xác thực và lưu trữ local
- Hỗ trợ fallback với fake token cho development
- Socket.IO Client: Kết nối real-time với server
- HTTP API Client: Gửi request REST API
- Singleton Pattern: Quản lý kết nối mạng tập trung
- Vòng quay may mắn với animation mượt mà
- Hỗ trợ nhiều loại item (Thief, Coin)
- Tùy chỉnh thời gian quay và số vòng
- Responsive design với scaling tự động
- Hệ thống config tập trung
assets/00_GAME/
├── Scenes/
│ └── GameMain.scene # Scene chính của game
├── Scripts/
│ ├── Config.ts # Cấu hình global
│ ├── game/
│ │ └── gameMain.ts # Logic chính của game
│ ├── luckySpin/
│ │ ├── LuckySpin.ts # Hệ thống vòng quay may mắn
│ │ └── itemSpin.ts # Item trong vòng quay
│ ├── network/
│ │ ├── NetworkingPeer.ts # Socket.IO client
│ │ ├── RequestBase.ts # HTTP API client
│ │ └── socket.io-client.d.ts
│ └── utils/
│ ├── Singleton.ts # Pattern Singleton
│ └── utils.ts # Utility functions
build/Server/src/public --> Client sẽ được CC build vào đây
build-templates/web-mobiles/index.ejs --> template build sẽ được sửa ở đây
- Cocos Creator 3.8.7+
- Node.js 14+
- Server backend với Socket.IO
npm install- Mở file
assets/00_GAME/Scripts/Config.ts - Cập nhật
hostURL để trỏ đến server của bạn:
static host: string = 'http://your-server-url:port';- Mở project trong Cocos Creator
- Build và chạy trên platform mong muốn
- Đảm bảo server backend đang chạy
POST /api/auth/telegram- Xác thực Telegram userGET /proxy-image- Proxy để load avatar từ URL
- Kết nối với token xác thực
- Hỗ trợ các event tùy chỉnh
- Tạo bot qua @BotFather
- Cấu hình Web App URL
- Thêm bot vào Telegram
- Tự động expand và disable vertical swipes
- Lấy thông tin user từ
initData - Load avatar thông qua proxy
// Thêm component LuckySpin vào scene
// Cấu hình items và parameters
// Gọi method spin() để quay
luckySpinComponent.spin();enum GAMESTATE {
READY = 1, // Sẵn sàng
PLAYING = 2, // Đang chơi
PAUSE = 3, // Tạm dừng
OVER = 4, // Kết thúc
}// Kết nối
NetworkingPeer.connectToWebSocket();
// Thêm listener
NetworkingPeer.AddListener('eventName', (data) => {
console.log('Received:', data);
});
// Gửi event
NetworkingPeer.EmmitEvent('eventName', data);// Tạo request
let request = new RequestBase('/api/endpoint', METHOD.POST);
request.Send(data, (response) => {
console.log('Response:', response);
});- Tạo class mới kế thừa từ
itemSpin - Thêm vào enum
LuckySpinType - Cấu hình trong scene
- Cập nhật enum
GAMESTATE - Thêm logic xử lý trong
gameMain.ts
- Kiểm tra server có đang chạy không
- Verify token xác thực
- Check CORS settings
- Kiểm tra proxy endpoint
- Verify URL avatar có hợp lệ
- Check network permissions
- Đảm bảo chạy trên HTTPS
- Check bot configuration
- Verify Web App URL
Template này được phát triển cho mục đích học tập và phát triển game.
- Fork project
- Tạo feature branch
- Commit changes
- Push to branch
- Tạo Pull Request
Nếu có vấn đề hoặc câu hỏi, vui lòng tạo issue trên repository.
Lưu ý: Đây là template cơ bản, bạn cần customize theo yêu cầu cụ thể của game.