|
1 | 1 | # BoardGames |
2 | 2 |
|
3 | | -Check out live version of this app hosted on Google Cloud (Cloud Run + Cloud PostgreSql): |
4 | | -- https://boardgames.alexyakunin.com/ |
| 3 | +Live version: https://boardgames.alexyakunin.com/ |
5 | 4 |
|
6 | | -"Board Games" is a new sample showing how to implement a real-time board game service on [Fusion]: |
7 | | -- https://github.com/servicetitan/Stl.Fusion |
8 | | -- https://github.com/servicetitan/Stl.Fusion.Samples |
| 5 | +"Board Games" is the new [Fusion] sample showing a fully functional |
| 6 | +website for real-time multi-player board (or board-like) games. |
| 7 | +The sample implements a number of features that are relatively |
| 8 | +hard to implement w/o a technology like [Fusion]. |
9 | 9 |
|
| 10 | +Real-time state sync works literally everywhere. Try opening |
| 11 | +the sample in two different browsers, log in using two different |
| 12 | +user accounts, and: |
| 13 | +- Try creating and playing a game |
| 14 | +- Check out what happens with game lists when you're |
| 15 | + creating a game, making moves, or posting a chat message |
| 16 | +- Try renaming your user & see its name changes everywhere - |
| 17 | + even in chat mentions! |
| 18 | + |
| 19 | +The sample currently implements: |
| 20 | +- One game (Gomoku) for now, though I'll add a couple more |
| 21 | + a bit later - there is a common base API allowing to |
| 22 | + add new games with ease |
| 23 | +- Game lobby, where you can track the state of games you |
| 24 | + participate in, browse open games created by other users |
| 25 | + and join them |
| 26 | +- Game chat, which supports mentions. In reality, there is |
| 27 | + a message parser and modular renderer, that currently |
| 28 | + supports user and game mentions. |
| 29 | +- User online/offline status tracking. Notice that every |
| 30 | + user badge displays it. |
| 31 | +- User profile page, where you can edit your user name, add |
| 32 | + MS/GitHub accounts, see all browser sessions, "kick" some |
| 33 | + of them or sign out from all of them. |
| 34 | + |
| 35 | +Finally, the sample supports both both Blazor Server and |
| 36 | +Blazor WebAssembly modes. |
| 37 | + |
| 38 | +The [live version] of this app is hosted on Google Cloud: |
| 39 | +- Cloud Run runs its Docker image in 1-core/512MB RAM container |
| 40 | +- Cloud PostgreSql stores the data; it also runs on |
| 41 | + the cheapest 1 core/3.75GB RAM host. |
| 42 | + |
| 43 | +**The most interesting part? Everything you see there |
| 44 | +was built in just 9 days!** |
| 45 | +[The very first commit](https://github.com/servicetitan/Stl.Fusion.Samples/commit/546ae7597bc7fa3a0b3c7f3b84e3a463bc3fd28f) |
| 46 | +cloning Fusion's Blazorise template was made on Feb 1, |
| 47 | +and I wrote the README describing what's already done |
| 48 | +on Feb 10. |
| 49 | + |
| 50 | +Check out [Fusion] and its |
| 51 | +[other samples](https://github.com/servicetitan/Stl.Fusion.Samples) |
| 52 | +if you want to learn more! |
10 | 53 |
|
11 | 54 | [Fusion]: https://github.com/servicetitan/Stl.Fusion |
| 55 | +[Live version]: https://boardgames.alexyakunin.com/ |
0 commit comments