All Projects ā†’ dnsbty ā†’ level10

dnsbty / level10

Licence: MIT license
Phoenix LiveView multiplayer card game

Programming Languages

elixir
2628 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to level10

king of tokyo
šŸ‘‘ King of Tokyo Multiplayer Board Game using Phoenix LiveView
Stars: āœ­ 25 (-50.98%)
Mutual labels:  phoenix, multiplayer, phoenix-liveview
mishka-cms
MishkaCms an open source and real time API base CMS Powered by Elixir and Phoenix
Stars: āœ­ 37 (-27.45%)
Mutual labels:  real-time, phoenix
leafblower
Play Cards Against Humanity online with friends!
Stars: āœ­ 29 (-43.14%)
Mutual labels:  multiplayer, phoenix-liveview
curious messenger
Companion repository for Phoenix LiveView Messenger app by Curiosum.dev. Part 1: https://curiosum.dev/blog/elixir-phoenix-liveview-messenger-part-1?utm_source=github&utm_medium=social, Part 2: https://curiosum.dev/blog/elixir-phoenix-liveview-messenger-part-2?utm_source=github&utm_medium=social, Part 3: https://curiosum.dev/blog/elixir-phoenix-lā€¦
Stars: āœ­ 30 (-41.18%)
Mutual labels:  phoenix, phoenix-liveview
haskell-tic-tac-toe
A multiplayer web real-time implementation of the famous Tic Tac Toe game in Haskell.
Stars: āœ­ 51 (+0%)
Mutual labels:  real-time, multiplayer
playhouse
A platform for real-time multiplayer trivia games šŸŽ®
Stars: āœ­ 20 (-60.78%)
Mutual labels:  real-time, multiplayer
Remote retro
Free, world-class retrospectives
Stars: āœ­ 474 (+829.41%)
Mutual labels:  real-time, phoenix
Gophergameserver
šŸ† Feature packed, easy-to-use game server API for Go back-ends and Javascript clients. Tutorials and examples included!
Stars: āœ­ 61 (+19.61%)
Mutual labels:  real-time, multiplayer
live deck
A Real-Time Presentation Application Powered by Phoenix LiveView
Stars: āœ­ 71 (+39.22%)
Mutual labels:  phoenix, phoenix-liveview
Tensorflow-YOLACT
Implementation of the paper "YOLACT Real-time Instance Segmentation" in Tensorflow 2
Stars: āœ­ 97 (+90.2%)
Mutual labels:  real-time
talaria
TalariaDB is a distributed, highly available, and low latency time-series database for Presto
Stars: āœ­ 148 (+190.2%)
Mutual labels:  real-time
kidnapped-vehicle
Implemented a C++ particle filter for real-time vehicle localization with only current visual observations and a map.
Stars: āœ­ 18 (-64.71%)
Mutual labels:  real-time
OnsetLuaScripts
Example Lua scripts for Onset for you to learn from.
Stars: āœ­ 57 (+11.76%)
Mutual labels:  multiplayer
safety-gear-detector-python
Observe workers as they pass in front of a camera to determine if they have adequate safety protection.
Stars: āœ­ 54 (+5.88%)
Mutual labels:  real-time
tamcolors
tamcolors is a terminal game library which supports multiplayer and audio. tamcolors gives a buffer which lets the user set the character, foreground color and background color which can draw at a stable FPS of 25 on all supported console.
Stars: āœ­ 24 (-52.94%)
Mutual labels:  multiplayer
cloud-game-servers-examples
Collection of examples for using Google Cloud Game Servers.
Stars: āœ­ 28 (-45.1%)
Mutual labels:  multiplayer
FishFight
Tactical 2D shooter in fishy pixels style. Made with Rust-lang and Macroquad šŸ¦€šŸŒ¶
Stars: āœ­ 631 (+1137.25%)
Mutual labels:  multiplayer
uno-multiplayer
uno multiplayer web app game based on socket io and nodejs
Stars: āœ­ 27 (-47.06%)
Mutual labels:  multiplayer
serverless-full-stack-apps-azure-sql
Full stack solution using Javascript, Azure Static Web Apps, Azure Function, Azure SQL Database and a microservice architecture to monitor in real-time public transportation data, create a geofence and send notification when geofence is activated
Stars: āœ­ 72 (+41.18%)
Mutual labels:  real-time
combatris
A "perfect" implementation of an old classic
Stars: āœ­ 20 (-60.78%)
Mutual labels:  multiplayer

Level10

A real-time multiplayer card game written with Phoenix LiveView

Animated gif of Level 10 in action

Development

After cloning the repo:

  • Install dependencies with mix deps.get
  • Install Node.js dependencies with (cd assets && yarn)
  • Start Phoenix endpoint with mix phx.server

Now you can visit localhost:4000 from your browser.

Simulate clustering

Level 10 takes advantage of Erlang clustering for scale and uptime purposes. While in development mode, the application uses Libcluster's Gossip strategy if a node name is provided when starting the application.

Thus, clustering can be simulated by starting up the application as follows:

# In one terminal window
PORT=4000 iex --cookie level10 --name 4000 -S mix phx.server

# In a different terminal window
PORT=4001 iex --cookie level10 --name 4001 -S mix phx.server

State Handoff

Whenever a node is terminated gracefully with a SIGTERM (as would occur with a normal rolling deploy), any game processes hosted on that node will be handed off to one of the other nodes in the cluster via the Level10.StateHandoff module. In order to simulate this with a cluster running on your local machine, you can use the following command inside of iex for whichever node you'd like to terminate:

:init.stop()

Production

You can build a docker image that can run anywhere docker images can with docker build .

The official version of Level 10 runs in Digital Ocean Kubernetes. You can do the same by tweaking a few files in the deployment manifest and running kubectl apply -f k8s

Contributing

Information about contributing can be found in CONTRIBUTING.md

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].