Arizel79 / Multiplayer-snake-game

Repository from Github https://github.comArizel79/Multiplayer-snake-gameRepository from Github https://github.comArizel79/Multiplayer-snake-game

Multiplayer snake game

Multiplayer snake game writen on python with support for 3 clients: web, console (cli) and pygame (gui)

  • Console client (ascii graphics)
  • GUI client (pygame library)
  • Web client (writen on JS)
  • Mobile web client (optimize for mobile devices)

See screenshots

Web client:

image

Pygame (GUI) client:

image

Console (CLI) client:

How to

Clone repository & create virtual envelopment

git clone https://github.com/Arizel79/Multiplayer-snake-game.git
cd Multiplayer-snake-game
python -m venv .venv
source .venv/bin/activate # on Windows: .\.venv\Scripts\activate

Install dependencies

Tested on python 3.11

python pip install -r requirements.txt

Run server

python server --address 0.0.0.0 --port 8090 --server_name "My test server" 

Running server options:

usage: server [-h] [--address ADDRESS] [--port PORT] [--server_name SERVER_NAME] [--server_desc SERVER_DESC] [--max_players MAX_PLAYERS] [--map_width MAP_WIDTH]
              [--map_height MAP_HEIGHT] [--food_perc FOOD_PERC] [--default_move_timeout DEFAULT_MOVE_TIMEOUT] [--logging_level {DEBUG,INFO,WARNING,ERROR,CRITICAL}]

Run client

Web client:

open web/game.html in browser

GUI client:

python client --name TestPlayer --color white;red,green,blue --mode gui

Console client:

python client --name TestPlayer --color white;red,green,blue --mode cli

Running console & gui clients options:

  --mode {cli,gui}, -m {cli,gui}
                        Game mode 
  --name NAME, --n NAME
                        Snake name
  --color COLOR, --c COLOR
                        Snake color
  --server SERVER, --s SERVER
                        Server address
  --log_lvl {DEBUG,INFO,WARNING,ERROR,CRITICAL}
                        Level of logging
  --interactive, --i    Enable interactive prompting (default: False)

Colors (--color argument):

red,orange,yellow,lime,green,turquoise,cyan,light_blue,blue,violet,magenta

Screenshots

image image image image image image image image image image

About


Languages

Language:Python 54.6%Language:JavaScript 25.9%Language:CSS 10.1%Language:HTML 9.3%Language:Batchfile 0.1%