Skip to content
/ Zappy Public

Development of a networked 3D game with creation of artificial intelligence harvesting resources to win.

Notifications You must be signed in to change notification settings

SloWayyy/Zappy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zappy

A multiplayer game composed of a server, a graphical client and AI players

Introduction

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.

Installation

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.

Usage

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.

Internal documentations

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.

Troubleshooting

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.

Contributing

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.

Our Trantor Survivors (a.k.a. developers)


Florian Lauch

Mehdi Djendar

Rayan Es-Seffar

Jonathan Yakan

Taha ALANI

Kevin NADARAJAH

About

Development of a networked 3D game with creation of artificial intelligence harvesting resources to win.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published