Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mathusanm6/c-network-bomberman

C-Network-Bomberman is a multiplayer Bomberman game written in C, with a network mode. Place bombs strategically and face your opponents in dynamic arenas. Chat functions are also included. You can even whisper messages in team mode with your teammates.
https://github.com/mathusanm6/c-network-bomberman

bomberman c chat client game ncurses network network-programming protocol server

Last synced: 20 days ago
JSON representation

C-Network-Bomberman is a multiplayer Bomberman game written in C, with a network mode. Place bombs strategically and face your opponents in dynamic arenas. Chat functions are also included. You can even whisper messages in team mode with your teammates.

Awesome Lists containing this project

README

        

# C Network Bomberman

[![Build](https://github.com/mathusanm6/C-Network-Bomberman/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/mathusanm6/C-Network-Bomberman/actions/workflows/build.yml) [![Tests and memory checks](https://github.com/mathusanm6/C-Network-Bomberman/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/mathusanm6/C-Network-Bomberman/actions/workflows/test.yml) [![Format](https://github.com/mathusanm6/C-Network-Bomberman/actions/workflows/format.yml/badge.svg?branch=main)](https://github.com/mathusanm6/C-Network-Bomberman/actions/workflows/format.yml)

## Description

As part of the **L3S6 course "Programmation Réseaux" (Network Programming)**, we were tasked with developing a network game in C. The aim of this project is to implement a server and a client for a network game of **Bomberman**. The server will be able to handle multiple clients, and the clients will be able to play the game in real-time. The user interface will be implemented using `ncurses`.

The project requirements are stated in the pdf file [sujet](sujet.pdf) (in French).

The project was developed within 8 weeks.

## Own contributions

- [x] Implemented the view for the game using `ncurses`.

- [x] Chat feature

- [x] Implemented chat model
- [x] Implemented chat communications through tcp sockets

- [x] End game feature

- [x] Implemented end game communications through tcp sockets
- [x] Implemented end game view

- [x] A lot of bug fixes :)

## Visuals





Setting up the server for the game.




Players are ready to start.




In-game action taking place.






General in-game chat.




Players discussing strategy.




Players whispering in-game.






Player has lost the game.




Player has won the game.



## Demo

[Demo Video on Youtube](https://youtu.be/4hkg7EBgfLI)

## Installation

You will need the following dependencies:

- `gcc` compiler
- `make` build system
- `ncurses` library (for the user interface)

To install the project, run the following commands:

```bash
git clone [email protected]:mathusanm6/C-Network-Bomberman.git
cd bomberman-gyt
make
```

To compile just the server, run the following command:

```bash
make server
```

To compile just the client, run the following command:

```bash
make client
```

## Usage

To run the server, run the following command:

```bash
./server
```

To run the client, run the following command:

```bash
./client
```

The client program has some flags :

- `-p PORT` to connect the client to the server with the port `PORT`.
- `-m MODE` to choose the mode between `0` for `SOLO` and `1` for `TEAM`.

## Authors and acknowledgment

This project was developed by a group of students from Université Paris Cité, as part of the L3S6 course "Programmation Réseaux" (Network Programming). The group members are Gabin Dudillieu, Yago Iglesias Vázquez, and Mathusan Selvakumar.