Flakkari is a UDP/TCP server initially developed for the R-Type Epitech project and updated for the Video Games course at University Laval. It enables network-based gameplay, supporting multiple games and clients simultaneously through its multi-threaded architecture. The server is designed to handle high concurrency and ensure low latency, making it suitable for real-time multiplayer games. Flakkari also includes features such as game state synchronization, player authentication, and robust error handling to provide a seamless gaming experience.
[!NOTE] The project is still under development and may not be stable.
# Clone repository
$> git clone https://github.com/MasterLaplace/Flakkari.git
$> cd Flakkari
# Create a build directory
$> mkdir build
$> cd build
# Configure the project
(build)$> cmake .. && cmake --build .
# Or configure the project with Ninja
(build)$> cmake -G Ninja .. && cmake --build .
# Run the server executable
(build)$> ./flakkari <GamesDir> <ip> <port>
other build commands:
# Install the project
(build)$> sudo cmake --build . --target install
# Build project documentation
(build)$> cmake --build . --target doc
# Build project package
(build)$> cmake --build . --config Release --target package
# Install the package
# For windows systems
(build)$> flakkari-win64.exe
# For macos systems
(build)$> sudo installer -pkg flakkari-macos.pkg -target /
# For redhat based systems
(build)$> sudo rpm -i flakkari-linux.rpm
# For debian based systems
(build)$> sudo dpkg -i flakkari-linux.deb
# install docker on ubuntu
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
# check docker version (optional)
$ docker --version
> Docker version 24.0.7, build afdd53b
# build docker image
$ docker build -t flakkari .
# run docker image
$ docker run -p 8081:8081 -it flakkari
# list docker images
$ docker ps
# stop docker image
$ docker stop <container-id>
# remove docker image
$ docker rm <container-id>
Wiki:
For detailed documentation on the Flakkari protocol, see:
📋 Change Log.
This project is licensed under the terms of the MIT License.
Copyright © 2023-2024 Master_Laplace.