Ask HN: What stack for a multiplayer board game?
10 points| tsp | 3 years ago
- 1-6 players per game - Round based - Only one player can be active at a time - Multiple games happen at the same time - Optimally, non-technical players can spin up their own server to play on (e.g. via Electron app) - Optimally relatively cheap
For communication I was thinking about websockets, but this would limit the amount of parallel connections / games a lot.
I am thankful for every comment mentioning libraries / stacks and why I should consider them.
[+] [-] Leftium|3 years ago|reply
- https://hathora.dev/
HN Discussion:
- https://hw.leftium.com/#/item/30442072
- https://hw.leftium.com/#/item/31084779
- https://hw.leftium.com/#/item/31934181
[+] [-] tsp|3 years ago|reply
[+] [-] toast0|3 years ago|reply
It's a board game engine and has multiplayer support. There's also boardgame.io which looks hipper (npm), but I didn't see any screenshots of games being played.
Regarding scaling, there's articles about lots of stacks doing 1M websockets on a host; if that's limiting you, you've got a lot of players, so that's a nice problem to have.
[+] [-] tsp|3 years ago|reply
[+] [-] tsp|3 years ago|reply
[+] [-] andrewallbright|3 years ago|reply
- Unity + mirror (multiplayer library) for the server client. The library documentation will help with a mental model of a multiplayer game. Export the binary of whatever your target OS will be. I prefer linux. - Unity for the game client. I prefer webGL export for the client so I can host the HTML/JS/WASM like a normal static site. However; you can (also) export windows, Mac desktop apps too. - nginx to host the static site and reverse proxy to the multiplayer - systemctl units for nginx, and the multiplayer binary on some linux OS. I prefer Ubuntu.
For the code; it's all about developing a mental model of what things exist in your system and what interactions those things have with each other.
It being me, there is a CICD system somewhere running tests for pretty much anything.
[+] [-] tsp|3 years ago|reply
[+] [-] dyeje|3 years ago|reply
[+] [-] tsp|3 years ago|reply
[+] [-] leetbulb|3 years ago|reply
[+] [-] hoofhearted|3 years ago|reply
- React Native frontend
- .Net Core backend
- NGINX webserver, on a bare metal Linux VM of course
- SignalR for web sockets
- Mysql for long term data storage
- Redis for caching
- Mailgun for sending app emails
Did I miss anything?
[+] [-] lavishlibra0810|3 years ago|reply
[+] [-] bilekas|3 years ago|reply
Supports compression easier, less issues with proxies, multiplexing etc. And have found that they're much more simple to play with!
[+] [-] tsp|3 years ago|reply
[+] [-] npretto|3 years ago|reply
- https://boardgame.io/
- https://www.colyseus.io/
[+] [-] tsp|3 years ago|reply
[+] [-] TillE|3 years ago|reply
[+] [-] tsp|3 years ago|reply
[+] [-] penner_im_auto|3 years ago|reply
I have developed several 2d games with it, as a hobby, used a python server for mp, it was very intuitive and understandable. And it is completely free, no ads or restrictions.
[+] [-] mmacvicarprett|3 years ago|reply
[+] [-] cableshaft|3 years ago|reply
[+] [-] rtcoms|3 years ago|reply
[+] [-] tsp|3 years ago|reply
[+] [-] elil17|3 years ago|reply
[+] [-] tsp|3 years ago|reply