Fatih Çil

Self-Taught Developer

Software Engineer

Programmer

Game Developer

Fatih Çil

Self-Taught Developer

Software Engineer

Programmer

Game Developer

Blog Post

ft_transcendence: The Final Boss — Real-Time Pong on the Web

March 20, 2023 École 42

Hi! ft_transcendence closes the 42 common core, and it is intentionally far outside the comfort zone the cursus built: after two years of C and C++, the final project is a full-stack web application — built as a team, again with cryonayes.

What it had to do

  • A single-page app with real-time multiplayer Pong — matchmaking, spectating and a ladder,
  • A full chat: public/private channels, channel owners and admins, mutes, bans and direct messages,
  • Login through 42’s OAuth with optional two-factor authentication,
  • User profiles with avatars, friends, online status and match history,
  • All of it in TypeScript — NestJS on the backend, PostgreSQL underneath, websockets carrying the game state.

Why it was the right ending

Pong itself is easy. Pong where two browsers must agree on where the ball is, while the server stays authoritative, reconnections happen mid-game and the chat keeps streaming — that is a distributed systems lesson disguised as a retro game. It tied together everything the cursus taught indirectly: sockets from ft_irc, state management from minishell, concurrency instincts from Philosophers. Finishing it meant finishing 42 — and it is no coincidence that real-time multiplayer became exactly what I do professionally in games today.

42 ft_transcendence badge

Related Posts