This is a project we've created at 42. It is a web app built with Next.js and NextUI. It utilizes blockchain technology for features such as user authentication and user management. The platform also includes visually engaging 3D games like Pong and TicTacToe, developed using R3F to enhance the user experience and more.
-
-
Major module: Store tournament scores on the Blockchain
Integrates blockchain technology into the Pong website to securely store tournament scores. Uses Ethereum's testing blockchain and Solidity for smart contracts.
-
-
-
Major module: Remote players
Enables two distant players, each located on separate computers, to access the same website and participate in the same Pong game.
-
Major module: Multiplayers (more than 2 in the same game)
Enables more than two players to participate simultaneously in the same game, each with live control. Customizable gameplay mechanics for different numbers of players.
-
Major module: New Game with History Tracking and Matchmaking
Introduces a new game with user history tracking and matchmaking for an enhanced user experience.
-
Minor module: Game Customization Options
Provides customization features for all games on the platform.
-
-
-
Major module: Introduce AI Opponent
Adds AI player with human-like behavior for challenging gameplay. Goals: Strategic decision-making without A* algorithm. Adaptability to various scenarios.
-
-
-
Major module: Infrastructure Setup for Log Management
Establishes robust log management using ELK stack (Elasticsearch, Logstash, Kibana), deploying Elasticsearch for storage, configuring Logstash for data processing, setting up Kibana for visualization, defining retention policies, and implementing security measures.
-
Major module: Designing the Backend as Microservices
Architect backend using microservices. Divide into smaller, loosely-coupled microservices. Define clear boundaries and interfaces. Implement communication mechanisms. Ensure each handles a single, well-defined task.
-
-
-
Major module: Use of advanced 3D techniques
Introduces advanced 3D techniques using ThreeJS/WebGL for immersive visuals in Pong game. Enhances gameplay experience and revolutionizes visual elements.
-
-
-
Minor module: Expanding Browser Compatibility
Expands browser compatibility by adding support for an additional web browser. Ensures seamless access and usage for users. Thorough testing and optimization for consistent user experience.
-
Minor module: Multiple language support
Implements support for multiple languages on the website to cater to a diverse audience. Includes a language switcher for easy language selection. Translates essential content into supported languages for seamless navigation and interaction.
-
-
-
Major module: Enabling Pong Gameplay via CLI against Web Users with API Integration
Develop a Command-Line Interface (CLI) to play Pong against web users, integrating with the web application via API. Enables CLI users to join and interact with web players, with features including user authentication and real-time synchronization.
-
Use the package manager pip to install the requirements for the cli-client.
cd cli-client
pip install -r requirements.txt
- Navigate to the project's main directory.
- Run
make
in your terminal to set up the project. - Connect to localhost.
- Log in with your wallet or use the Guest feature.
Note: As a Guest, you will not have access to the following features:
- Tournaments
- Matchmaking
- Color and name customization
To utilize all features, you need a crypto wallet with free testnet tokens.
Setup MetaMask:
-
Download MetaMask:
- Via Chrome extension: MetaMask on Chrome Web Store
- Via Website: MetaMask Official Site
-
Create an Account or Log In.
-
Configure the Sepolia Base Testnet:
- Open the MetaMask browser extension.
- Click the network selection dropdown menu at the top of the extension.
- Click "Add Network."
- Select "Add a Network Manually."
Enter the following details:
Field Value Network Name SepoliaBase New RPC URL https://sepolia.base.org Chain ID 84532 Currency Symbol SepoliaETH Click "Save" and switch to the SepoliaBase network.
To start, you'll need testnet tokens:
- Visit this https://faucet.triangleplatform.com/base/sepolia
- Enter your wallet address (found in MetaMask under your account name, starting with 0x).
If you encounter issues, search for "Base Sepolia Faucets" and try other available faucets.
CLI-tool:
cd cli-client
python3 main.py -host [hostname]
For help, you can use:
python3 main.py -h
The 3D model used in this project, titled "wallet.fbx," was created by vijay verma and is licensed under CC-BY-4.0. You can find the original model here.