Back to Portfolio Naji Kanounji
TypeScript SvelteKit tRPC SQLite Drizzle ORM Babylon.js WebSockets

Pong Game

A real-time 3D multiplayer Pong game with tournament management and backend-authoritative gameplay.

Overview

ft_transcendence(Pong) is a real-time 3D multiplayer Pong game with tournament management, player profiles, authentication, and live gameplay synchronization.

The project was built as a full-stack application with a backend-authoritative architecture, where game state and gameplay rules are controlled server-side to support fair play and reduce cheating risks.

Features

Architecture

The project uses a monorepo structure with separate frontend, backend, infrastructure, and shared packages.

The frontend is built with SvelteKit and Babylon.js for the 3D game experience. The backend is built with Fastify and tRPC, using SQLite with Drizzle ORM for persistence.

Real-time communication is handled through tRPC WebSocket subscriptions. Player actions are sent to the backend, while game state updates are broadcast back to clients. The backend remains the source of truth for game state, physics, and match progression.

Technical Highlights

Screenshots

Video

pong-demo

Remote 4 players

Pong 4 players

Game lobby

Pong game lobby

Tournament

Pong tournament

Profile

Pong Profile
Source Code