/EDOpro-server-ts

Welcome to TSPRO, another server for creating Yu-Gi-Oh! matches using the EDOPro core! But this time, we focus on the scalability of the code

Primary LanguageTypeScript

TSPRO 🎮

Logo

Welcome to TSPRO, another server for creating Yu-Gi-Oh! matches using the EDOPro core! But this time, we focus on the scalability of the code, allowing for easy implementation of new features related to the data generated during the duels.

Features ✨

  • 🏰 Room creation through the EDOPro lobby.
  • 🔌 Reconnection to the match in case of closure or disconnection.
  • 📊 Collection of duel data for generating statistics.
  • 🚀 Core isolation for each match.

Installation Requirements 📋

  • Conan (2.0.6): conan
  • Node.js (18.16.0): Make sure you have Node.js installed on your system. You can download the latest stable version from https://nodejs.org. 📥🚀

Conan Installation Guide 🚀

  1. Install Python and pip
apt install python3 python3-pip -y
  1. Install Conan through pip
pip install conan
  1. Configure the conan profile
conan profile detect

C++ Compilation Guide 🛠️

  1. Clone this repository to your local machine using the following command:
git clone https://github.com/tuusuario/edo-pro-server.git
  1. Navigate to the core folder, which contains all the C++ code of the project.

  2. Download premake and copy it to the path from step 2 (This step only needs to be done once)

wget https://github.com/premake/premake-core/releases/download/v5.0.0-beta2/premake-5.0.0-beta2-linux.tar.gz
 tar -zxvf premake-5.0.0-beta2-linux.tar.gz
  1. Install the dependencies using Conan
conan install . --build missing --output-folder=./dependencies --options=libcurl/8.6.0:shared=True
  1. Generate the make file using premake5 downloaded in step 3
./premake5 gmake
  1. Build the binary:
make

Starting the Server

  1. Navigate to the root of the project.

  2. Install the dependencies using npm:

npm install
  1. Clone card databases in the root folder:
git clone https://github.com/ProjectIgnis/BabelCDB.git databases
  1. Clone banlists in the root folder:
git clone git clone https://github.com/ProjectIgnis/LFLists banlists-project-ignis banlists
  1. Clone card scripts inside the core folder:
git clone https://github.com/ProjectIgnis/CardScripts.git scripts
  1. Compile the project:
npm run build
  1. Start the project:
npm start

Running with Docker 🐳

If you prefer to use Docker to run the project, you can follow these steps:

  1. Make sure you have Docker installed on your system. You can download and install Docker from https://www.docker.com.

  2. Build the Docker image with the following command:

docker build -t <image-name> <path-to-dockerfile>
  1. Run the Docker container:
docker run -p 7911:7911 -p 7922:7922 <image-name>

Notes and thanks