A multiplayer game composed of a server, a graphical client and AI players
Zappy is a multiplayer game where the goal for a player is to collect resources to evolve and win the game.
The game is played on a server where AI players and graphical clients can connect. The server is composed of a map, which is a grid of squares.
🚀 The user is not directly playing: programs do so!
Each player starts at level 1 and belongs to a team. Its goal is to survive on the world of Trantor by collecting resources on the map. There is two kinds of resources: food, which is consumed by the player to survive, and stones, which are used to evolve. The process of elevation, also known as incantation, requires a certain amount of stones and players on the same position to be performed.
⭐ The winning team is the first with 6 players at level 8.
To install the game, you need to clone the repository and run the make
command at the root of the repository.
git clone [email protected]:EdenComp/Zappy.git Zappy
cd Zappy
make
⚠️ The following dependencies are required for each part of the project:
Server
The only dependencies required for the server are the standard lib C and a C compiler, which are mostly already installed on your computer.
Here are some resources that could help you in case of troubleshoots:
Graphical client
The graphical client is using Raylib for rendering purposes, coupled to the C++ language, which is most of the times already available on your computer.
If you're using the Fedora Linux distribution, you can make install
for an automatic installation of the Raylib.
If you're using Arch Linux, Raylib can be installed using pacman with the following command: sudo pacman -Sy raylib
If you're using none of them, you can check the Raylib Wiki which contains installation steps for several configurations.
AI Players
The AI player we used is developed in Python, using the pycryptodome
package.
- Python installation
- The required package can be installed using
pip install pycryptodome
Now that the project is installed, let's create a new iteration of Trantor!
To do so, you must start the server, using the following command:
./zappy_server
🔧 The server is highly configurable. Please refer to the Server documentation for more information.
The server is now connected to the Internet and can be accessed using the port 4242 by default, or any port you want using the -p parameter.
The graphical client can be launched alongside the server, using the following command:
./zappy_gui -h <hostname> -p <port>
Hostname is the IP address of the server, and port is the port used by the server.
💡 If you're running the server and the client on the same computer, you can use the 127.0.0.1 address.
Finally, you can run one or more AI players.
To use the provided AI player, you can run the following command:
./zappy_ai -h <hostname> -p <port> -n <team_name>
The hostname and port are similar to the graphical client, and the team name is the name of the team you want to join.
💡 The provided AI program is configured to connect enough AI players to fill the specified team so that you only have to run the program once per team.
🚀 You can run any program that follows the Server/AI Communication Protocol.
Each part of the project has its own documentation:
🔍 If you are looking for a specific information about one of the parts, please refer to the corresponding documentation.
If you encounter any problem during the installation or the usage of the project, you can create an issue explaning your problem.
We will try to help you as soon as possible.
You're invited to contribute to the project!
You have an idea to improve the project? You found a bug? Feel free to create an issue to share your idea with us!
You can also fork the repository and submit a pull request to propose your changes.
Florian Lauch |
Mehdi Djendar |
Rayan Es-Seffar |
Jonathan Yakan |
Taha ALANI |
Kevin NADARAJAH |
---|