Skip to content

About

A 3D Pong web-app with tournaments, live chat, and social features

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

427 Commits

Folders and files

Repository files navigation

🏓 Born2Pong - Transcendence

Game Demo

A 3D Pong game web-application with tournaments, live chat, and social features

Django Three.js PostgreSQL Docker


🎯 Overview

A sophisticated web application that reimagines the classic Pong experience through immersive 3D graphics, real-time multiplayer tournaments, and comprehensive social features. Built with modern web technologies and inspired by the original 1972 Pong arcade board aesthetics.


✨ Features

🎮 3D Game Engine

  • WebGL-Powered Environment: Fully immersive 3D arcade room with authentic retro aesthetics
  • Local Multiplayer Gaming: Simultaneous two-player action with responsive controls
  • Physics & Collision: Precise paddle movement and ball physics simulation

🏆 Tournament System

  • Multi-player Tournaments: Create and join tournaments with bracket visualization
  • Real-time Updates: Live tournament progression via WebSocket
  • Match Organization: Automated player pairing and round management

💬 Social Platform

  • Live Chat: Real-time private messaging between users
  • Friend System: Add/remove friends with online status
  • Game Invitations: Send and receive game invites through notifications
  • User Profiles: Avatar upload and profile customization

🔐 Authentication

  • OAuth 2.0: Login with 42 School API
  • Traditional Auth: Username/password registration
  • Secure Sessions: Token-based authentication

📊 Statistics

  • Game History: Track wins, losses, and performance
  • User Statistics: Personal dashboards with game analytics
  • Leaderboards: Compare performance with other players

🛡️ Privacy & Security

  • GDPR Compliance: Account deletion and data export
  • Secure Data: Encrypted passwords and protected user data
  • Privacy Controls: Block users and manage visibility

🚀 Tech Stack

Backend Architecture:

  • Django 4.2.9 + Django REST Framework - Robust API development
  • Django Channels + ASGI - Real-time WebSocket communication
  • PostgreSQL - Relational database with complex queries
  • Redis - High-performance WebSocket channel layer & caching

Frontend Technologies:

  • Vanilla JavaScript SPA - Custom single-page application routing
  • Three.js + WebGL - 3D graphics rendering
  • Bootstrap 5 - Responsive design framework
  • WebSocket API - Bidirectional real-time communication

DevOps & Infrastructure:

  • Docker Compose - Containerized microservices architecture
  • Nginx - Production-grade reverse proxy with SSL termination
  • Daphne ASGI Server - Async Python web server

🚀 Quick Start

Prerequisites

  • Docker & Docker Compose
  • Modern web browser with WebGL support

Installation

  1. Clone and setup
git clone https://github.com/lgeniaux/transcendence.git
cd transcendence
cp .env.example .env
# Configure your .env file with proper values
  1. Launch
make all
# or: docker compose up --build -d
  1. Access

Development Commands

make all      # Start all services
make clean    # Stop services  
make fclean   # Clean everything (including volumes)
make build    # Rebuild without cache

# Django commands
docker compose exec web python backend/manage.py [command]

# Run tests
docker compose exec web python -m pytest

🎮 How to Play

  1. Register or login with 42 OAuth
  2. Local Game: Play immediately with a friend on the same keyboard
  3. Tournament: Create or join tournaments for competitive play
  4. Chat: Message other players and build your friend network
  5. Statistics: Track your progress and compare with others

🏗️ Architecture

🌐 Nginx (SSL, Static Files)
    ↓
🐍 Django (API, Authentication)
    ↓
📡 Django Channels (WebSocket: Chat, Notifications)
    ↓
🗄️ PostgreSQL (Data) + ⚡ Redis (WebSocket)

WebSocket Usage:

  • Real-time chat messaging
  • Live notifications (friend requests, game invites)
  • Tournament updates and match announcements

📱 Browser Support

Browser Version Status
Chrome 80+ ✅ Full Support
Firefox 75+ ✅ Full Support
Safari 13+ ✅ Full Support
Edge 80+ ✅ Full Support

Requires WebGL support for 3D graphics


📄 License

Educational project for 42 School curriculum.


🎮 Ready to play some 3D Pong? 🏓

Built by 42 School students

About

A 3D Pong web-app with tournaments, live chat, and social features

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages