All Projects → ivan1993spb → snake-server

ivan1993spb / snake-server

Licence: MIT license
Snake-Server is a pure Go implementation of the famous arcade game 🐍

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to snake-server

Colyseus.js
⚔ Colyseus Multiplayer SDK for JavaScript/TypeScript
Stars: ✭ 245 (+690.32%)
Mutual labels:  multiplayer
Awesome-Retro-Docs
A curated collection of technical documentation for Arcades, Handhelds, Consoles, Computers and MCU’s.
Stars: ✭ 128 (+312.9%)
Mutual labels:  arcade
Python-Assignments
Python exercises.
Stars: ✭ 18 (-41.94%)
Mutual labels:  arcade
Colyseus Unity3d
⚔ Colyseus Multiplayer SDK for Unity
Stars: ✭ 251 (+709.68%)
Mutual labels:  multiplayer
SpaceWar-ECS
A space war game made with ECS and JobSystem in Unity.
Stars: ✭ 26 (-16.13%)
Mutual labels:  multiplayer
MafiaMP
Multiplayer experience for Mafia: Definitive Edition
Stars: ✭ 31 (+0%)
Mutual labels:  multiplayer
Nakama Unity
Unity client for Nakama server.
Stars: ✭ 222 (+616.13%)
Mutual labels:  multiplayer
sdk-for-unity-vr-starter-project
[Deprecated] SpatialOS SDK for Unity Virtual Reality Starter Project
Stars: ✭ 43 (+38.71%)
Mutual labels:  multiplayer
df multiplay
Dwarffortress multiplayer scripts and stuff
Stars: ✭ 13 (-58.06%)
Mutual labels:  multiplayer
colyseus-kotlin
⚔ Implementation of Colyseus client using Kotlin
Stars: ✭ 26 (-16.13%)
Mutual labels:  multiplayer
Tom and Jerry
A multiuser AR game based on ARKit 2 and MultipeerConnectivity
Stars: ✭ 24 (-22.58%)
Mutual labels:  multiplayer
karting
A multiplayer racing example project in Unity using the SocketWeaver SDK
Stars: ✭ 39 (+25.81%)
Mutual labels:  multiplayer
UnityR
Unity3D, SignalR real-time multiplayer game
Stars: ✭ 49 (+58.06%)
Mutual labels:  multiplayer
Flopnite Ue4
A remake of the popular battle royale game, Fortnite, made in Unreal Engine 4 and integrated with Amazon GameLift
Stars: ✭ 250 (+706.45%)
Mutual labels:  multiplayer
Cpp-Snake
A simple snake game written in c++
Stars: ✭ 35 (+12.9%)
Mutual labels:  snake
Nakama Godot
Godot client for Nakama server written in GDScript.
Stars: ✭ 240 (+674.19%)
Mutual labels:  multiplayer
Team-Capture
Team-Capture - A multiplayer FPS game, inspired by games like Quake and TF2. Done in Unity
Stars: ✭ 81 (+161.29%)
Mutual labels:  multiplayer
OpenJVS-Legacy
A Jamma Video Standard Emulator written in C
Stars: ✭ 18 (-41.94%)
Mutual labels:  arcade
EuNet
Peer to peer network solution for multiplayer games.
Stars: ✭ 109 (+251.61%)
Mutual labels:  multiplayer
AtomicX
Browse, Download and Install GSC Mods for Black Ops II (PlayStation 3 & Xbox 360)
Stars: ✭ 20 (-35.48%)
Mutual labels:  multiplayer

Snake-Server

Build Status GitHub release Go Report Card Docker Pulls

Snake-Server is a server for multiplayer snake game. You can play with your friends! The special feature is that you can eat small snakes!

Take a look at a working instance here - https://snakeonline.xyz

Game demo

Usage

  1. docker run --rm -p 8080:8080 ivan1993spb/snake-server --enable-web
  2. Open in the browser http://localhost:8080/.

How to play?

  • You control a snake
  • You need to grow the biggest snake
  • You can eat apples, mice, watermelons, small and dead snakes
  • If the snake dies, you will have to start over

Installation

  • Go get

    go get github.com/ivan1993spb/snake-server@latest
    snake-server -h
    
  • Docker

    Check out the repo.

    docker pull ivan1993spb/snake-server
    
    docker run --rm -p 8080:8080 ivan1993spb/snake-server --enable-web
    
    docker run --rm ivan1993spb/snake-server -h
  • Download and install the binary

    Take a look at the release page

    Curl:

    • Set VERSION, PLATFORM and ARCHITECTURE:
      VERSION=v4.3.0
      # darwin or linux or windows
      PLATFORM=linux
      # amd64 or 386
      ARCHITECTURE=amd64
    • Download and install the binary to /usr/local/bin/:
      curl -sL "https://github.com/ivan1993spb/snake-server/releases/download/${VERSION}/snake-server-${VERSION}-${PLATFORM}-${ARCHITECTURE}.tar.gz" |\
        tar xvz -C /usr/local/bin/
  • Deploy the server using the ansible playbook

    https://github.com/ivan1993spb/snake-ansible.

CLI options

Use snake-server -h for more information.

Options:

  • --address - string - sets an address to listen and serve (default: :8080). For example: :8080, localhost:7070
  • --conns-limit - integer - to limit the number of opened web-socket connections (default: 1000)
  • --groups-limit - integer - to limit the number of games for a server instance (default: 100)
  • --enable-web - bool - to enable the embedded web client (default: false)
  • --enable-broadcast - bool - to enable the broadcasting API method (default: false)
  • --forbid-cors - bool - to forbid cross-origin resource sharing (default: false)
  • --log-json - bool - to enable JSON log output format (default: false)
  • --log-level - string - to set the log level: panic, fatal, error, warning (warn), info or debug (default: info)
  • --seed - integer - to specify a random seed (default: the number of nanoseconds elapsed since January 1, 1970 UTC)
  • --sentry-enable - bool - to enable sending logs to sentry (default: false)
  • --sentry-dsn - string - sentry's DSN (default: ""). For example: https://[email protected]/44
  • --tls-cert - string - to specify a path to a certificate file
  • --tls-enable - bool - to enable TLS
  • --tls-key - string - to specify a path to a key file
  • --debug - bool - to enable profiling routes

Clients

There is an embedded JavaScript web client compiled into the server. You can enable it with CLI flag --enable-web.

You are always welcome to create your own client!

You can find examples here:

See documentation docs/api.md and docs/websocket.md.

REST API specification: openapi.yaml.

License

See LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].