A modern web-based multiplayer Pong game with advanced features and additional modules.
ft_transcendence is a web application centered around the classic game of Pong, enhanced with modern features like user accounts, tournaments, matchmaking, and much more. This project showcases a comprehensive full-stack development approach, integrating multiple technologies to create a seamless user experience.
- Classic Pong Game: Experience the original arcade sensation with modern enhancements
- User Accounts: Create profiles, add friends and personalize your experience
- Tournament System: Organize and participate in competitive tournaments
- Real-time Multiplayer: Play against friends or random opponents online
- Chat System: Communicate with other players
-
Django Backend Framework:
- Robust server-side architecture using Django
- API endpoints for frontend communication
- Efficient data processing and game logic
-
Standard User Management:
- Secure user registration and authentication
- Unique display names
- Profile customization with avatars
- Friend system with online status tracking
- Match history tracking
-
Remote Players:
- Play Pong with users on different devices
- Optimized for network stability
- Lag compensation mechanisms
- Graceful disconnection handling
-
Multiplayers (4 Player):
- Extended Pong gameplay for up to 4 players simultaneously
- Square board with each player controlling one side
- Balanced gameplay mechanics
- Special rules for multi-player tournaments
-
Live Chat:
- Direct messaging between users
- User blocking functionality
- Game invitations through chat
- Tournament notifications
- Profile access through chat interface
-
3D Game (ThreeJS):
- Enhanced visual experience using ThreeJS/WebGL
- 3D rendering of the classic Pong game
- Immersive gameplay with advanced graphics
- Modern visual effects and animations
-
PostgreSQL Database:
- Reliable and efficient data storage
- Complex relationship handling
- Optimized queries for performance
- Data integrity and consistency
-
Game Customization Options:
- Power-ups and special abilities
- Various maps and game modes
-
Browser Compatibility:
- Support for multiple web browsers
- Consistent user experience across different browsers
- Database: PostgreSQL
- Backend: Django (Python)
- Real-time Communication: WebSockets with redis
- Frontend: JavaScript with vanilla JS
- Webserver: Nginx
- 3D Graphics: ThreeJS/WebGL
- Containerization: Docker
- Docker and Docker Compose
- Modern web browser (Chrome recommended, with support for other browsers)
-
Clone the repository:
git clone https://github.com/p1tayaa/ft_transcendence.git cd ft_transcendence -
Start the application:
docker-compose up --build
-
Access the application: Open your browser and navigate to
https://localhost
- Classic 2-Player Pong: The traditional Pong experience, online or local
- 4-Player Mode: Square board with each player on one side, online or local
- AI Challenge: Test your skills against our intelligent AI opponent
- Hashed passwords
- Protection against SQL injections and XSS attacks
- HTTPS connections for all communications
- Form validation for all user inputs
- Secure user authentication