Git Product home page Git Product logo

-s4-network-bomberman-game's Introduction

-S4-Network-Bomberman-Game

A Bomberman network game made in Golang and SDL2 library binding for Golang by veandco for a university course about Networking. Contains client & servor.

This project aims at learning a new langage & uses the network over a game Client & a Servor following a protocol.

If you are a french speaker, I invite you to check the Report of this project & the protocol I used for more details.

If you are not a french speaker, you can still check the code comments.

Note: You can find an other implementation of this game in C++ by a classmate here.

Prerequisites

  • SDL2 library binding for Golang by veandco
  • Go tools
  • Delete dashes (-) in the directory project title manualy or get the project with:
    • git clone https://github.com/3t13nn3/-S4-Network-Bomberman-Game.git
    • mv ./-S4-Network-Bomberman-Game _S4_Network_Bomberman_Game

Note that the project won't compile if there are some dashes in the title project folder.

How to use - Linux Project

Compilation

Compile the program with make.

Utilisation

Lauch the binary as ./bomber.

Menu

On the menu, move over modes with Up & Down Arrows keys and select one of them with the Enter key.

There are 2 modes into the menu:

  • Create, to host the servor
  • Join, to rejoin a game hosted by someone else on the same network

Next, depending on which mode you have chosen, you will have to inquire the IP servor adresse, the servor port, and then your nickname.

Lobby

Afterwards, you will be in the lobby room. You can chat with everyone who is in the lobby by writting your messages and press the Enter key to send them.

Here are some useful commands in the lobby:

  • /nbplayer to get the number of player in the lobby
  • /start to start a game (you must be minimum 2 players & only if you are the host)
  • /start debug to start a game in debug mode (you can lauch the game in solo & only if you are the host)

You can select maps which are stored here by using Left and Right Arrows.

Rules

The main goal is to be the last survivor in the game. For that, you can kill other opponents by dropping bombs. If an opponent is in the explosion, he dies. Furthermore, you can break some walls to go find adversaries.

We can notice that if a non exploded bomb is in the field of an explosion, it will explode as well

Same with bonus, if a bonus is in an explosion, it will disappear.

At least, there are some bonus:

  • Speed Speed bonus which makes you gain speed
  • Pow Pow bonus which makes you gain a unit on your explosion extent
  • Bomb Bomb bonus which enlarges your bomb reserve of 1

Gameplay

Once in the game, you will recognize your character Character by you nickname above his head. Then the game starts after the countdown.

Here are game inputs:

  • Arrows keys to move
  • Space key to drop a bomb
  • R key to end the game and return to the lobby (only if you are the host)

Clean files

Clean object files and binary by make clean.

Exemple of Execution

Here are some pictures that illustrate execution:

  • Menu

Menu

  • Nicknaming

Asking Nickname

  • Lobby

Lobby

  • Countdown

Countdown

  • In Game

In Game

  • Explosion

Explosion

Author

  • Etienne PENAULT - Réseaux: modèles, protocoles, programmation - Paris VIII

Acknowledgments

-s4-network-bomberman-game's People

Contributors

3t13nn3 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.