ft_transcendence is the final project of the Common Core of 42 school.
This project consists in creating a website to take part in a competition of the famous game Pong!
The aim of the project is to immerse students in a project they have no experience of. They have to learn Web development from scratch in order to successfully complete the project.
They are a mandatory part to this project, and a bunch of modules to choose from to complete it.
You can see read the whole subject here. There are the modules we chose :
- go at the root of the repository.
- type
make
in the terminal. - Go to
https://127.0.0.1:8000
in you browser, orhttps://YOUR_IP_ADDRESS:8000
- You will need the .env for the project to work correctly.
- User authentification with e-mail confirmation
- Translations support for English, French and Spanish
- Pong video game
- Online tournaments
- 3d modeling
- Blockchain Implementation
- AI
This using the following stack:
- Language - JavaScript
- Styling - Bootstrap
We implemented a module system, you can read more about it here
This makes our code :
- more reusable
- more refactorable
- more categorized
- less prone to errors
We implemented a library-free translation system, which you can learn about here
It is :
- fast
- easy to update
- not very feature rich
- moderately scalable
This using the following stack:
- Language - Python
- Framework - Django
- Database - postgreSQL
You can create an account and login using a password-free authentification with your 42 account. I will retrieve your school's profile picture, username and email.
The Game is a modern twist on the classic Pong, built with JavaScript and Three.js. this game offers both Quick Play and Tournament modes. Choose from 4 characters and compete to become the Pong champion!
- Quick Play: Instantly find and play against another player online.
- 8-Player Tournament: Compete tournament with 8 participants max.
This using the following stack:
- Language - JavaScript
- Framework - ThreeJS
Each time a tournament is completed, the result of each match in the tournament is sent to the blockchain. When the transaction is complete, the "see on blockchain" button appears, allowing you to view the transaction directly and check the information (click on 'show more' then 'View input as UTF-8').
The display is difficult to read, but the order is always: "tournament name, tournament winner's name, then each match in the following order: 'player 1, player 1's score, player 2, player 2's score, match winner's name'".
This using the following stack:
- Language of the Smart Contract - Solidity
- Library for backend interaction - web3.py
- Blockchain - Sepolia
- Network API - Infura
Address of the Smart Contract: 0xD7CFDC73171139dbd48f80c23974712D4c5952AB
An AI agent is implemented in the game using a deep neural network. The AI is trained during games between two human players so it can reach competitive levels of play.
Core Features:
- AI plays Pong using supervised learning.
- Trained using TensorFlow and a deep neural network.
- Adjustable difficulty levels or training parameters.
Technologies used :
- Building and training the neural network - TensorFlow
- Language - JavaScript
- Data manipulation and preprocessing - NumPy
made with @gclement42, @maujogue, @LezardSC, @boulatrousse, @MarcelCerdan